Details
-
New Feature
-
Status: Stalled (View Workflow)
-
Critical
-
Resolution: Unresolved
-
None
Description
To unlock some impossible now features like dependent subqueries in a FROM clause name (but probably not only this) resolution should be redone to separate it from other info collecting.
- First pass should create array of name of fields (Item_type_holder) for SELECTs and TABLE_LISTs, including unfolding "*" in SELECTs (inner -> out, Post-order tree traversal) (actually it would be better to have just iterators fr fields, so it is not needed)
- Second pass (or two) only create connection between place of name usage (Item_ident) and a field descriptor in the table above (possible in any order now) (can be done by pre-made on parser list of names which need to be resolved)
- Third pass collect type information for all Items, calculate type compatibility (Post-order tree traversal).
- Fourth pass "normalize" tree:
- add correct Item in place of resolved names
- constant calculation/conversion
- ...
All changes made once and on statement mem_root memory.
Attachments
Issue Links
- blocks
-
MDEV-19078 Support lateral derived tables
- Open
-
MDEV-32283 CTE renaming columns too early in union subquery elements
- Open
- relates to
-
MDEV-28196 Correlated derived tables not supported
- Open