本文整理汇总了Java中org.apache.calcite.rel.core.Window类的典型用法代码示例。如果您正苦于以下问题:Java Window类的具体用法?Java Window怎么用?Java Window使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Window类属于org.apache.calcite.rel.core包,在下文中一共展示了Window类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: onMatch
import org.apache.calcite.rel.core.Window; //导入依赖的package包/类
@Override
public void onMatch(RelOptRuleCall call) {
final Window window = call.rel(0);
final RelNode input = call.rel(1);
final RelTraitSet traits = window.getTraitSet().plus(DrillRel.DRILL_LOGICAL);
final RelNode convertedInput = convert(input, traits);
call.transformTo(
new DrillWindowRel(
window.getCluster(),
traits,
convertedInput,
window.constants,
window.getRowType(),
window.groups));
}
开发者ID:skhalifa,项目名称:QDrill,代码行数:16,代码来源:DrillWindowRule.java
示例2: getCollation
import org.apache.calcite.rel.core.Window; //导入依赖的package包/类
/**
* Create a RelCollation that has partition-by as the leading keys followed by order-by keys
* @param window The window specification
* @return a RelCollation with {partition-by keys, order-by keys}
*/
private RelCollation getCollation(Window.Group window) {
List<RelFieldCollation> fields = Lists.newArrayList();
for (int group : BitSets.toIter(window.keys)) {
fields.add(new RelFieldCollation(group));
}
for (RelFieldCollation field : window.orderKeys.getFieldCollations()) {
fields.add(field);
}
return RelCollationImpl.of(fields);
}
开发者ID:skhalifa,项目名称:QDrill,代码行数:18,代码来源:WindowPrule.java
示例3: getDistributionFields
import org.apache.calcite.rel.core.Window; //导入依赖的package包/类
private List<DrillDistributionTrait.DistributionField> getDistributionFields(Window.Group window) {
List<DrillDistributionTrait.DistributionField> groupByFields = Lists.newArrayList();
for (int group : BitSets.toIter(window.keys)) {
DrillDistributionTrait.DistributionField field = new DrillDistributionTrait.DistributionField(group);
groupByFields.add(field);
}
return groupByFields;
}
开发者ID:skhalifa,项目名称:QDrill,代码行数:10,代码来源:WindowPrule.java
示例4: getDistributionFieldsFromCollation
import org.apache.calcite.rel.core.Window; //导入依赖的package包/类
private List<DistributionField> getDistributionFieldsFromCollation(Window.Group window) {
List<DistributionField> distFields = Lists.newArrayList();
for (RelFieldCollation relField : window.collation().getFieldCollations()) {
DistributionField field = new DistributionField(relField.getFieldIndex());
distFields.add(field);
}
return distFields;
}
开发者ID:skhalifa,项目名称:QDrill,代码行数:11,代码来源:WindowPrule.java
示例5: onMatch
import org.apache.calcite.rel.core.Window; //导入依赖的package包/类
@Override
public void onMatch(RelOptRuleCall call) {
final Window window = call.rel(0);
final RelNode input = call.rel(1);
final RelTraitSet traits = window.getTraitSet().plus(Rel.LOGICAL);
final RelNode convertedInput = convert(input, traits.simplify());
call.transformTo(
new WindowRel(
window.getCluster(),
traits,
convertedInput,
window.constants,
window.getRowType(),
window.groups));
}
开发者ID:dremio,项目名称:dremio-oss,代码行数:16,代码来源:WindowRule.java
示例6: getCollation
import org.apache.calcite.rel.core.Window; //导入依赖的package包/类
/**
* Create a RelCollation that has partition-by as the leading keys followed by order-by keys
* @param window The window specification
* @return a RelCollation with {partition-by keys, order-by keys}
*/
private RelCollation getCollation(Window.Group window) {
List<RelFieldCollation> fields = Lists.newArrayList();
for (int group : BitSets.toIter(window.keys)) {
fields.add(new RelFieldCollation(group));
}
fields.addAll(window.orderKeys.getFieldCollations());
return RelCollations.of(fields);
}
开发者ID:dremio,项目名称:dremio-oss,代码行数:16,代码来源:WindowPrule.java
示例7: getDistributionFields
import org.apache.calcite.rel.core.Window; //导入依赖的package包/类
private List<DistributionTrait.DistributionField> getDistributionFields(Window.Group window) {
List<DistributionTrait.DistributionField> groupByFields = Lists.newArrayList();
for (int group : BitSets.toIter(window.keys)) {
DistributionTrait.DistributionField field = new DistributionTrait.DistributionField(group);
groupByFields.add(field);
}
return groupByFields;
}
开发者ID:dremio,项目名称:dremio-oss,代码行数:10,代码来源:WindowPrule.java
示例8: matches
import org.apache.calcite.rel.core.Window; //导入依赖的package包/类
@Override
public boolean matches(RelOptRuleCall call) {
final DrillWindowRel oldWinRel = (DrillWindowRel) call.rels[0];
for(Window.Group group : oldWinRel.groups) {
for(Window.RexWinAggCall rexWinAggCall : group.aggCalls) {
if(isConversionToSumZeroNeeded(rexWinAggCall.getOperator(), rexWinAggCall.getType())) {
return true;
}
}
}
return false;
}
开发者ID:axbaretto,项目名称:drill,代码行数:13,代码来源:DrillReduceAggregatesRule.java
示例9: traverse
import org.apache.calcite.rel.core.Window; //导入依赖的package包/类
public final T traverse(RelNode n) throws Exception {
List<T> inputStreams = new ArrayList<>();
for (RelNode input : n.getInputs()) {
inputStreams.add(traverse(input));
}
if (n instanceof Aggregate) {
return visitAggregate((Aggregate) n, inputStreams);
} else if (n instanceof Calc) {
return visitCalc((Calc) n, inputStreams);
} else if (n instanceof Collect) {
return visitCollect((Collect) n, inputStreams);
} else if (n instanceof Correlate) {
return visitCorrelate((Correlate) n, inputStreams);
} else if (n instanceof Delta) {
return visitDelta((Delta) n, inputStreams);
} else if (n instanceof Exchange) {
return visitExchange((Exchange) n, inputStreams);
} else if (n instanceof Project) {
return visitProject((Project) n, inputStreams);
} else if (n instanceof Filter) {
return visitFilter((Filter) n, inputStreams);
} else if (n instanceof Sample) {
return visitSample((Sample) n, inputStreams);
} else if (n instanceof Sort) {
return visitSort((Sort) n, inputStreams);
} else if (n instanceof TableModify) {
return visitTableModify((TableModify) n, inputStreams);
} else if (n instanceof TableScan) {
return visitTableScan((TableScan) n, inputStreams);
} else if (n instanceof Uncollect) {
return visitUncollect((Uncollect) n, inputStreams);
} else if (n instanceof Window) {
return visitWindow((Window) n, inputStreams);
} else if (n instanceof Join) {
return visitJoin((Join) n, inputStreams);
} else {
return defaultValue(n, inputStreams);
}
}
开发者ID:hortonworks,项目名称:streamline,代码行数:41,代码来源:PostOrderRelNodeVisitor.java
示例10: convert
import org.apache.calcite.rel.core.Window; //导入依赖的package包/类
@Override
public RelNode convert(RelNode rel) {
final Window window = (Window) rel;
final RelTraitSet traitSet = window.getTraitSet().replace(OLAPRel.CONVENTION);
final RelNode input = window.getInput();
return new OLAPWindowRel(rel.getCluster(), traitSet, convert(input, OLAPRel.CONVENTION), window.constants, window.getRowType(), window.groups);
}
开发者ID:apache,项目名称:kylin,代码行数:8,代码来源:OLAPWindowRule.java
示例11: DrillWindowRule
import org.apache.calcite.rel.core.Window; //导入依赖的package包/类
private DrillWindowRule() {
super(RelOptHelper.some(Window.class, Convention.NONE, RelOptHelper.any(RelNode.class)), "DrillWindowRule");
}
开发者ID:skhalifa,项目名称:QDrill,代码行数:4,代码来源:DrillWindowRule.java
示例12: WindowRule
import org.apache.calcite.rel.core.Window; //导入依赖的package包/类
private WindowRule() {
super(RelOptHelper.some(Window.class, Convention.NONE, RelOptHelper.any(RelNode.class)), "WindowRule");
}
开发者ID:dremio,项目名称:dremio-oss,代码行数:4,代码来源:WindowRule.java
示例13: onMatch
import org.apache.calcite.rel.core.Window; //导入依赖的package包/类
@Override
public void onMatch(RelOptRuleCall call) {
final DrillWindowRel oldWinRel = (DrillWindowRel) call.rels[0];
final ImmutableList.Builder<Window.Group> builder = ImmutableList.builder();
for(Window.Group group : oldWinRel.groups) {
final List<Window.RexWinAggCall> aggCalls = Lists.newArrayList();
for(Window.RexWinAggCall rexWinAggCall : group.aggCalls) {
if(isConversionToSumZeroNeeded(rexWinAggCall.getOperator(), rexWinAggCall.getType())) {
final RelDataType argType = rexWinAggCall.getType();
final RelDataType sumType = oldWinRel.getCluster().getTypeFactory()
.createTypeWithNullability(argType, argType.isNullable());
final SqlAggFunction sumZeroAgg = new DrillCalciteSqlAggFunctionWrapper(
new SqlSumEmptyIsZeroAggFunction(), sumType);
final Window.RexWinAggCall sumZeroCall =
new Window.RexWinAggCall(
sumZeroAgg,
sumType,
rexWinAggCall.operands,
rexWinAggCall.ordinal);
aggCalls.add(sumZeroCall);
} else {
aggCalls.add(rexWinAggCall);
}
}
final Window.Group newGroup = new Window.Group(
group.keys,
group.isRows,
group.lowerBound,
group.upperBound,
group.orderKeys,
aggCalls);
builder.add(newGroup);
}
call.transformTo(new DrillWindowRel(
oldWinRel.getCluster(),
oldWinRel.getTraitSet(),
oldWinRel.getInput(),
oldWinRel.constants,
oldWinRel.getRowType(),
builder.build()));
}
开发者ID:axbaretto,项目名称:drill,代码行数:45,代码来源:DrillReduceAggregatesRule.java
示例14: visitWindow
import org.apache.calcite.rel.core.Window; //导入依赖的package包/类
public T visitWindow(Window window, List<T> inputStreams) throws Exception {
return defaultValue(window, inputStreams);
}
开发者ID:hortonworks,项目名称:streamline,代码行数:4,代码来源:PostOrderRelNodeVisitor.java
示例15: copy
import org.apache.calcite.rel.core.Window; //导入依赖的package包/类
@Override
public Window copy(RelTraitSet traitSet, List<RelNode> inputs) {
assert inputs.size() == 1;
return new OLAPWindowRel(getCluster(), traitSet, inputs.get(0), constants, rowType, groups);
}
开发者ID:apache,项目名称:kylin,代码行数:6,代码来源:OLAPWindowRel.java
示例16: OLAPWindowRule
import org.apache.calcite.rel.core.Window; //导入依赖的package包/类
public OLAPWindowRule() {
super(Window.class, Convention.NONE, OLAPRel.CONVENTION, "OLAPWindowRule");
}
开发者ID:apache,项目名称:kylin,代码行数:4,代码来源:OLAPWindowRule.java
示例17: createEnumerableWindow
import org.apache.calcite.rel.core.Window; //导入依赖的package包/类
public static EnumerableWindow createEnumerableWindow(RelOptCluster cluster, RelTraitSet traits, RelNode child,
List<RexLiteral> constants, RelDataType rowType, List<Window.Group> groups) {
return new EnumerableWindow(cluster, traits, child, constants, rowType, groups);
}
开发者ID:apache,项目名称:kylin,代码行数:5,代码来源:EnumerableWindowBridge.java
示例18: collations
import org.apache.calcite.rel.core.Window; //导入依赖的package包/类
public ImmutableList<RelCollation> collations(Window rel,
RelMetadataQuery mq) {
return ImmutableList.copyOf(window(mq, rel.getInput(), rel.groups));
}
开发者ID:apache,项目名称:calcite,代码行数:5,代码来源:RelMdCollation.java
示例19: WindowNode
import org.apache.calcite.rel.core.Window; //导入依赖的package包/类
WindowNode(Compiler compiler, Window rel) {
super(compiler, rel);
}
开发者ID:apache,项目名称:calcite,代码行数:4,代码来源:WindowNode.java
示例20: visit
import org.apache.calcite.rel.core.Window; //导入依赖的package包/类
public void visit(Window window) {
node = new WindowNode(this, window);
}
开发者ID:apache,项目名称:calcite,代码行数:4,代码来源:Nodes.java
注:本文中的org.apache.calcite.rel.core.Window类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论