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

Java Convention类代码示例

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

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



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

示例1: FilterRelBase

import org.apache.calcite.plan.Convention; //导入依赖的package包/类
protected FilterRelBase(Convention convention, RelOptCluster cluster, RelTraitSet traits, RelNode child, RexNode condition) {
  super(cluster, traits, child, condition);
  assert getConvention() == convention;

  // save the number of conjuncts that make up the filter condition such
  // that repeated calls to the costing function can use the saved copy
  conjunctions = RelOptUtil.conjunctions(condition);
  numConjuncts = conjunctions.size();
  // assert numConjuncts >= 1;

  this.hasContains = ContainsRexVisitor.hasContainsCheckOrigin(this, this.getCondition(),-1);

  boolean foundFlatten = false;
  for (RexNode rex : this.getChildExps()) {
    MoreRelOptUtil.FlattenRexVisitor visitor = new MoreRelOptUtil.FlattenRexVisitor();
    if (rex.accept(visitor)) {
      foundFlatten = true;
    }
  }
  this.hasFlatten = foundFlatten;
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:22,代码来源:FilterRelBase.java


示例2: ProjectRelBase

import org.apache.calcite.plan.Convention; //导入依赖的package包/类
protected ProjectRelBase(Convention convention,
                              RelOptCluster cluster,
                              RelTraitSet traits,
                              RelNode child,
                              List<? extends RexNode> exps,
                              RelDataType rowType) {
  super(cluster, traits, child, exps, rowType, Flags.BOXED);
  assert getConvention() == convention;
  nonSimpleFieldCount = this.getRowType().getFieldCount() - getSimpleFieldCount();

  boolean foundContains = false;
  int i = 0;
  for (RexNode rex : this.getChildExps()) {
    if (ContainsRexVisitor.hasContainsCheckOrigin(this, rex, i)) {
      foundContains = true;
      break;
    }
    i++;
  }
  this.hasContains = foundContains;
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:22,代码来源:ProjectRelBase.java


示例3: getRel

import org.apache.calcite.plan.Convention; //导入依赖的package包/类
@Override
public RelNode getRel(final RelOptCluster cluster, final RelOptTable relOptTable, final ConversionContext.NamespaceConversionContext relContext) {
  final DatasetConfig datasetConfig = relContext.getDatasetConfig();
  BatchSchema schema = BatchSchema.fromDataset(datasetConfig);
  return new OldScanCrel(cluster, new RelOptTableWrapper(datasetConfig.getFullPathList(), relOptTable),
          cluster.traitSetOf(Convention.NONE),
          BatchSchema.fromDataset(datasetConfig).toCalciteRecordType(cluster.getTypeFactory()),
          new HBaseGroupScan(
              ImpersonationUtil.getProcessUserName()/*impersonation not supported for HBASE*/,
              this,
              new HBaseScanSpec(datasetConfig.getName()),
              OldAbstractGroupScan.ALL_COLUMNS,
              schema,
              datasetConfig.getFullPathList()
              ),
          null,
          OldScanRelBase.DEFAULT_ROW_COUNT_DISCOUNT
  );
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:20,代码来源:HBaseStoragePlugin.java


示例4: matches

import org.apache.calcite.plan.Convention; //导入依赖的package包/类
@Override
public boolean matches(RelOptRuleCall call) {
  Project topProject = call.rel(0);
  Project bottomProject = call.rel(1);

  // Make sure both projects be LogicalProject.
  if (topProject.getTraitSet().getTrait(ConventionTraitDef.INSTANCE) != Convention.NONE ||
      bottomProject.getTraitSet().getTrait(ConventionTraitDef.INSTANCE) != Convention.NONE) {
    return false;
  }

  // We have a complex output type do not fire the merge project rule
  if (checkComplexOutput(topProject) || checkComplexOutput(bottomProject)) {
    return false;
  }

  return true;
}
 
开发者ID:axbaretto,项目名称:drill,代码行数:19,代码来源:DrillMergeProjectRule.java


示例5: CalcitePreparingStmt

import org.apache.calcite.plan.Convention; //导入依赖的package包/类
public CalcitePreparingStmt(CalcitePrepareImpl prepare,
    Context context,
    CatalogReader catalogReader,
    RelDataTypeFactory typeFactory,
    CalciteSchema schema,
    EnumerableRel.Prefer prefer,
    RelOptPlanner planner,
    Convention resultConvention,
    SqlRexConvertletTable convertletTable) {
  super(context, catalogReader, resultConvention);
  this.prepare = prepare;
  this.schema = schema;
  this.prefer = prefer;
  this.planner = planner;
  this.typeFactory = typeFactory;
  this.convertletTable = convertletTable;
  this.rexBuilder = new RexBuilder(typeFactory);
}
 
开发者ID:apache,项目名称:kylin,代码行数:19,代码来源:CalcitePrepareImpl.java


示例6: create

import org.apache.calcite.plan.Convention; //导入依赖的package包/类
/** Creates a LogicalProject, specifying row type rather than field names. */
public static LogicalProject create(final RelNode input,
    final List<? extends RexNode> projects, RelDataType rowType) {
  final RelOptCluster cluster = input.getCluster();
  final RelMetadataQuery mq = cluster.getMetadataQuery();
  final RelTraitSet traitSet =
      cluster.traitSet().replace(Convention.NONE)
          .replaceIfs(
              RelCollationTraitDef.INSTANCE,
              new Supplier<List<RelCollation>>() {
                public List<RelCollation> get() {
                  return RelMdCollation.project(mq, input, projects);
                }
              });
  return new LogicalProject(cluster, traitSet, input, projects, rowType);
}
 
开发者ID:apache,项目名称:calcite,代码行数:17,代码来源:LogicalProject.java


示例7: create

import org.apache.calcite.plan.Convention; //导入依赖的package包/类
public static LogicalCalc create(final RelNode input,
    final RexProgram program) {
  final RelOptCluster cluster = input.getCluster();
  final RelMetadataQuery mq = cluster.getMetadataQuery();
  final RelTraitSet traitSet = cluster.traitSet()
      .replace(Convention.NONE)
      .replaceIfs(RelCollationTraitDef.INSTANCE,
          new Supplier<List<RelCollation>>() {
            public List<RelCollation> get() {
              return RelMdCollation.calc(mq, input, program);
            }
          })
      .replaceIf(RelDistributionTraitDef.INSTANCE,
          new Supplier<RelDistribution>() {
            public RelDistribution get() {
              return RelMdDistribution.calc(mq, input, program);
            }
          });
  return new LogicalCalc(cluster, traitSet, input, program);
}
 
开发者ID:apache,项目名称:calcite,代码行数:21,代码来源:LogicalCalc.java


示例8: create

import org.apache.calcite.plan.Convention; //导入依赖的package包/类
/** Creates a LogicalTableScan.
 *
 * @param cluster Cluster
 * @param relOptTable Table
 */
public static LogicalTableScan create(RelOptCluster cluster,
    final RelOptTable relOptTable) {
  final Table table = relOptTable.unwrap(Table.class);
  final RelTraitSet traitSet =
      cluster.traitSetOf(Convention.NONE)
          .replaceIfs(RelCollationTraitDef.INSTANCE,
              new Supplier<List<RelCollation>>() {
                public List<RelCollation> get() {
                  if (table != null) {
                    return table.getStatistic().getCollations();
                  }
                  return ImmutableList.of();
                }
              });
  return new LogicalTableScan(cluster, traitSet, relOptTable);
}
 
开发者ID:apache,项目名称:calcite,代码行数:22,代码来源:LogicalTableScan.java


示例9: CalcitePreparingStmt

import org.apache.calcite.plan.Convention; //导入依赖的package包/类
CalcitePreparingStmt(CalcitePrepareImpl prepare,
    Context context,
    CatalogReader catalogReader,
    RelDataTypeFactory typeFactory,
    CalciteSchema schema,
    EnumerableRel.Prefer prefer,
    RelOptPlanner planner,
    Convention resultConvention,
    SqlRexConvertletTable convertletTable) {
  super(context, catalogReader, resultConvention);
  this.prepare = prepare;
  this.schema = schema;
  this.prefer = prefer;
  this.planner = planner;
  this.typeFactory = typeFactory;
  this.convertletTable = convertletTable;
  this.rexBuilder = new RexBuilder(typeFactory);
}
 
开发者ID:apache,项目名称:calcite,代码行数:19,代码来源:CalcitePrepareImpl.java


示例10: injectImportanceBoost

import org.apache.calcite.plan.Convention; //导入依赖的package包/类
/**
 * Finds RelSubsets in the plan that contain only rels of
 * {@link Convention#NONE} and boosts their importance by 25%.
 */
private void injectImportanceBoost() {
  final Set<RelSubset> requireBoost = new HashSet<>();

SUBSET_LOOP:
  for (RelSubset subset : ruleQueue.subsetImportances.keySet()) {
    for (RelNode rel : subset.getRels()) {
      if (rel.getConvention() != Convention.NONE) {
        continue SUBSET_LOOP;
      }
    }

    requireBoost.add(subset);
  }

  ruleQueue.boostImportance(requireBoost, 1.25);
}
 
开发者ID:apache,项目名称:calcite,代码行数:21,代码来源:VolcanoPlanner.java


示例11: onMatch

import org.apache.calcite.plan.Convention; //导入依赖的package包/类
public void onMatch(RelOptRuleCall call) {
  LogicalProject rel = call.rel(0);
  RelNode rawInput = call.rel(1);
  RelNode input = convert(rawInput, PHYSICAL);

  if (subsetHack && input instanceof RelSubset) {
    RelSubset subset = (RelSubset) input;
    for (RelNode child : subset.getRels()) {
      // skip logical nodes
      if (child.getTraitSet().getTrait(ConventionTraitDef.INSTANCE)
          == Convention.NONE) {
        continue;
      } else {
        RelTraitSet outcome = child.getTraitSet().replace(PHYSICAL);
        call.transformTo(
            new PhysProj(rel.getCluster(), outcome, convert(child, outcome),
                rel.getChildExps(), rel.getRowType()));
      }
    }
  } else {
    call.transformTo(
        PhysProj.create(input, rel.getChildExps(), rel.getRowType()));
  }

}
 
开发者ID:apache,项目名称:calcite,代码行数:26,代码来源:TraitPropagationTest.java


示例12: DrillFilterRelBase

import org.apache.calcite.plan.Convention; //导入依赖的package包/类
protected DrillFilterRelBase(Convention convention, RelOptCluster cluster, RelTraitSet traits, RelNode child, RexNode condition) {
  super(cluster, traits, child, condition);
  assert getConvention() == convention;

  // save the number of conjuncts that make up the filter condition such
  // that repeated calls to the costing function can use the saved copy
  conjunctions = RelOptUtil.conjunctions(condition);
  numConjuncts = conjunctions.size();
  // assert numConjuncts >= 1;

}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:12,代码来源:DrillFilterRelBase.java


示例13: OldScanCrel

import org.apache.calcite.plan.Convention; //导入依赖的package包/类
public OldScanCrel(
    RelOptCluster cluster,
    RelOptTable relOptTable,
    RelTraitSet traits,
    RelDataType rowType,
    GroupScan groupScan,
    LayoutInfo layoutInfo,
    double rowCountDiscount) {
  super(cluster, traits, relOptTable, rowType, groupScan, rowCountDiscount);
  this.layoutInfo = layoutInfo;
  Preconditions.checkArgument(traits.getTrait(ConventionTraitDef.INSTANCE) == Convention.NONE);
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:13,代码来源:OldScanCrel.java


示例14: register

import org.apache.calcite.plan.Convention; //导入依赖的package包/类
public static void register(final Kryo kryo) {
  final EnumSerializer enumSerializer = new EnumSerializer();
  kryo.addDefaultSerializer(BindableConvention.class, enumSerializer);
  kryo.addDefaultSerializer(EnumerableConvention.class, enumSerializer);
  kryo.addDefaultSerializer(InterpretableConvention.class, enumSerializer);
  kryo.addDefaultSerializer(Convention.Impl.class, ConventionSerializer.class);

  kryo.addDefaultSerializer(RelDistributions.SINGLETON.getClass(), RelDistributionSerializer.class);
  kryo.addDefaultSerializer(DistributionTrait.class, DistributionTraitSerializer.class);
  kryo.addDefaultSerializer(RelCollation.class, RelCollationSerializer.class);

  kryo.addDefaultSerializer(RelTraitSet.class, RelTraitSetSerializer.class);
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:14,代码来源:RelTraitSerializers.java


示例15: read

import org.apache.calcite.plan.Convention; //导入依赖的package包/类
@Override
public T read(final Kryo kryo, final Input input, final Class<T> type) {
  final boolean isNone = kryo.readObject(input, Boolean.class);
  if (isNone) {
    return (T)Convention.NONE;
  }
  final T result = super.read(kryo, input, type);
  final T normalized = (T) result.getTraitDef().canonize(result);
  kryo.reference(normalized);
  return normalized;
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:12,代码来源:RelTraitSerializers.java


示例16: toRel

import org.apache.calcite.plan.Convention; //导入依赖的package包/类
@Override
public RelNode toRel(RelOptTable.ToRelContext context, RelOptTable table) {
  try {
    return new OldScanCrel(
      context.getCluster(),
      table,
      context.getCluster().traitSetOf(Convention.NONE),
      getRowType(context.getCluster().getTypeFactory()),
      getGroupScan(),
      null,
      OldScanRelBase.DEFAULT_ROW_COUNT_DISCOUNT);
  } catch (IOException e) {
    throw new RuntimeException(e);
  }
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:16,代码来源:TableBase.java


示例17: matches

import org.apache.calcite.plan.Convention; //导入依赖的package包/类
@Override
public boolean matches(RelOptRuleCall call) {
  Project topProject = call.rel(0);
  Project bottomProject = call.rel(1);

  if (topProject.getConvention() != Convention.NONE || bottomProject.getConvention() != Convention.NONE) {
    return false;
  }

  return true;
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:12,代码来源:MergeProjectRule.java


示例18: matches

import org.apache.calcite.plan.Convention; //导入依赖的package包/类
@Override
public boolean matches(RelOptRuleCall call) {
  OldScanCrel logicalScan = call.rel(0);
  // Plugins can be null for certain group scans (I believe Direct Group Scan is one of them)
  return logicalScan.getGroupScan().getStoragePluginConvention() == null
      || logicalScan.getGroupScan().getStoragePluginConvention() == Convention.NONE;
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:8,代码来源:OldScanRelRule.java


示例19: canConvertConvention

import org.apache.calcite.plan.Convention; //导入依赖的package包/类
@Override
public boolean canConvertConvention(Convention toConvention) {
  // TODO should think about how we can get rid of "toConvention == LOGICAL" here.  It shouldn't be needed, but
  // currently, our Dremio ProjectPrule matches on ProjectRel + Any, and without the abstract converters added,
  // this rule may not be queued to create the necessary ProjectPrels later.
  return (toConvention == PHYSICAL || toConvention == Rel.LOGICAL);
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:8,代码来源:Prel.java


示例20: visit

import org.apache.calcite.plan.Convention; //导入依赖的package包/类
@Override
public RelNode visit(TableScan scan) {
  RelNode toReturn = scan;
  if (addJdbcLogical && scan.getConvention() instanceof JdbcConventionIndicator) {
    toReturn = new JdbcCrel(scan.getCluster(), scan.getTraitSet().plus(Convention.NONE), scan);
  }
  if (addSample) {
    return SampleCrel.create(toReturn);
  }
  return toReturn;
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:12,代码来源:InjectSampleAndJdbcLogical.java



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
Java InstantiationAwareBeanPostProcessor类代码示例发布时间:2022-05-22
下一篇:
Java Identify类代码示例发布时间: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