ResolveFunctions Logical Resolution Rule¶
ResolveFunctions
is a logical resolution rule that the logical query plan analyzer uses to resolve the following logical operators and expressions in a logical query plan:
Logical Operator | Expression |
---|---|
UnresolvedFunctionName | UnresolvedFunction |
UnresolvedTableValuedFunction | UnresolvedGenerator |
UnresolvedTVFAliases |
ResolveReferences
is a Catalyst rule for transforming logical plans (Rule[LogicalPlan]
).
ResolveFunctions
is part of Resolution fixed-point batch of rules.
Executing Rule¶
apply
resolves logical operators up (post-order, bottom-up) in trees with the following TreePatterns:
- GENERATOR
- UNRESOLVED_FUNC
- UNRESOLVED_FUNCTION
- UNRESOLVED_TABLE_VALUED_FUNCTION
- UNRESOLVED_TVF_ALIASES
UnresolvedTableValuedFunction¶
For an UnresolvedTableValuedFunction, apply
first attempts to resolveBuiltinOrTempTableFunction, if available.
Otherwise, apply
attempts to resolve a CatalogPlugin and, for the spark_catalog only, requests the SessionCatalog to resolvePersistentTableFunction.
Others¶
apply
...FIXME
resolveBuiltinOrTempTableFunction¶
resolveBuiltinOrTempTableFunction(
name: Seq[String],
arguments: Seq[Expression]): Option[LogicalPlan]
Only for a one-element name
, resolveBuiltinOrTempTableFunction
requests the SessionCatalog to resolveBuiltinOrTempTableFunction.
Otherwise, resolveBuiltinOrTempTableFunction
returns None
(an undefined value).