Package io.trino.sql.planner
Class TranslationMap
java.lang.Object
io.trino.sql.planner.TranslationMap
Keeps mappings of fields and AST expressions to symbols in the current plan within query boundary.
AST expressions contain Identifiers, while IR expressions contain SymbolReferences
FunctionCalls in AST expressions are SQL function names. In IR expressions, they contain an encoded name representing a resolved function
AST and IR expressions use the same class hierarchy (Expression,
but differ in the following ways:
-
Nested Class Summary
Nested Classes -
Constructor Summary
ConstructorsConstructorDescriptionTranslationMap(Optional<TranslationMap> outerContext, Scope scope, Analysis analysis, Map<NodeRef<LambdaArgumentDeclaration>, Symbol> lambdaArguments, Symbol[] fieldSymbols, Map<ScopeAware<Expression>, Symbol> astToSymbols, Map<NodeRef<Expression>, Symbol> substitutions, Session session, PlannerContext plannerContext) TranslationMap(Optional<TranslationMap> outerContext, Scope scope, Analysis analysis, Map<NodeRef<LambdaArgumentDeclaration>, Symbol> lambdaArguments, List<Symbol> fieldSymbols, Session session, PlannerContext plannerContext) TranslationMap(Optional<TranslationMap> outerContext, Scope scope, Analysis analysis, Map<NodeRef<LambdaArgumentDeclaration>, Symbol> lambdaArguments, List<Symbol> fieldSymbols, Map<ScopeAware<Expression>, Symbol> astToSymbols, Session session, PlannerContext plannerContext) -
Method Summary
Modifier and TypeMethodDescriptionbooleancanTranslate(Expression expression) getParametersRow(List<JsonPathParameter> pathParameters, List<Expression> rewrittenPathParameters, Type parameterRowType, BooleanLiteral failOnError) getScope()rewrite(Expression expression) withAdditionalIdentityMappings(Map<NodeRef<Expression>, Symbol> mappings) withAdditionalMappings(Map<ScopeAware<Expression>, Symbol> mappings) withNewMappings(Map<ScopeAware<Expression>, Symbol> mappings, List<Symbol> fields)
-
Constructor Details
-
TranslationMap
public TranslationMap(Optional<TranslationMap> outerContext, Scope scope, Analysis analysis, Map<NodeRef<LambdaArgumentDeclaration>, Symbol> lambdaArguments, List<Symbol> fieldSymbols, Session session, PlannerContext plannerContext) -
TranslationMap
public TranslationMap(Optional<TranslationMap> outerContext, Scope scope, Analysis analysis, Map<NodeRef<LambdaArgumentDeclaration>, Symbol> lambdaArguments, List<Symbol> fieldSymbols, Map<ScopeAware<Expression>, Symbol> astToSymbols, Session session, PlannerContext plannerContext) -
TranslationMap
public TranslationMap(Optional<TranslationMap> outerContext, Scope scope, Analysis analysis, Map<NodeRef<LambdaArgumentDeclaration>, Symbol> lambdaArguments, Symbol[] fieldSymbols, Map<ScopeAware<Expression>, Symbol> astToSymbols, Map<NodeRef<Expression>, Symbol> substitutions, Session session, PlannerContext plannerContext)
-
-
Method Details
-
withScope
-
withNewMappings
public TranslationMap withNewMappings(Map<ScopeAware<Expression>, Symbol> mappings, List<Symbol> fields) -
withAdditionalMappings
-
withAdditionalIdentityMappings
-
getFieldSymbols
-
getMappings
-
getAnalysis
-
canTranslate
-
rewrite
-
getScope
-
getParametersRow
public TranslationMap.ParametersRow getParametersRow(List<JsonPathParameter> pathParameters, List<Expression> rewrittenPathParameters, Type parameterRowType, BooleanLiteral failOnError)
-