本文整理汇总了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;
}
示例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);
}
示例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);
}
示例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)
);
}
示例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);
}
示例6: DrillLimitRule
import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
private DrillLimitRule() {
super(RelOptHelper.any(LogicalSort.class, Convention.NONE), "DrillLimitRule");
}
示例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)));
}
示例8: visit
import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
@Override
public RelNode visit(LogicalSort sort) {
return visit((RelNode) sort);
}
示例9: LimitRule
import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
private LimitRule() {
super(RelOptHelper.any(LogicalSort.class, Convention.NONE), "LimitRule");
}
示例10: BeamSortRule
import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
private BeamSortRule() {
super(LogicalSort.class, Convention.NONE,
BeamLogicalConvention.INSTANCE, "BeamSortRule");
}
示例11: visit
import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
@Override public RelNode visit(LogicalSort sort) {
return visit((RelNode) sort);
}
示例12: visit
import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
public RelNode visit(LogicalSort sort) {
return visitChildren(sort);
}
示例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);
}
示例14: visit
import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
public RelNode visit(LogicalSort sort) {
return sort;
}
示例15: visit
import org.apache.calcite.rel.logical.LogicalSort; //导入依赖的package包/类
RelNode visit(LogicalSort sort);