• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java RelConversionException类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.apache.calcite.tools.RelConversionException的典型用法代码示例。如果您正苦于以下问题:Java RelConversionException类的具体用法?Java RelConversionException怎么用?Java RelConversionException使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



RelConversionException类属于org.apache.calcite.tools包,在下文中一共展示了RelConversionException类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: rewrite

import org.apache.calcite.tools.RelConversionException; //导入依赖的package包/类
/** Rewrite the parse tree as SELECT ... FROM INFORMATION_SCHEMA.SCHEMATA ... */
@Override
public SqlNode rewrite(SqlNode sqlNode) throws RelConversionException, ForemanSetupException {
  SqlShowSchemas node = unwrap(sqlNode, SqlShowSchemas.class);
  List<SqlNode> selectList =
      ImmutableList.of((SqlNode) new SqlIdentifier(SCHS_COL_SCHEMA_NAME, SqlParserPos.ZERO));

  SqlNode fromClause = new SqlIdentifier(
      ImmutableList.of(IS_SCHEMA_NAME, TAB_SCHEMATA), null, SqlParserPos.ZERO, null);

  SqlNode where = null;
  final SqlNode likePattern = node.getLikePattern();
  if (likePattern != null) {
    where = DrillParserUtil.createCondition(new SqlIdentifier(SCHS_COL_SCHEMA_NAME, SqlParserPos.ZERO),
                                            SqlStdOperatorTable.LIKE, likePattern);
  } else if (node.getWhereClause() != null) {
    where = node.getWhereClause();
  }

  return new SqlSelect(SqlParserPos.ZERO, null, new SqlNodeList(selectList, SqlParserPos.ZERO),
      fromClause, where, null, null, null, null, null, null);
}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:23,代码来源:ShowSchemasHandler.java


示例2: getPlan

import org.apache.calcite.tools.RelConversionException; //导入依赖的package包/类
/**
 * Function resolves the schema and invokes the drop method. Raises an exception if the schema is
 * immutable.
 * @param sqlNode - Table name identifier
 * @return - Single row indicating drop succeeded, raise exception otherwise
 * @throws ValidationException
 * @throws RelConversionException
 * @throws IOException
 */
@Override
public PhysicalPlan getPlan(SqlNode sqlNode) throws ValidationException, RelConversionException, IOException {

  SqlDropTable dropTableNode = ((SqlDropTable) sqlNode);
  SqlIdentifier tableIdentifier = dropTableNode.getTableIdentifier();

  SchemaPlus defaultSchema = context.getNewDefaultSchema();
  AbstractSchema drillSchema = null;

  if (tableIdentifier != null) {
    drillSchema = SchemaUtilites.resolveToMutableDrillSchema(defaultSchema, dropTableNode.getSchema());
  }

  String tableName = ((SqlDropTable) sqlNode).getName();
  if (drillSchema == null) {
    throw UserException.validationError()
        .message("Invalid table_name [%s]", tableName)
        .build(logger);
  }

  drillSchema.dropTable(tableName);

  return DirectPlan.createDirectPlan(context, true,
      String.format("Table [%s] %s", tableName, "dropped"));
}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:35,代码来源:DropTableHandler.java


示例3: getPlan

import org.apache.calcite.tools.RelConversionException; //导入依赖的package包/类
@Override
public PhysicalPlan getPlan(SqlNode sqlNode) throws ValidationException, RelConversionException, IOException, ForemanSetupException {
  final ConvertedRelNode convertedRelNode = validateAndConvert(sqlNode);
  final RelDataType validatedRowType = convertedRelNode.getValidatedRowType();
  final RelNode queryRelNode = convertedRelNode.getConvertedNode();

  log("Optiq Logical", queryRelNode, logger);
  DrillRel drel = convertToDrel(queryRelNode, validatedRowType);

  log("Drill Logical", drel, logger);
  Prel prel = convertToPrel(drel);
  log("Drill Physical", prel, logger);
  PhysicalOperator pop = convertToPop(prel);
  PhysicalPlan plan = convertToPlan(pop);
  log("Drill Plan", plan, logger);
  return plan;
}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:18,代码来源:DefaultSqlHandler.java


示例4: validateNode

import org.apache.calcite.tools.RelConversionException; //导入依赖的package包/类
private TypedSqlNode validateNode(SqlNode sqlNode) throws ValidationException, RelConversionException, ForemanSetupException {
  TypedSqlNode typedSqlNode = planner.validateAndGetType(sqlNode);

  SqlNode sqlNodeValidated = typedSqlNode.getSqlNode();

  // Check if the unsupported functionality is used
  UnsupportedOperatorsVisitor visitor = UnsupportedOperatorsVisitor.createVisitor(context);
  try {
    sqlNodeValidated.accept(visitor);
  } catch (UnsupportedOperationException ex) {
    // If the exception due to the unsupported functionalities
    visitor.convertException();

    // If it is not, let this exception move forward to higher logic
    throw ex;
  }

  return typedSqlNode;
}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:20,代码来源:DefaultSqlHandler.java


示例5: convertToRel

import org.apache.calcite.tools.RelConversionException; //导入依赖的package包/类
private RelNode convertToRel(SqlNode node) throws RelConversionException {
  final RelNode convertedNode = planner.convert(node);

  final RelMetadataProvider provider = convertedNode.getCluster().getMetadataProvider();

  // Register RelMetadataProvider with HepPlanner.
  final List<RelMetadataProvider> list = Lists.newArrayList(provider);
  hepPlanner.registerMetadataProviders(list);
  final RelMetadataProvider cachingMetaDataProvider = new CachingRelMetadataProvider(ChainedRelMetadataProvider.of(list), hepPlanner);
  convertedNode.accept(new MetaDataProviderModifier(cachingMetaDataProvider));

  // HepPlanner is specifically used for Window Function planning only.
  hepPlanner.setRoot(convertedNode);
  RelNode rel = hepPlanner.findBestExp();

  rel.accept(new MetaDataProviderModifier(provider));
  return rel;
}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:19,代码来源:DefaultSqlHandler.java


示例6: logicalPlanningVolcanoAndLopt

import org.apache.calcite.tools.RelConversionException; //导入依赖的package包/类
/**
 * Do logical planning using both VolcanoPlanner and LOPT HepPlanner.
 * @param relNode
 * @return
 * @throws RelConversionException
 * @throws SqlUnsupportedException
 */
private RelNode logicalPlanningVolcanoAndLopt(RelNode relNode) throws RelConversionException, SqlUnsupportedException {

  final RelNode convertedRelNode = planner.transform(DrillSqlWorker.LOGICAL_CONVERT_RULES, relNode.getTraitSet().plus(DrillRel.DRILL_LOGICAL), relNode);
  log("VolCalciteRel", convertedRelNode, logger);

  final RelNode loptNode = getLoptJoinOrderTree(
      convertedRelNode,
      DrillJoinRel.class,
      DrillRelFactories.DRILL_LOGICAL_JOIN_FACTORY,
      DrillRelFactories.DRILL_LOGICAL_FILTER_FACTORY,
      DrillRelFactories.DRILL_LOGICAL_PROJECT_FACTORY);

  log("HepCalciteRel", loptNode, logger);

  return loptNode;
}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:24,代码来源:DefaultSqlHandler.java


示例7: getPlan

import org.apache.calcite.tools.RelConversionException; //导入依赖的package包/类
@Override
public PhysicalPlan getPlan(SqlNode sqlNode) throws ValidationException, RelConversionException, IOException, ForemanSetupException {
  SqlDropView dropView = unwrap(sqlNode, SqlDropView.class);
  final String viewToDrop = dropView.getName();
  final AbstractSchema drillSchema =
      SchemaUtilites.resolveToMutableDrillSchema(context.getNewDefaultSchema(), dropView.getSchemaPath());

  final String schemaPath = drillSchema.getFullSchemaName();

  final Table existingTable = SqlHandlerUtil.getTableFromSchema(drillSchema, viewToDrop);
  if (existingTable != null && existingTable.getJdbcTableType() != Schema.TableType.VIEW) {
    throw UserException.validationError()
        .message("[%s] is not a VIEW in schema [%s]", viewToDrop, schemaPath)
        .build(logger);
  } else if (existingTable == null) {
    throw UserException.validationError()
        .message("Unknown view [%s] in schema [%s].", viewToDrop, schemaPath)
        .build(logger);
  }

  drillSchema.dropView(viewToDrop);

  return DirectPlan.createDirectPlan(context, true,
      String.format("View [%s] deleted successfully from schema [%s].", viewToDrop, schemaPath));
}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:26,代码来源:ViewHandler.java


示例8: getPlan

import org.apache.calcite.tools.RelConversionException; //导入依赖的package包/类
@Override
public PhysicalPlan getPlan(SqlNode sqlNode) throws ValidationException, RelConversionException, IOException, ForemanSetupException {
  final ConvertedRelNode convertedRelNode = validateAndConvert(sqlNode);
  final RelDataType validatedRowType = convertedRelNode.getValidatedRowType();
  final RelNode queryRelNode = convertedRelNode.getConvertedNode();

  log("Optiq Logical", queryRelNode, logger);
  DrillRel drel = convertToDrel(queryRelNode, validatedRowType);
  log("Drill Logical", drel, logger);

  if (mode == ResultMode.LOGICAL) {
    LogicalExplain logicalResult = new LogicalExplain(drel, level, context);
    return DirectPlan.createDirectPlan(context, logicalResult);
  }

  Prel prel = convertToPrel(drel);
  log("Drill Physical", prel, logger);
  PhysicalOperator pop = convertToPop(prel);
  PhysicalPlan plan = convertToPlan(pop);
  log("Drill Plan", plan, logger);
  PhysicalExplain physicalResult = new PhysicalExplain(prel, plan, level, context);
  return DirectPlan.createDirectPlan(context, physicalResult);
}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:24,代码来源:ExplainHandler.java


示例9: rewrite

import org.apache.calcite.tools.RelConversionException; //导入依赖的package包/类
@Override
public SqlNode rewrite(SqlNode sqlNode) throws RelConversionException, ForemanSetupException {
  SqlExplain node = unwrap(sqlNode, SqlExplain.class);
  SqlLiteral op = node.operand(2);
  SqlExplain.Depth depth = (SqlExplain.Depth) op.getValue();
  if (node.getDetailLevel() != null) {
    level = node.getDetailLevel();
  }
  switch (depth) {
  case LOGICAL:
    mode = ResultMode.LOGICAL;
    break;
  case PHYSICAL:
    mode = ResultMode.PHYSICAL;
    break;
  default:
    throw new UnsupportedOperationException("Unknown depth " + depth);
  }

  return node.operand(0);
}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:22,代码来源:ExplainHandler.java


示例10: convertToDrel

import org.apache.calcite.tools.RelConversionException; //导入依赖的package包/类
private static Rel convertToDrel(
    SqlHandlerConfig config,
    RelNode relNode,
    AbstractSchema schema,
    String tableName,
    WriterOptions options,
    RelDataType queryRowType,
    final Map<String, Object> storageOptions)
    throws RelConversionException, SqlUnsupportedException {

  Rel convertedRelNode = PrelTransformer.convertToDrel(config, relNode);

  // Put a non-trivial topProject to ensure the final output field name is preserved, when necessary.
  // Only insert project when the field count from the child is same as that of the queryRowType.

  convertedRelNode = new WriterRel(convertedRelNode.getCluster(),
      convertedRelNode.getCluster().traitSet().plus(Rel.LOGICAL),
      convertedRelNode, schema.createNewTable(tableName, options, storageOptions), queryRowType);

  convertedRelNode = SqlHandlerUtil.storeQueryResultsIfNeeded(config.getConverter().getParserConfig(),
      config.getContext(), convertedRelNode);

  return new ScreenRel(convertedRelNode.getCluster(), convertedRelNode.getTraitSet(), convertedRelNode);
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:25,代码来源:CreateTableHandler.java


示例11: coerceException

import org.apache.calcite.tools.RelConversionException; //导入依赖的package包/类
public static Exception coerceException(Logger logger, String sql, Exception e, boolean coerceToPlan){
  if(e instanceof UserException){
    return e;
  } else if(e instanceof ValidationException){
    throw validationError(sql, (ValidationException) e).build(logger);
  } else if (e instanceof AccessControlException){
  throw UserException.permissionError(e)
      .addContext("Sql Query", sql)
      .build(logger);
  } else if (e instanceof SqlUnsupportedException){
  throw UserException.unsupportedError(e)
      .addContext("Sql Query", sql)
      .build(logger);
  } else if (e instanceof IOException || e instanceof RelConversionException){
    return new QueryInputException("Failure handling SQL.", e);
  } else if (coerceToPlan){
    throw UserException.planError(e)
    .addContext("Sql Query", sql)
    .build(logger);
  }
  return e;
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:23,代码来源:SqlExceptionHelper.java


示例12: validateNode

import org.apache.calcite.tools.RelConversionException; //导入依赖的package包/类
private TypedSqlNode validateNode(SqlNode sqlNode) throws ValidationException, RelConversionException, ForemanSetupException {
  final SqlNode sqlNodeValidated = config.getConverter().validate(sqlNode);
  final TypedSqlNode typedSqlNode = new TypedSqlNode(sqlNodeValidated, config.getConverter().getOutputType(
      sqlNodeValidated));

  // Check if the unsupported functionality is used
  UnsupportedOperatorsVisitor visitor = UnsupportedOperatorsVisitor.createVisitor(context);
  try {
    sqlNodeValidated.accept(visitor);
  } catch (UnsupportedOperationException ex) {
    // If the exception due to the unsupported functionalities
    visitor.convertException();

    // If it is not, let this exception move forward to higher logic
    throw ex;
  }

  return typedSqlNode;
}
 
开发者ID:axbaretto,项目名称:drill,代码行数:20,代码来源:DefaultSqlHandler.java


示例13: getPlan

import org.apache.calcite.tools.RelConversionException; //导入依赖的package包/类
@Override
public PhysicalPlan getPlan(SqlNode sqlNode) throws ValidationException, RelConversionException, IOException, ForemanSetupException {
  final ConvertedRelNode convertedRelNode = validateAndConvert(sqlNode);
  final RelDataType validatedRowType = convertedRelNode.getValidatedRowType();
  final RelNode queryRelNode = convertedRelNode.getConvertedNode();

  log("Calcite", queryRelNode, logger, null);
  DrillRel drel = convertToDrel(queryRelNode);

  if (mode == ResultMode.LOGICAL) {
    LogicalExplain logicalResult = new LogicalExplain(drel, level, context);
    return DirectPlan.createDirectPlan(context, logicalResult);
  }

  Prel prel = convertToPrel(drel, validatedRowType);
  logAndSetTextPlan("Drill Physical", prel, logger);
  PhysicalOperator pop = convertToPop(prel);
  PhysicalPlan plan = convertToPlan(pop);
  log("Drill Plan", plan, logger);
  PhysicalExplain physicalResult = new PhysicalExplain(prel, plan, level, context);
  return DirectPlan.createDirectPlan(context, physicalResult);
}
 
开发者ID:axbaretto,项目名称:drill,代码行数:23,代码来源:ExplainHandler.java


示例14: convertToDrel

import org.apache.calcite.tools.RelConversionException; //导入依赖的package包/类
private DrillRel convertToDrel(RelNode relNode,
                               AbstractSchema schema,
                               String tableName,
                               List<String> partitionColumns,
                               RelDataType queryRowType,
                               StorageStrategy storageStrategy)
    throws RelConversionException, SqlUnsupportedException {
  final DrillRel convertedRelNode = convertToRawDrel(relNode);

  // Put a non-trivial topProject to ensure the final output field name is preserved, when necessary.
  // Only insert project when the field count from the child is same as that of the queryRowType.
  final DrillRel topPreservedNameProj = queryRowType.getFieldCount() == convertedRelNode.getRowType().getFieldCount() ?
      addRenamedProject(convertedRelNode, queryRowType) : convertedRelNode;

  final RelTraitSet traits = convertedRelNode.getCluster().traitSet().plus(DrillRel.DRILL_LOGICAL);
  final DrillWriterRel writerRel = new DrillWriterRel(convertedRelNode.getCluster(),
      traits, topPreservedNameProj, schema.createNewTable(tableName, partitionColumns, storageStrategy));
  return new DrillScreenRel(writerRel.getCluster(), writerRel.getTraitSet(), writerRel);
}
 
开发者ID:axbaretto,项目名称:drill,代码行数:20,代码来源:CreateTableHandler.java


示例15: rel

import org.apache.calcite.tools.RelConversionException; //导入依赖的package包/类
public RelRoot rel(SqlNode sql) throws RelConversionException {
  ensure(State.STATE_4_VALIDATED);
  assert validatedSqlNode != null;
  final RexBuilder rexBuilder = createRexBuilder();
  final RelOptCluster cluster = RelOptCluster.create(planner, rexBuilder);
  final SqlToRelConverter.Config config = SqlToRelConverter.configBuilder()
      .withConfig(sqlToRelConverterConfig)
      .withTrimUnusedFields(false)
      .withConvertTableAccess(false)
      .build();
  final SqlToRelConverter sqlToRelConverter =
      new SqlToRelConverter(new ViewExpanderImpl(), validator,
          createCatalogReader(), cluster, convertletTable, config);
  root =
      sqlToRelConverter.convertQuery(validatedSqlNode, false, true);
  root = root.withRel(sqlToRelConverter.flattenTypes(root.rel, true));
  root = root.withRel(RelDecorrelator.decorrelateQuery(root.rel));
  state = State.STATE_5_CONVERTED;
  return root;
}
 
开发者ID:apache,项目名称:calcite,代码行数:21,代码来源:PlannerImpl.java


示例16: runProjectQueryWithLex

import org.apache.calcite.tools.RelConversionException; //导入依赖的package包/类
private static void runProjectQueryWithLex(Lex lex, String sql)
    throws SqlParseException, ValidationException, RelConversionException {
  Config javaLex = SqlParser.configBuilder().setLex(lex).build();
  Planner planner = getPlanner(null, javaLex, Programs.ofRules(Programs.RULE_SET));
  SqlNode parse = planner.parse(sql);
  SqlNode validate = planner.validate(parse);
  RelNode convert = planner.rel(validate).rel;
  RelTraitSet traitSet =
      planner.getEmptyTraitSet().replace(EnumerableConvention.INSTANCE);
  RelNode transform = planner.transform(0, traitSet, convert);
  assertThat(transform, instanceOf(EnumerableProject.class));
  List<String> fieldNames = transform.getRowType().getFieldNames();
  assertThat(fieldNames.size(), is(2));
  if (lex.caseSensitive) {
    assertThat(fieldNames.get(0), is("EMPID"));
    assertThat(fieldNames.get(1), is("empid"));
  } else {
    assertThat(fieldNames.get(0) + "-" + fieldNames.get(1),
        anyOf(is("EMPID-empid0"), is("EMPID0-empid")));
  }
}
 
开发者ID:apache,项目名称:calcite,代码行数:22,代码来源:LexCaseSensitiveTest.java


示例17: visitPrel

import org.apache.calcite.tools.RelConversionException; //导入依赖的package包/类
@Override
public Prel visitPrel(Prel prel, Object value) throws RelConversionException {
  List<RelNode> children = Lists.newArrayList();
  for(Prel child : prel){
    child = child.accept(this, null);
    children.add(child);
  }
  return (Prel) prel.copy(prel.getTraitSet(), children);
}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:10,代码来源:SplitUpComplexExpressions.java


示例18: getPlan

import org.apache.calcite.tools.RelConversionException; //导入依赖的package包/类
@Override
public PhysicalPlan getPlan(SqlNode sqlNode) throws ValidationException, RelConversionException, IOException, ForemanSetupException {
  final SqlUseSchema useSchema = unwrap(sqlNode, SqlUseSchema.class);
  final String newDefaultSchemaPath = useSchema.getSchema();

  context.getSession().setDefaultSchemaPath(newDefaultSchemaPath, context.getNewDefaultSchema());

  return DirectPlan.createDirectPlan(context, true,
      String.format("Default schema changed to [%s]", context.getSession().getDefaultSchemaPath()));
}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:11,代码来源:UseSchemaHandler.java


示例19: validateAndConvert

import org.apache.calcite.tools.RelConversionException; //导入依赖的package包/类
protected ConvertedRelNode validateAndConvert(SqlNode sqlNode) throws ForemanSetupException, RelConversionException, ValidationException {
  final SqlNode rewrittenSqlNode = rewrite(sqlNode);
  final TypedSqlNode validatedTypedSqlNode = validateNode(rewrittenSqlNode);
  final SqlNode validated = validatedTypedSqlNode.getSqlNode();

  RelNode rel = convertToRel(validated);
  rel = preprocessNode(rel);

  return new ConvertedRelNode(rel, validatedTypedSqlNode.getType());
}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:11,代码来源:DefaultSqlHandler.java


示例20: convertToDrel

import org.apache.calcite.tools.RelConversionException; //导入依赖的package包/类
/**
 *  Given a relNode tree for SELECT statement, convert to Drill Logical RelNode tree.
 * @param relNode
 * @return
 * @throws SqlUnsupportedException
 * @throws RelConversionException
 */
protected DrillRel convertToDrel(RelNode relNode) throws SqlUnsupportedException, RelConversionException {
  try {
    final DrillRel convertedRelNode;

    if (! context.getPlannerSettings().isHepJoinOptEnabled()) {
      convertedRelNode = (DrillRel) logicalPlanningVolcano(relNode);
    } else {
      convertedRelNode = (DrillRel) logicalPlanningVolcanoAndLopt(relNode);
    }

    if (convertedRelNode instanceof DrillStoreRel) {
      throw new UnsupportedOperationException();
    } else {

      // If the query contains a limit 0 clause, disable distributed mode since it is overkill for determining schema.
      if (FindLimit0Visitor.containsLimit0(convertedRelNode)) {
        context.getPlannerSettings().forceSingleMode();
      }

      return convertedRelNode;
    }
  } catch (RelOptPlanner.CannotPlanException ex) {
    logger.error(ex.getMessage());

    if(JoinUtils.checkCartesianJoin(relNode, new ArrayList<Integer>(), new ArrayList<Integer>())) {
      throw new UnsupportedRelOperatorException("This query cannot be planned possibly due to either a cartesian join or an inequality join");
    } else {
      throw ex;
    }
  }
}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:39,代码来源:DefaultSqlHandler.java



注:本文中的org.apache.calcite.tools.RelConversionException类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java GetClusterMetricsRequestProto类代码示例发布时间:2022-05-22
下一篇:
Java AnnotatedDeleteByExampleMethodGenerator类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap