bb.setRoot( RelOptUtil.createProject( inputRel, bb.setRoot( createAggregate( bb, SqlNode newHaving = pushDownNotForIn(having); replaceSubqueries(bb, newHaving, RelOptUtil.Logic.UNKNOWN_AS_FALSE); havingExpr = bb.convertExpression(newHaving); if (havingExpr.isAlwaysTrue()) { havingExpr = null; int sysFieldCount = selectList.size() - names.size(); for (SqlNode expr : selectList) { selectExprs.add(bb.convertExpression(expr)); selectNames.add( k < sysFieldCount selectExprs.add(bb.convertExpression(expr)); selectNames.add(validator.deriveAlias(expr, k++)); bb.setRoot(RelOptUtil.createFilter(bb.root, havingExpr), false); bb.setRoot( RelOptUtil.createProject( bb.root,
ImmutableList.builder(); for (SqlNode partition : partitionList) { partitionKeys.add(bb.convertExpression(partition)); RexNode lowerBound = bb.convertExpression(window.getLowerBound()); RexNode upperBound = bb.convertExpression(window.getUpperBound()); SqlNodeList orderList = window.getOrderList(); if ((orderList.size() == 0) && !window.isRows()) { for (SqlNode order : orderList) { flags.clear(); RexNode e = bb.convertSortExpression(order, flags); orderKeys.add(new RexFieldCollation(e, flags));
public void flatten( List<RelNode> rels, int systemFieldCount, int[] start, List<Pair<RelNode, Integer>> relOffsetList) { for (RelNode rel : rels) { if (leaves.contains(rel)) { relOffsetList.add( Pair.of(rel, start[0])); start[0] += rel.getRowType().getFieldCount(); } else { if (rel instanceof JoinRel || rel instanceof AggregateRel) { start[0] += systemFieldCount; } flatten( rel.getInputs(), systemFieldCount, start, relOffsetList); } } }
bb.setRoot( CalcRel.createProject( inputRel, bb.setRoot( createAggregate( bb, SqlNode newHaving = pushDownNotForIn(having); replaceSubqueries(bb, newHaving); havingExpr = bb.convertExpression(newHaving); if (havingExpr.isAlwaysTrue()) { havingExpr = null; int sysFieldCount = selectList.size() - names.size(); for (SqlNode expr : selectList) { selectExprs.add(bb.convertExpression(expr)); selectNames.add( k < sysFieldCount selectExprs.add(bb.convertExpression(expr)); selectNames.add(validator.deriveAlias(expr, k++)); bb.setRoot(CalcRel.createFilter(bb.root, havingExpr), false); bb.setRoot( CalcRel.createProject( bb.root,
bb.setRoot( CalcRel.createProject( inputRel, bb.setRoot( createAggregate( bb, SqlNode newHaving = pushdownNotForIn(having); replaceSubqueries(bb, newHaving); havingExpr = bb.convertExpression(newHaving); if (havingExpr.isAlwaysTrue()) { havingExpr = null; int sysFieldCount = selectList.size() - names.size(); for (SqlNode expr : selectList) { selectExprs.add(bb.convertExpression(expr)); selectNames.add( k < sysFieldCount selectExprs.add(bb.convertExpression(expr)); selectNames.add(validator.deriveAlias(expr, k++)); bb.setRoot(CalcRel.createFilter(bb.root, havingExpr), false); bb.setRoot( CalcRel.createProject( bb.root,
tableSampleSpec.isRepeatable(), tableSampleSpec.getRepeatableSeed()); bb.setRoot(new SamplingRel(cluster, bb.root, params), false); } else { throw Util.newInternal( bb.setRoot(tableRel, true); if (usedDataset[0]) { bb.setDataset(datasetName); conditionExp, convertedJoinType); bb.setRoot(joinRel, false); return; case UNION: final RelNode rel = convertQueryRecursive(from, false, null); bb.setRoot(rel, true); return; CalcRel.createProject( (null != bb.root) ? bb.root : new OneRowRel(cluster), Collections.singletonList(bb.convertExpression(node)), Collections.singletonList(validator.deriveAlias(node, 0)), true); new UncollectRel(cluster, cluster.traitSetOf(Convention.NONE), childRel); bb.setRoot(uncollectRel, true);
tableSampleSpec.isRepeatable(), tableSampleSpec.getRepeatableSeed()); bb.setRoot(new SamplingRel(cluster, bb.root, params), false); } else { throw Util.newInternal( bb.setRoot(tableRel, true); if (usedDataset[0]) { bb.setDataset(datasetName); conditionExp, convertedJoinType); bb.setRoot(joinRel, false); return; case UNION: final RelNode rel = convertQueryRecursive(from, false, null); bb.setRoot(rel, true); return; CalcRel.createProject( (null != bb.root) ? bb.root : new OneRowRel(cluster), Collections.singletonList(bb.convertExpression(call)), Collections.singletonList(validator.deriveAlias(call, 0)), true); bb.setRoot(uncollectRel, true); return;
leftJoinKeysForIn[i] = bb.convertExpression(sqlExpr); leftJoinKeysForIn[0] = bb.convertExpression(leftKeyNode); bb.register( converted, joinType,
leftJoinKeysForIn[i] = bb.convertExpression(sqlExpr); leftJoinKeysForIn[0] = bb.convertExpression(leftKeyNode); bb.register( converted, joinType,
for (int j = 0; j < projectList.size(); j++) { SqlNode operand = projectList.get(j); selectList.add(bb.convertExpression(operand));
for (int j = 0; j < projectList.size(); j++) { SqlNode operand = projectList.get(j); selectList.add(bb.convertExpression(operand));
convertedExpr = bb.convertExpression(operand); assert convertedExpr != null; if (argTypes != null) {
convertedExpr = bb.convertExpression(operand); assert convertedExpr != null; args.add(lookupOrCreateGroupExpr(convertedExpr));
targetRowType); if (valuesRel != null) { bb.setRoot(valuesRel, true); return; exps.add( Pair.of( tmpBb.convertExpression(operand.e), validator.deriveAlias(operand.e, operand.i))); throw Util.newInternal("empty values clause"); } else if (unionRels.size() == 1) { bb.setRoot( unionRels.get(0), true); } else { bb.setRoot( new UnionRel( cluster,
for (SqlNode expr : selectList) { ++i; exprs.add(bb.convertExpression(expr)); fieldNames.add(deriveAlias(expr, aliases, i)); ++i; SqlNode expr2 = validator.expandOrderExpr(select, expr); exprs.add(bb.convertExpression(expr2)); fieldNames.add(deriveAlias(expr, aliases, i)); RelOptUtil.getVariablesUsed(inputRel); bb.setRoot( CalcRel.createProject(bb.root, exprs, fieldNames), false);
SqlStdOperatorTable.equalsOperator, leftKeys[0], bb.convertExpression(rightVals)); } else { assert (rightVals instanceof SqlCall); SqlStdOperatorTable.equalsOperator, leftKeys[i], bb.convertExpression(call.getOperands()[i])); if (rexComparison == null) { rexComparison = equi;
targetRowType); if (valuesRel != null) { bb.setRoot(valuesRel, true); return; exps.add( Pair.of( tmpBb.convertExpression(operand.e), validator.deriveAlias(operand.e, operand.i))); throw Util.newInternal("empty values clause"); } else if (unionRels.size() == 1) { bb.setRoot( unionRels.get(0), true); } else { bb.setRoot( new UnionRel( cluster,
SqlStdOperatorTable.EQUALS, leftKeys[0], bb.convertExpression(rightVals)); } else { assert rightVals instanceof SqlCall;