Class SubstraitFunctionParser
- java.lang.Object
-
- com.amazonaws.athena.connector.substrait.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 Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description 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.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.
-
-
-
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 planexpression
- The Substrait expression to parsecolumnNames
- 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 planexpression
- The Substrait expression to parsecolumnNames
- List of column names in the schema for field reference resolution- Returns:
- A flat list of all column predicates found in the expression
-
-