Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Support to run a TableAPI query like 'table.select('a, 'b, 'c)', including:
1. add RexNodeConverter to convert Expression to RexNode
2. Introduce RexPlannerExpression to wraps a RexNode, which is similar to RexPlannerExpression in flink-planner module.
3. add QueryOperationConverter to convert QueryOperation tree to RelNode
4. Introduce PlannerQueryOperation to wraps a RelNode in QueryOperation, which is similar to PlannerQueryOperation in flink-planner module.
5. add OperationTreeBuilder and relative classes(ExpressionResolver, TableReferenceLookup, FieldReferenceLoopup, ExpandColumnFunctionsRule, LookupCallByNameRule, ResolverRule, StarReferenceFlattingRule, VerifyNoUnresolvedExpressionRule), which is almost copy from flink-planner module to blink-planner module, except that we remove dependency on PlannerExpression. *Note: This is temporal solution, since OperationTreeBuilder will be moved to api module finally.*
6. add implicit conversion in expressionDsl
Attachments
Issue Links
- is a child of
-
FLINK-11488 Add a basic Blink planner framework
- Closed
- is a parent of
-
FLINK-13314 Correct resultType of some PlannerExpression when operands contains DecimalTypeInfo or BigDecimalTypeInfo in Blink planner
- Closed
-
FLINK-13071 QueryOperationConverter in Blink planner support add kinds of QueryOperations.
- Closed
-
FLINK-13107 Copy TableApi IT and UT to Blink planner
- Closed
- relates to
-
FLINK-13049 Port planner expressions to blink-planner from flink-planner
- Closed
-
FLINK-13070 Remove TableImpl and use api.internal.TableImpl in blink
- Closed
- links to