Dmitry Lychagin has posted comments on this change.

Change subject: [ASTERIXDB-2459][FUN] Add sttdev_pop() aggregate function
......................................................................


Patch Set 4:

(3 comments)

Also, can we just add stddev_pop tests to stddev tests instead of creating a 
bunch of new testcases? For example stddev_double_null.3.query.sqlpp, let's 
just add stddev_pop there as a new field and so on.

https://asterix-gerrit.ics.uci.edu/#/c/2997/4/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableSingleVariableStatisticsAggregateFunction.java
File 
asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/serializable/std/AbstractSerializableSingleVariableStatisticsAggregateFunction.java:

Line 298:             if (count <= 1 || aggType == ATypeTag.NULL) {
same comment. should be count <= 0, right?


https://asterix-gerrit.ics.uci.edu/#/c/2997/4/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractSingleVarStatisticsAggregateFunction.java
File 
asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/AbstractSingleVarStatisticsAggregateFunction.java:

Line 259:             if (moments.getCount() <= 1 || aggType == ATypeTag.NULL) {
should be <= 0, right? count = 1 is ok for stddev_pop because it's not 
subtracting 1 from it unlike stddev.


https://asterix-gerrit.ics.uci.edu/#/c/2997/4/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/StddevPopAggregateFunction.java
File 
asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/aggregates/std/StddevPopAggregateFunction.java:

Line 32: public class StddevPopAggregateFunction extends 
AbstractSingleVarStatisticsAggregateFunction {
I wonder whether we can reuse all existing stddev evaluators for stddev_pop, 
instead of copying the code? What if we add a constuctor parameter "delta" that 
needs to be subtracted from the count? Then all stddev_pop descriptors will 
pass 1 to function evaluators they instantiate, while stddev descriptors pass 
0. Then we'll only need one function evaluator class for both functions, not 
two. What do you think?


-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2997
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I1732d8d70eba26e12a6e68d0e0c621491ed6b3ae
Gerrit-PatchSet: 4
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: James Fang <jfang...@ucr.edu>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Dmitry Lychagin <dmitry.lycha...@couchbase.com>
Gerrit-Reviewer: Jenkins <jenk...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: Yes

Reply via email to