Class ExpressionResolver


  • @Internal
    public class ExpressionResolver
    extends Object
    Tries to resolve all unresolved expressions such as UnresolvedReferenceExpression or calls such as BuiltInFunctionDefinitions.OVER.

    The default set of rules (getAllResolverRules()) will resolve following references:

    • flatten '*' and column functions to all fields of underlying inputs
    • join over aggregates with corresponding over windows into a single resolved call
    • resolve remaining unresolved references to fields, tables or local references
    • replace calls to BuiltInFunctionDefinitions.FLATTEN, BuiltInFunctionDefinitions.WITH_COLUMNS, etc.
    • performs call arguments types validation and inserts additional casts if possible
    • Method Detail

      • getExpandingResolverRules

        public static List<ResolverRule> getExpandingResolverRules()
        List of rules for (possibly) expanding the list of unresolved expressions.
      • getAllResolverRules

        public static List<ResolverRule> getAllResolverRules()
        List of rules that will be applied during expression resolution.
      • resolve

        public List<org.apache.flink.table.expressions.ResolvedExpression> resolve​(List<org.apache.flink.table.expressions.Expression> expressions)
        Resolves given expressions with configured set of rules. All expressions of an operation should be given at once as some rules might assume the order of expressions.

        After this method is applied the returned expressions should be ready to be converted to planner specific expressions.

        Parameters:
        expressions - list of expressions to resolve.
        Returns:
        resolved list of expression
      • resolveExpanding

        public List<org.apache.flink.table.expressions.Expression> resolveExpanding​(List<org.apache.flink.table.expressions.Expression> expressions)
        Resolves given expressions with configured set of rules. All expressions of an operation should be given at once as some rules might assume the order of expressions.

        After this method is applied the returned expressions might contain unresolved expression that can be used for further API transformations.

        Parameters:
        expressions - list of expressions to resolve.
        Returns:
        resolved list of expression