Class SubstraitFunctionParser


  • public final class SubstraitFunctionParser
    extends Object
    Utility class for parsing Substrait function expressions into filter predicates and column predicates. This parser handles scalar functions, comparison operations, logical operations (AND/OR), and literal values from Substrait expressions, converting them into a more convenient predicate model.
    • Method Detail

      • getColumnPredicatesMap

        public static Map<String,​List<ColumnPredicate>> getColumnPredicatesMap​(List<io.substrait.proto.SimpleExtensionDeclaration> extensionDeclarationList,
                                                                                     io.substrait.proto.Expression expression,
                                                                                     List<String> columnNames)
        Parses a Substrait expression into a map of column predicates grouped by column name. This method extracts all column predicates from the expression and organizes them by the column they apply to.
        Parameters:
        extensionDeclarationList - List of function extension declarations from the Substrait plan
        expression - The Substrait expression to parse
        columnNames - List of column names in the schema for field reference resolution
        Returns:
        A map where keys are column names and values are lists of predicates for that column
      • parseColumnPredicates

        public static List<ColumnPredicate> parseColumnPredicates​(List<io.substrait.proto.SimpleExtensionDeclaration> extensionDeclarationList,
                                                                  io.substrait.proto.Expression expression,
                                                                  List<String> columnNames)
        Recursively parses a Substrait expression to extract all column predicates. This method flattens logical operations (AND/OR) and extracts individual column predicates.
        Parameters:
        extensionDeclarationList - List of function extension declarations from the Substrait plan
        expression - The Substrait expression to parse
        columnNames - List of column names in the schema for field reference resolution
        Returns:
        A flat list of all column predicates found in the expression