Sait Talha Nisanci
e5a21f07cb
test aggregates with expressions
2020-06-30 11:41:16 -07:00
Philip Dubé
d155149c18
tests: remove stale comment, fix typo
2020-03-31 20:13:51 +00:00
Philip Dubé
917cb6ae93
Don't segfault on queries using GROUPING
...
GROUPING will always return 0 outside of GROUPING SETS, CUBE, or ROLLUP
Since we don't support those, it makes sense to reject GROUPING in queries
2020-03-25 15:46:43 +00:00
Philip Dubé
11b968bc30
Add runtime type checking to AGGREGATE_CUSTOM_COMBINE helper functions
2020-03-11 17:20:30 +00:00
Philip Dubé
d43c80d4d8
pullUpIntermediateRows should not be true when groupedByDisjointPartitionColumn is true
...
This was causing 'SELECT id, stdev(y_int) FROM tbl GROUP BY id' to push down stddev without group by
2020-01-30 21:18:08 +00:00
Philip Dubé
281aacce9b
Fix row-gather for subqueries being handled by task-tracker
...
task-tracker has specific logic for MultiPartition when GROUP BY is missing
We were ending up in this code path because row-gather removes GROUP BY
2020-01-10 01:51:37 +00:00
Philip Dubé
863bf49507
Implement pulling up rows to coordinator when aggregates cannot be pushed down. Enabled by default
2020-01-07 01:16:04 +00:00
Marco Slot
b21b6905ae
Do not repeat GROUP BY distribution_column on coordinator
...
Allow arbitrary aggregates to be pushed down in these scenarios
2019-12-25 01:33:41 +00:00
Philip Dubé
e9bbdb8f31
Fix handling of empty intermediate results when distributing custom aggregates
2019-12-23 17:27:52 +00:00
Philip Dubé
1597fbb369
aggregate_support test: test DISTINCT, ORDER BY, FILTER, & no intermediate results
...
Previously,
- we'd push down ORDER BY, but this doesn't order intermediate results between workers
- we'd keep FILTER on master aggregate, which would raise an error about unexpected cstrings
2019-12-03 15:46:01 +00:00
Marco Slot
2329157406
Swap aggregate_support tests to simplify enterprise merge
2019-11-26 13:39:18 +01:00
Philip Dubé
a81e6a81ab
Fix distributed aggregation for non superuser roles
...
Moves support functions to pg_catalog for now. We'd prefer a different solution
for when we're creating these support functions dynamically
2019-11-25 20:46:25 +00:00
Philip Dubé
495c0f5117
Phase 1 implementation of custom aggregates
...
Phase 1 seeks to implement minimal infrastructure, so does not include:
- dynamic generation of support aggregates to handle multiple arguments
- configuration methods to direct aggregation strategy,
or mark an aggregate's serialize/deserialize as safe to operate across nodes
Aggregates can be distributed when:
- they have a single argument
- they have a combinefunc
- their transition type is not a pseudotype
2019-11-14 19:01:24 +00:00