List<RexNode> inputExprs = restructureFields(structuredType); RexNode newInvocation = rexBuilder.makeNewInvocation(
List<RexNode> inputExprs = restructureFields(structuredType); RexNode newInvocation = rexBuilder.makeNewInvocation(
public RelNode rewrite(RelNode root) { // Perform flattening. final RewriteRelVisitor visitor = new RewriteRelVisitor(); visitor.visit(root, 0, null); RelNode flattened = getNewForOldRel(root); flattenedRootType = flattened.getRowType(); // If requested, add an additional projection which puts // everything back into structured form for return to the // client. restructured = false; List<RexNode> structuringExps = null; if (restructure) { iRestructureInput = 0; structuringExps = restructureFields(root.getRowType()); } if (restructured) { // REVIEW jvs 23-Mar-2005: How do we make sure that this // implementation stays in Java? Fennel can't handle // structured types. return relBuilder.push(flattened) .projectNamed(structuringExps, root.getRowType().getFieldNames(), true) .build(); } else { return flattened; } }
public RelNode rewrite(RelNode root) { // Perform flattening. final RewriteRelVisitor visitor = new RewriteRelVisitor(); visitor.visit(root, 0, null); RelNode flattened = getNewForOldRel(root); flattenedRootType = flattened.getRowType(); // If requested, add an additional projection which puts // everything back into structured form for return to the // client. restructured = false; List<RexNode> structuringExps = null; if (restructure) { iRestructureInput = 0; structuringExps = restructureFields(root.getRowType()); } if (restructured) { // REVIEW jvs 23-Mar-2005: How do we make sure that this // implementation stays in Java? Fennel can't handle // structured types. return relBuilder.push(flattened) .projectNamed(structuringExps, root.getRowType().getFieldNames(), true) .build(); } else { return flattened; } }