mirror of
https://github.com/apache/impala.git
synced 2026-01-07 09:02:19 -05:00
This fix contains two parts: - functionality inside the analyzer to compute a value transfer graph (from equality predicates between slotrefs) and from that equivalence classes for all slots; this functionality is required for this fix but will be generally useful when adding propagation of binding predicates in the future - a "shortest path" implementation inside the planner of a fix for the problem at hand; this leaves a lot to be desired: * correct handling of assigned predicates: the added test case shows that the planner will try to assign all predicates to some node in the tree, even if that predicate is superfluous because it was subsumed by an equality derived from equivalence class membership * complete lack of propagation of binding predicates (e.g., propagate "col1 = 5" to all slotrefs that are in the same equivalence class as col1) This is beyond what can be accomplished for 1.1 and therefore will have to wait for 1.2.