public class ExpressionAnalyzer
extends java.lang.Object
This Analyzer can be used to convert Expression from the SQL AST into symbols.
In order to resolve QualifiedName or SubscriptExpressions it will use the fieldResolver given in the constructor and generate a relationOutput for the matching Relation.
Modifier and Type | Field and Description |
---|---|
protected io.crate.analyze.expressions.ExpressionAnalyzer.InnerExpressionAnalyzer |
innerAnalyzer |
Constructor and Description |
---|
ExpressionAnalyzer(AnalysisMetaData analysisMetaData,
ParameterContext parameterContext,
FieldProvider fieldProvider,
FieldResolver fieldResolver) |
ExpressionAnalyzer(Functions functions,
ReferenceResolver<? extends Input<?>> referenceResolver,
ParameterContext parameterContext,
FieldProvider<?> fieldProvider,
FieldResolver fieldResolver) |
Modifier and Type | Method and Description |
---|---|
Symbol |
convert(Expression expression,
ExpressionAnalysisContext expressionAnalysisContext)
Converts an expression into a symbol.
|
protected Symbol |
convertFunctionCall(FunctionCall node,
ExpressionAnalysisContext context) |
WhereClause |
generateWhereClause(com.google.common.base.Optional<Expression> whereExpression,
ExpressionAnalysisContext context) |
protected static java.lang.String |
getQuotedSubscriptLiteral(java.lang.String nodeName) |
java.lang.Integer |
integerFromExpression(com.google.common.base.Optional<Expression> expression) |
Symbol |
normalize(Symbol symbol)
Use to normalize a symbol.
|
Literal |
normalizeInputForType(Symbol inputValue,
DataType dataType)
normalize and validate the given value according to the given
DataType |
void |
resolveWritableFields(boolean value) |
protected io.crate.analyze.expressions.ExpressionAnalyzer.InnerExpressionAnalyzer innerAnalyzer
public ExpressionAnalyzer(Functions functions, ReferenceResolver<? extends Input<?>> referenceResolver, ParameterContext parameterContext, FieldProvider<?> fieldProvider, @Nullable FieldResolver fieldResolver)
public ExpressionAnalyzer(AnalysisMetaData analysisMetaData, ParameterContext parameterContext, FieldProvider fieldProvider, @Nullable FieldResolver fieldResolver)
@Nullable public java.lang.Integer integerFromExpression(com.google.common.base.Optional<Expression> expression)
public Symbol normalize(Symbol symbol)
public Symbol convert(Expression expression, ExpressionAnalysisContext expressionAnalysisContext)
Expressions like QualifiedName that reference a column are resolved using the fieldResolver that were passed to the constructor.
Some information (like resolved function symbols) are written onto the given expressionAnalysisContext
public WhereClause generateWhereClause(com.google.common.base.Optional<Expression> whereExpression, ExpressionAnalysisContext context)
public Literal normalizeInputForType(Symbol inputValue, DataType dataType)
DataType
protected Symbol convertFunctionCall(FunctionCall node, ExpressionAnalysisContext context)
public void resolveWritableFields(boolean value)
@Nullable protected static java.lang.String getQuotedSubscriptLiteral(java.lang.String nodeName)