本文整理汇总了Java中org.apache.calcite.rel.logical.LogicalSort.create方法的典型用法代码示例。如果您正苦于以下问题:Java LogicalSort.create方法的具体用法?Java LogicalSort.create怎么用?Java LogicalSort.create使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.calcite.rel.logical.LogicalSort
的用法示例。
在下文中一共展示了LogicalSort.create方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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: 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);
}
示例4: 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)));
}
示例5: 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);
}