@Test public void qualified_name_with_qualifier() { analysisContext.push(); analysisContext.peek().define(new Symbol(Namespace.INDEX_NAME, "index_alias"), STRUCT); assertAnalyzeEqual( DSL.ref("integer_value", INTEGER), AstDSL.qualifiedName("index_alias", "integer_value") ); analysisContext.peek().define(new Symbol(Namespace.FIELD_NAME, "nested_field"), STRUCT); SyntaxCheckException exception = assertThrows(SyntaxCheckException.class, () -> analyze(AstDSL.qualifiedName("nested_field", "integer_value"))); assertEquals( "The qualifier [nested_field] of qualified name [nested_field.integer_value] " + "must be an index name or its alias", exception.getMessage() ); analysisContext.pop(); }
public Expression analyze(UnresolvedExpression unresolved, AnalysisContext context) { return unresolved.accept(this, context); }
ExpressionAnalyzer extends AbstractNodeVisitor<Expression, AnalysisContext> { public Expression analyze(UnresolvedExpression unresolved, AnalysisContext context) { return unresolved.accept(this, context); } }
ExpressionAnalyzer extends AbstractNodeVisitor<Expression, AnalysisContext> { public Expression analyze(UnresolvedExpression unresolved, AnalysisContext context) { return unresolved.accept(this, context); } ExpressionAnalyzer(
      BuiltinFunctionRepository repository); }
ExpressionAnalyzer extends AbstractNodeVisitor<Expression, AnalysisContext> { public Expression analyze(UnresolvedExpression unresolved, AnalysisContext context) { return unresolved.accept(this, context); } ExpressionAnalyzer(
      BuiltinFunctionRepository repository); Expression analyze(UnresolvedExpression unresolved, AnalysisContext context); @Override Expression visitUnresolvedAttribute(UnresolvedAttribute node, AnalysisContext context); @Override Expression visitEqualTo(EqualTo node, AnalysisContext context); @Override Expression visitLiteral(Literal node, AnalysisContext context); @Override Expression visitInterval(Interval node, AnalysisContext context); @Override Expression visitAnd(And node, AnalysisContext context); @Override Expression visitOr(Or node, AnalysisContext context); @Override Expression visitXor(Xor node, AnalysisContext context); @Override Expression visitNot(Not node, AnalysisContext context); @Override Expression visitAggregateFunction(AggregateFunction node, AnalysisContext context); @Override Expression visitFunction(Function node, AnalysisContext context); @Override Expression visitCompare(Compare node, AnalysisContext context); @Override Expression visitField(Field node, AnalysisContext context); @Override Expression visitQualifiedName(QualifiedName node, AnalysisContext context); }
ExpressionAnalyzer extends AbstractNodeVisitor<Expression, AnalysisContext> { public Expression analyze(UnresolvedExpression unresolved, AnalysisContext context) { return unresolved.accept(this, context); } ExpressionAnalyzer(
      BuiltinFunctionRepository repository); Expression analyze(UnresolvedExpression unresolved, AnalysisContext context); @Override Expression visitUnresolvedAttribute(UnresolvedAttribute node, AnalysisContext context); @Override Expression visitEqualTo(EqualTo node, AnalysisContext context); @Override Expression visitLiteral(Literal node, AnalysisContext context); @Override Expression visitInterval(Interval node, AnalysisContext context); @Override Expression visitAnd(And node, AnalysisContext context); @Override Expression visitOr(Or node, AnalysisContext context); @Override Expression visitXor(Xor node, AnalysisContext context); @Override Expression visitNot(Not node, AnalysisContext context); @Override Expression visitAggregateFunction(AggregateFunction node, AnalysisContext context); @Override Expression visitFunction(Function node, AnalysisContext context); @Override Expression visitCompare(Compare node, AnalysisContext context); @Override Expression visitField(Field node, AnalysisContext context); @Override Expression visitQualifiedName(QualifiedName node, AnalysisContext context);  }