当前位置: 首页>>代码示例>>Java>>正文


Java LogicalSort类代码示例

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


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

示例1: convert

import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
public RelNode convert(
    RelOptPlanner planner,
    RelNode rel,
    RelCollation toCollation,
    boolean allowInfiniteCostConverters) {
  if (toCollation.getFieldCollations().isEmpty()) {
    // An empty sort doesn't make sense.
    return null;
  }

  // Create a logical sort, then ask the planner to convert its remaining
  // traits (e.g. convert it to an EnumerableSortRel if rel is enumerable
  // convention)
  final Sort sort = LogicalSort.create(rel, toCollation, null, null);
  RelNode newRel = planner.register(sort, rel);
  final RelTraitSet newTraitSet = rel.getTraitSet().replace(toCollation);
  if (!newRel.getTraitSet().equals(newTraitSet)) {
    newRel = planner.changeTraits(newRel, newTraitSet);
  }
  return newRel;
}
 
开发者ID:apache,项目名称:calcite,代码行数:22,代码来源:RelCollationTraitDef.java

示例2: rewriteRel

import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
public void rewriteRel(Sort rel) {
  RelCollation oldCollation = rel.getCollation();
  final RelNode oldChild = rel.getInput();
  final RelNode newChild = getNewForOldRel(oldChild);
  final Mappings.TargetMapping mapping =
      getNewForOldInputMapping(oldChild);

  // validate
  for (RelFieldCollation field : oldCollation.getFieldCollations()) {
    int oldInput = field.getFieldIndex();
    RelDataType sortFieldType =
        oldChild.getRowType().getFieldList().get(oldInput).getType();
    if (sortFieldType.isStruct()) {
      // TODO jvs 10-Feb-2005
      throw Util.needToImplement("sorting on structured types");
    }
  }
  RelCollation newCollation = RexUtil.apply(mapping, oldCollation);
  Sort newRel =
      LogicalSort.create(newChild, newCollation, rel.offset, rel.fetch);
  setNewForOldRel(rel, newRel);
}
 
开发者ID:apache,项目名称:calcite,代码行数:23,代码来源:RelStructuredTypeFlattener.java

示例3: visit

import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
@Override
public RelNode visit(LogicalSort sort) {
  if (isLimit0(sort.fetch)) {
    contains = true;
    return sort;
  }

  return super.visit(sort);
}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:10,代码来源:FindLimit0Visitor.java

示例4: visit

import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
@Override
public RelNode visit(LogicalSort sort) {
  final RelNode input = sort.getInput().accept(this);
  return new LogicalSort(
    cluster,
    copyOf(sort.getTraitSet()),
    input,
    sort.getCollation(),
    copyOf(sort.offset),
    copyOf(sort.fetch)
  );
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:13,代码来源:CopyWithCluster.java

示例5: onMatch

import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
@Override public void onMatch(RelOptRuleCall call) {
  final Delta delta = call.rel(0);
  Util.discard(delta);
  final Sort sort = call.rel(1);
  final LogicalDelta newDelta =
      LogicalDelta.create(sort.getInput());
  final LogicalSort newSort =
      LogicalSort.create(newDelta, sort.collation, sort.offset, sort.fetch);
  call.transformTo(newSort);
}
 
开发者ID:apache,项目名称:calcite,代码行数:11,代码来源:StreamRules.java

示例6: DrillLimitRule

import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
private DrillLimitRule() {
  super(RelOptHelper.any(LogicalSort.class, Convention.NONE), "DrillLimitRule");
}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:4,代码来源:DrillLimitRule.java

示例7: createEmptyEmptyRelHelper

import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
private static RelNode createEmptyEmptyRelHelper(SingleRel input) {
  return LogicalSort.create(input.getInput(), RelCollations.EMPTY,
      input.getCluster().getRexBuilder().makeExactLiteral(BigDecimal.valueOf(0)),
      input.getCluster().getRexBuilder().makeExactLiteral(BigDecimal.valueOf(0)));
}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:6,代码来源:DrillReduceExpressionsRule.java

示例8: visit

import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
@Override
public RelNode visit(LogicalSort sort) {
  return visit((RelNode) sort);
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:5,代码来源:RoutingShuttle.java

示例9: LimitRule

import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
private LimitRule() {
  super(RelOptHelper.any(LogicalSort.class, Convention.NONE), "LimitRule");
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:4,代码来源:LimitRule.java

示例10: BeamSortRule

import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
private BeamSortRule() {
  super(LogicalSort.class, Convention.NONE,
      BeamLogicalConvention.INSTANCE, "BeamSortRule");
}
 
开发者ID:apache,项目名称:beam,代码行数:5,代码来源:BeamSortRule.java

示例11: visit

import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
@Override public RelNode visit(LogicalSort sort) {
  return visit((RelNode) sort);
}
 
开发者ID:apache,项目名称:calcite,代码行数:4,代码来源:RelHomogeneousShuttle.java

示例12: visit

import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
public RelNode visit(LogicalSort sort) {
  return visitChildren(sort);
}
 
开发者ID:apache,项目名称:calcite,代码行数:4,代码来源:RelShuttleImpl.java

示例13: createSort

import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
public RelNode createSort(RelNode input, RelCollation collation,
    RexNode offset, RexNode fetch) {
  return LogicalSort.create(input, collation, offset, fetch);
}
 
开发者ID:apache,项目名称:calcite,代码行数:5,代码来源:RelFactories.java

示例14: visit

import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
public RelNode visit(LogicalSort sort) {
  return sort;
}
 
开发者ID:apache,项目名称:calcite,代码行数:4,代码来源:CalciteMaterializer.java

示例15: visit

import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
RelNode visit(LogicalSort sort); 
开发者ID:apache,项目名称:calcite,代码行数:2,代码来源:RelShuttle.java


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