refactor: simplify 2-stage, remove duplicates
- Refactor 2-stage aggregation pipeline, so it is easier to read and work with - add logic for removing duplicate grouping expressions and aggregates from local stage: `select sum(a), sum(a) from t` We should compute only one aggregate at local stage. The same goes for grouping expressions: `select sum(distinct a) from t group by a` At local stage we must use `a` only once in projection.
Showing
- sbroad-core/src/errors.rs 8 additions, 0 deletionssbroad-core/src/errors.rs
- sbroad-core/src/executor/tests.rs 1 addition, 1 deletionsbroad-core/src/executor/tests.rs
- sbroad-core/src/executor/tests/subtree.rs 31 additions, 16 deletionssbroad-core/src/executor/tests/subtree.rs
- sbroad-core/src/frontend/sql/ir/tests.rs 109 additions, 41 deletionssbroad-core/src/frontend/sql/ir/tests.rs
- sbroad-core/src/ir.rs 94 additions, 0 deletionssbroad-core/src/ir.rs
- sbroad-core/src/ir/aggregates.rs 115 additions, 135 deletionssbroad-core/src/ir/aggregates.rs
- sbroad-core/src/ir/expression.rs 2 additions, 2 deletionssbroad-core/src/ir/expression.rs
- sbroad-core/src/ir/expression/cast.rs 1 addition, 1 deletionsbroad-core/src/ir/expression/cast.rs
- sbroad-core/src/ir/helpers/tests.rs 5 additions, 7 deletionssbroad-core/src/ir/helpers/tests.rs
- sbroad-core/src/ir/transformation/redistribution/groupby.rs 1252 additions, 572 deletionssbroad-core/src/ir/transformation/redistribution/groupby.rs
- sbroad-core/src/ir/tree/traversal.rs 1 addition, 0 deletionssbroad-core/src/ir/tree/traversal.rs
Loading
Please register or sign in to comment