joinType.generatesNullsOnRight(); for (Pair<RexNode, String> pair : project.getNamedProjects()) { RexNode newProjExpr = removeCorrelationExpr(
joinType.generatesNullsOnRight(); for (Pair<RexNode, String> pair : project.getNamedProjects()) { RexNode newProjExpr = removeCorrelationExpr(
@Override public SamzaSqlRelMessage apply(SamzaSqlRelMessage message) { RelDataType type = project.getRowType(); Object[] output = new Object[type.getFieldCount()]; expr.execute(context.getExecutionContext(), context.getDataContext(), message.getSamzaSqlRelRecord().getFieldValues().toArray(), output); List<String> names = new ArrayList<>(); for (int index = 0; index < output.length; index++) { names.add(index, project.getNamedProjects().get(index).getValue()); } return new SamzaSqlRelMessage(names, Arrays.asList(output)); } }
int j = 0; boolean ret = false; for (Pair<RexNode, String> namedProject : project.getNamedProjects()) { RexNode rex = namedProject.left; String name = namedProject.right;
/** * transforms the input message into the output message with projected fields * @param message the input message to be transformed * @return the new SamzaSqlRelMessage message */ @Override public SamzaSqlRelMessage apply(SamzaSqlRelMessage message) { Instant arrivalTime = Instant.now(); RelDataType type = project.getRowType(); Object[] output = new Object[type.getFieldCount()]; expr.execute(translatorContext.getExecutionContext(), translatorContext.getDataContext(), message.getSamzaSqlRelRecord().getFieldValues().toArray(), output); List<String> names = new ArrayList<>(); for (int index = 0; index < output.length; index++) { names.add(index, project.getNamedProjects().get(index).getValue()); } updateMetrics(arrivalTime, Instant.now(), message.getSamzaSqlRelMsgMetadata().isNewInputMessage); return new SamzaSqlRelMessage(names, Arrays.asList(output), message.getSamzaSqlRelMsgMetadata()); }
public static boolean isSimpleColumnSelection(Project project) { HashSet<Integer> inputRefReferenced = new HashSet<>(); for (Pair<RexNode, String> proj : project.getNamedProjects()) { if (proj.getKey().getKind() != SqlKind.INPUT_REF) { return false; } RexInputRef inputRef = (RexInputRef) proj.getKey(); // If the input reference is again referenced, then it is not a simple column selection (since it is not a permutation). if (inputRefReferenced.contains(inputRef.getIndex())) { return false; } final String nameOfProjectField = proj.getValue(); final String nameOfInput = project.getInput().getRowType().getFieldNames().get(inputRef.getIndex()); // Renaming a column is not a simple column selection if (nameOfProjectField == null || !nameOfProjectField.equals(nameOfInput)) { return false; } inputRefReferenced.add(inputRef.getIndex()); } return true; }
if (projRel != null) { List<Pair<RexNode, String>> namedProjects = projRel.getNamedProjects(); int nChildFields = childFields.size(); int[] adjustments = new int[nChildFields];
if (projRel != null) { List<Pair<RexNode, String>> namedProjects = projRel.getNamedProjects(); int nChildFields = childFields.size(); int[] adjustments = new int[nChildFields];
for (Pair<RexNode, String> pair : project.getNamedProjects()) { RexNode rex = pair.left; String name = pair.right; typeBuilder.build()); if (project.getNamedProjects().size() == nameMap.size()) { return new Pair<>(innerProject, null); for (Pair<RexNode, String> pair : project.getNamedProjects()) { RexNode rex = pair.left; String name = pair.right;
for (Pair<RexNode, String> pair : postProject.getNamedProjects()) { String fieldName = pair.right; RexNode rex = pair.left;
for (Pair<RexNode, String> pair : postProject.getNamedProjects()) { final RexNode postProjectRexNode = pair.left; String expression = DruidExpressions
for (Pair<RexNode, String> p : origProj.getNamedProjects()) { projects.add( Pair.of(
for (Pair<RexNode, String> p : origProj.getNamedProjects()) { projects.add( Pair.of(
relBuilder.push(projRel.getInput()); relBuilder.filter(newCondition); relBuilder.project(Pair.left(projRel.getNamedProjects()), Pair.right(projRel.getNamedProjects()));
projectFactory.createProject(sort, project.getProjects(), Pair.right(project.getNamedProjects()))); return this;
projectFactory.createProject(sort, project.getProjects(), Pair.right(project.getNamedProjects()))); return this;
projectFactory.createProject(sort, project.getProjects(), Pair.right(project.getNamedProjects()))); return this;
for (Pair<RexNode, String> p : project.getNamedProjects()) { columnBuilder.add(toColRef(p.left, p.right));
builder .push(newFilterRel) .projectNamed(Pair.left(projRel.getNamedProjects()), Pair.right(projRel.getNamedProjects()), true) .build();