Hello Anon. E. Moose (1000171), Till Westmann, Jenkins, Dmitry Lychagin,
I'd like you to reexamine a change. Please visit
https://asterix-gerrit.ics.uci.edu/3434
to look at the new patch set (#2).
Change subject: [ASTERIXDB-2458][COMP] Fix min/max functions with group by
......................................................................
[ASTERIXDB-2458][COMP] Fix min/max functions with group by
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
In a sort-group-by operator, an aggregate function has a merging
aggregate function that will be used when merging the run files
if they were generated. The merging aggregate function of the local
min/max aggregate function should be different from the merging
aggregate function of the global min/max. For local min/max, the
merging aggregate function should propagate system_null if the
aggregation is system_null. Also, the global min/max should handle
finishPartial() different from finish(). finishPartial()
should not output NULL if the aggregation is system_null since the
aggregation is still going on.
- added functions to be intermediate steps for local aggregation.
- implemented logic for finishPartial()
- added test cases for strict_min/max with group by
Change-Id: Ie0551b091b9adbbbd51158dbd36124a7184bdce0
---
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/min_max_arrays/min_max_arrays.01.ddl.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/min_max_arrays/min_max_arrays.02.update.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/min_max_arrays/min_max_arrays.31.query.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/min_max_arrays/min_max_arrays.32.query.sqlpp
R
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/min_max_arrays/min_max_arrays.33.ddl.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.01.ddl.sqlpp
M
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.02.update.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.23.query.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.24.query.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.25.query.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.26.query.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.27.query.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.28.query.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.29.query.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.30.query.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.31.query.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.32.query.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.33.query.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.34.query.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.35.query.sqlpp
R
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate/min_max_arrays/min_max_arrays.36.ddl.sqlpp
A
asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/min_max_arrays/min_max_arrays.31.adm
A
asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate-sql/min_max_arrays/min_max_arrays.32.adm
A
asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/min_max_arrays/min_max_arrays.23.adm
A
asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/min_max_arrays/min_max_arrays.24.adm
A
asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/min_max_arrays/min_max_arrays.25.adm
A
asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/min_max_arrays/min_max_arrays.26.adm
A
asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/min_max_arrays/min_max_arrays.27.adm
A
asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/min_max_arrays/min_max_arrays.28.adm
A
asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/min_max_arrays/min_max_arrays.29.adm
A
asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/min_max_arrays/min_max_arrays.30.adm
A
asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/min_max_arrays/min_max_arrays.31.adm
A
asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/min_max_arrays/min_max_arrays.32.adm
A
asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/min_max_arrays/min_max_arrays.33.adm
A
asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/min_max_arrays/min_max_arrays.34.adm
A
asterixdb/asterix-app/src/test/resources/runtimets/results/aggregate/min_max_arrays/min_max_arrays.35.adm
M
asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java
M
asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractMinMaxAggregateFunction.java
A
asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateMaxAggregateDescriptor.java
A
asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateMinAggregateDescriptor.java
A
asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateSqlMaxAggregateDescriptor.java
A
asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/IntermediateSqlMinAggregateDescriptor.java
M
asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/MinMaxAggregateFunction.java
M
asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/SqlMinMaxAggregateFunction.java
M
asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionCollection.java
M
hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/AbstractIntroduceCombinerRule.java
46 files changed, 25,827 insertions(+), 21 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/34/3434/2
--
To view, visit https://asterix-gerrit.ics.uci.edu/3434
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Ie0551b091b9adbbbd51158dbd36124a7184bdce0
Gerrit-Change-Number: 3434
Gerrit-PatchSet: 2
Gerrit-Owner: Ali Alsuliman <[email protected]>
Gerrit-Reviewer: Ali Alsuliman <[email protected]>
Gerrit-Reviewer: Anon. E. Moose (1000171)
Gerrit-Reviewer: Dmitry Lychagin <[email protected]>
Gerrit-Reviewer: Jenkins <[email protected]>
Gerrit-Reviewer: Till Westmann <[email protected]>