Clone
Ali Alsuliman <ali.al.solaiman@gmail.com>
committed
on 10 Jun
[ASTERIXDB-2458][COMP] Fix min/max functions with group by
- user model changes: no
- storage format changes: no
- interface changes: no

De… Show more
[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

Reviewed-on: https://asterix-gerrit.ics.uci.edu/3434

Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>

Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>

Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>

Show less