@Override public Expression rewriteQualifiedNameReference(QualifiedNameReference node, Void context, ExpressionTreeRewriter<Void> treeRewriter) { Integer channel = symbolToChannelMapping.get(Symbol.fromQualifiedName(node.getName())); Preconditions.checkArgument(channel != null, "Cannot resolve symbol %s", node.getName()); return new InputReference(channel); }
@Override public Type visitInputReference(InputReference node, StackableAstVisitorContext<AnalysisContext> context) { Type type = tupleDescriptor.getFieldByIndex(node.getChannel()).getType(); expressionTypes.put(node, type); return type; }
@Override public String visitInputReference(InputReference node, Void context) { // add colon so this won't parse return ":input(" + node.getChannel() + ")"; }
@Override protected RowExpression visitInputReference(InputReference node, Void context) { return field(node.getChannel(), types.get(node)); }
@Override protected Void visitInputReference(InputReference node, Void context) { inputChannels.add(node.getChannel()); return null; }
@Override protected Void visitInputReference(InputReference node, Void context) { throw new SemanticException(EXPRESSION_NOT_CONSTANT, expression, "Constant expression cannot contain column references"); }
@Override public String visitInputReference(InputReference node, Boolean unmangleNames) { // add colon so this won't parse return ":input(" + node.getChannel() + ")"; }