You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by dl...@apache.org on 2018/10/25 21:32:15 UTC

[11/11] asterixdb git commit: [ASTERIXDB-2459][FUN] Add var() and var_pop() aggregate function

[ASTERIXDB-2459][FUN] Add var() and var_pop() aggregate function

- user model changes: yes
- storage format changes: no
- interface changes: no

Details:
1. Add variance and variance population aggregation function and test cases
2. Add var() and var_pop() distinct functions
3. Add documentation for var() and var_pop()
4. Removed some empty tests cases from parser tests

Change-Id: If736c94146f1d6ee4dfa46a67737b1abd29c8e2d
Reviewed-on: https://asterix-gerrit.ics.uci.edu/3004
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <je...@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Dmitry Lychagin <dm...@couchbase.com>


Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/2a42da45
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/2a42da45
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/2a42da45

Branch: refs/heads/master
Commit: 2a42da456ca8f1da1122f5dc43425e46e993b64d
Parents: 776e1c2
Author: James Fang <jf...@ucr.edu>
Authored: Thu Oct 25 11:43:39 2018 -0700
Committer: Dmitry Lychagin <dm...@couchbase.com>
Committed: Thu Oct 25 14:31:44 2018 -0700

----------------------------------------------------------------------
 .../aggregate-sql/agg_null/agg_null.3.query.aql |   2 +-
 .../agg_null_rec/agg_null_rec.3.query.aql       |   2 +-
 .../agg_null_rec_1/agg_null_rec_1.3.query.aql   |   7 +-
 .../agg_number/agg_number.3.query.aql           |   4 +-
 .../agg_number_rec/agg_number_rec.3.query.aql   |   2 +-
 .../aggregate/agg_null/agg_null.3.query.aql     |   2 +-
 .../agg_null_rec/agg_null_rec.3.query.aql       |   2 +-
 .../agg_null_rec_1/agg_null_rec_1.3.query.aql   |   7 +-
 .../aggregate/agg_number/agg_number.3.query.aql |   4 +-
 .../agg_number_rec/agg_number_rec.3.query.aql   |   2 +-
 .../agg_null/agg_null.3.query.sqlpp             |   2 +-
 .../agg_null_rec/agg_null_rec.3.query.sqlpp     |   6 +
 .../agg_null_rec_1/agg_null_rec_1.3.query.sqlpp |  12 +
 .../agg_number/agg_number.3.query.sqlpp         |   2 +-
 .../agg_number_rec/agg_number_rec.3.query.sqlpp |   6 +
 .../avg_mixed/avg_mixed.3.query.sqlpp           |   2 +-
 .../scalar_var/scalar_var.1.ddl.sqlpp           |  26 ++
 .../scalar_var/scalar_var.3.query.sqlpp         |  42 ++
 .../scalar_var_empty.1.ddl.sqlpp                |  26 ++
 .../scalar_var_empty.3.query.sqlpp              |  25 ++
 .../scalar_var_null/scalar_var_null.1.ddl.sqlpp |  26 ++
 .../scalar_var_null.3.query.sqlpp               |  42 ++
 .../serial_stddev_mixed.3.query.sqlpp           |   2 +-
 .../serial_stddev_pop_mixed.3.query.sqlpp       |   2 +-
 .../serial_var_double.1.ddl.sqlpp               |  33 ++
 .../serial_var_double.2.update.sqlpp            |  31 ++
 .../serial_var_double.3.query.sqlpp             |  25 ++
 .../serial_var_double_null.1.ddl.sqlpp          |  33 ++
 .../serial_var_double_null.2.update.sqlpp       |  31 ++
 .../serial_var_double_null.3.query.sqlpp        |  25 ++
 .../serial_var_empty.1.ddl.sqlpp                |  33 ++
 .../serial_var_empty.3.query.sqlpp              |  25 ++
 .../serial_var_float.1.ddl.sqlpp                |  33 ++
 .../serial_var_float.2.update.sqlpp             |  31 ++
 .../serial_var_float.3.query.sqlpp              |  25 ++
 .../serial_var_float_null.1.ddl.sqlpp           |  33 ++
 .../serial_var_float_null.2.update.sqlpp        |  31 ++
 .../serial_var_float_null.3.query.sqlpp         |  25 ++
 .../serial_var_int16.1.ddl.sqlpp                |  33 ++
 .../serial_var_int16.2.update.sqlpp             |  31 ++
 .../serial_var_int16.3.query.sqlpp              |  25 ++
 .../serial_var_int16_null.1.ddl.sqlpp           |  33 ++
 .../serial_var_int16_null.2.update.sqlpp        |  31 ++
 .../serial_var_int16_null.3.query.sqlpp         |  25 ++
 .../serial_var_int32.1.ddl.sqlpp                |  33 ++
 .../serial_var_int32.2.update.sqlpp             |  31 ++
 .../serial_var_int32.3.query.sqlpp              |  25 ++
 .../serial_var_int32_null.1.ddl.sqlpp           |  33 ++
 .../serial_var_int32_null.2.update.sqlpp        |  31 ++
 .../serial_var_int32_null.3.query.sqlpp         |  25 ++
 .../serial_var_int64.1.ddl.sqlpp                |  33 ++
 .../serial_var_int64.2.update.sqlpp             |  31 ++
 .../serial_var_int64.3.query.sqlpp              |  25 ++
 .../serial_var_int64_null.1.ddl.sqlpp           |  33 ++
 .../serial_var_int64_null.2.update.sqlpp        |  31 ++
 .../serial_var_int64_null.3.query.sqlpp         |  25 ++
 .../serial_var_int8/serial_var_int8.1.ddl.sqlpp |  33 ++
 .../serial_var_int8.2.update.sqlpp              |  31 ++
 .../serial_var_int8.3.query.sqlpp               |  25 ++
 .../serial_var_int8_null.1.ddl.sqlpp            |  33 ++
 .../serial_var_int8_null.2.update.sqlpp         |  31 ++
 .../serial_var_int8_null.3.query.sqlpp          |  25 ++
 .../serial_var_mixed.1.ddl.sqlpp                |  33 ++
 .../serial_var_mixed.2.update.sqlpp             |  29 ++
 .../serial_var_mixed.3.query.sqlpp              |  30 ++
 .../serial_var_pop_mixed.1.ddl.sqlpp            |  33 ++
 .../serial_var_pop_mixed.2.update.sqlpp         |  29 ++
 .../serial_var_pop_mixed.3.query.sqlpp          |  30 ++
 .../stddev_mixed/stddev_mixed.3.query.sqlpp     |   2 +-
 .../stddev_pop_mixed.3.query.sqlpp              |   2 +-
 .../sum_mixed/sum_mixed.3.query.sqlpp           |   2 +-
 .../var_distinct/var_distinct.1.query.sqlpp     |  28 ++
 .../var_double/var_double.1.ddl.sqlpp           |  25 ++
 .../var_double/var_double.3.query.sqlpp         |  26 ++
 .../var_double_null/var_double_null.1.ddl.sqlpp |  38 ++
 .../var_double_null.3.query.sqlpp               |  29 ++
 .../var_empty_01/var_empty_01.1.ddl.sqlpp       |  27 ++
 .../var_empty_01/var_empty_01.3.query.sqlpp     |  36 ++
 .../var_empty_02/var_empty_02.1.ddl.sqlpp       |  38 ++
 .../var_empty_02/var_empty_02.3.query.sqlpp     |  34 ++
 .../var_float/var_float.1.ddl.sqlpp             |  22 +
 .../var_float/var_float.3.query.sqlpp           |  29 ++
 .../var_float_null/var_float_nu.1.ddl.sqlpp     |  38 ++
 .../var_float_null/var_float_nu.3.query.sqlpp   |  29 ++
 .../var_int16/var_int16.1.ddl.sqlpp             |  22 +
 .../var_int16/var_int16.3.query.sqlpp           |  29 ++
 .../var_int16_null/var_int16_null.1.ddl.sqlpp   |  38 ++
 .../var_int16_null/var_int16_null.3.query.sqlpp |  29 ++
 .../var_int32/var_int32.1.ddl.sqlpp             |  22 +
 .../var_int32/var_int32.3.query.sqlpp           |  29 ++
 .../var_int32_null/var_int32_null.1.ddl.sqlpp   |  38 ++
 .../var_int32_null/var_int32_null.3.query.sqlpp |  29 ++
 .../var_int64/var_int64.1.ddl.sqlpp             |  22 +
 .../var_int64/var_int64.3.query.sqlpp           |  29 ++
 .../var_int64_null/var_int64_null.1.ddl.sqlpp   |  38 ++
 .../var_int64_null/var_int64_null.3.query.sqlpp |  29 ++
 .../aggregate-sql/var_int8/var_int8.1.ddl.sqlpp |  22 +
 .../var_int8/var_int8.3.query.sqlpp             |  29 ++
 .../var_int8_null/var_int8_null.1.ddl.sqlpp     |  38 ++
 .../var_int8_null/var_int8_null.3.query.sqlpp   |  29 ++
 .../var_mixed/var_mixed.3.query.sqlpp           |  28 ++
 .../var_pop_mixed/var_pop_mixed.3.query.sqlpp   |  28 ++
 .../aggregate/agg_null/agg_null.3.query.sqlpp   |   2 +-
 .../agg_null_rec/agg_null_rec.3.query.sqlpp     |   6 +
 .../agg_null_rec_1/agg_null_rec_1.3.query.sqlpp |  12 +
 .../agg_number/agg_number.3.query.sqlpp         |   2 +-
 .../agg_number_rec/agg_number_rec.3.query.sqlpp |   6 +
 .../aggregate/avg_mixed/avg_mixed.3.query.sqlpp |   2 +-
 .../aggregate/scalar_var/scalar_var.1.ddl.sqlpp |  26 ++
 .../scalar_var/scalar_var.3.query.sqlpp         |  42 ++
 .../scalar_var_empty.1.ddl.sqlpp                |  26 ++
 .../scalar_var_empty.3.query.sqlpp              |  25 ++
 .../scalar_var_null/scalar_var_null.1.ddl.sqlpp |  26 ++
 .../scalar_var_null.3.query.sqlpp               |  42 ++
 .../serial_stddev_mixed.3.query.sqlpp           |   2 +-
 .../serial_stddev_pop_mixed.3.query.sqlpp       |   2 +-
 .../serial_var_double.1.ddl.sqlpp               |  33 ++
 .../serial_var_double.2.update.sqlpp            |  31 ++
 .../serial_var_double.3.query.sqlpp             |  26 ++
 .../serial_var_double_null.1.ddl.sqlpp          |  33 ++
 .../serial_var_double_null.2.update.sqlpp       |  31 ++
 .../serial_var_double_null.3.query.sqlpp        |  26 ++
 .../serial_var_empty.1.ddl.sqlpp                |  33 ++
 .../serial_var_empty.3.query.sqlpp              |  26 ++
 .../serial_var_float.1.ddl.sqlpp                |  33 ++
 .../serial_var_float.2.update.sqlpp             |  31 ++
 .../serial_var_float.3.query.sqlpp              |  26 ++
 .../serial_var_float_null.1.ddl.sqlpp           |  33 ++
 .../serial_var_float_null.2.update.sqlpp        |  31 ++
 .../serial_var_float_null.3.query.sqlpp         |  26 ++
 .../serial_var_int16.1.ddl.sqlpp                |  33 ++
 .../serial_var_int16.2.update.sqlpp             |  31 ++
 .../serial_var_int16.3.query.sqlpp              |  26 ++
 .../serial_var_int16_null.1.ddl.sqlpp           |  33 ++
 .../serial_var_int16_null.2.update.sqlpp        |  31 ++
 .../serial_var_int16_null.3.query.sqlpp         |  26 ++
 .../serial_var_int32.1.ddl.sqlpp                |  33 ++
 .../serial_var_int32.2.update.sqlpp             |  31 ++
 .../serial_var_int32.3.query.sqlpp              |  26 ++
 .../serial_var_int32_null.1.ddl.sqlpp           |  33 ++
 .../serial_var_int32_null.2.update.sqlpp        |  31 ++
 .../serial_var_int32_null.3.query.sqlpp         |  26 ++
 .../serial_var_int64.1.ddl.sqlpp                |  33 ++
 .../serial_var_int64.2.update.sqlpp             |  31 ++
 .../serial_var_int64.3.query.sqlpp              |  26 ++
 .../serial_var_int64_null.1.ddl.sqlpp           |  33 ++
 .../serial_var_int64_null.2.update.sqlpp        |  31 ++
 .../serial_var_int64_null.3.query.sqlpp         |  26 ++
 .../serial_var_int8/serial_var_int8.1.ddl.sqlpp |  33 ++
 .../serial_var_int8.2.update.sqlpp              |  31 ++
 .../serial_var_int8.3.query.sqlpp               |  26 ++
 .../serial_var_int8_null.1.ddl.sqlpp            |  33 ++
 .../serial_var_int8_null.2.update.sqlpp         |  31 ++
 .../serial_var_int8_null.3.query.sqlpp          |  26 ++
 .../serial_var_mixed.1.ddl.sqlpp                |  33 ++
 .../serial_var_mixed.2.update.sqlpp             |  29 ++
 .../serial_var_mixed.3.query.sqlpp              |  30 ++
 .../serial_var_pop_mixed.1.ddl.sqlpp            |  33 ++
 .../serial_var_pop_mixed.2.update.sqlpp         |  29 ++
 .../serial_var_pop_mixed.3.query.sqlpp          |  30 ++
 .../stddev_mixed/stddev_mixed.3.query.sqlpp     |   2 +-
 .../stddev_pop_mixed.3.query.sqlpp              |   2 +-
 .../aggregate/sum_mixed/sum_mixed.3.query.sqlpp |   2 +-
 .../var_distinct/var_distinct.1.query.sqlpp     |  28 ++
 .../aggregate/var_double/var_double.1.ddl.sqlpp |  25 ++
 .../var_double/var_double.3.query.sqlpp         |  26 ++
 .../var_double_null/var_double_null.1.ddl.sqlpp |  38 ++
 .../var_double_null.3.query.sqlpp               |  28 ++
 .../var_empty_01/var_empty_01.1.ddl.sqlpp       |  27 ++
 .../var_empty_01/var_empty_01.3.query.sqlpp     |  35 ++
 .../var_empty_02/var_empty_02.1.ddl.sqlpp       |  38 ++
 .../var_empty_02/var_empty_02.3.query.sqlpp     |  33 ++
 .../aggregate/var_float/var_float.1.ddl.sqlpp   |  22 +
 .../aggregate/var_float/var_float.3.query.sqlpp |  29 ++
 .../var_float_null/var_float_null.1.ddl.sqlpp   |  38 ++
 .../var_float_null/var_float_null.3.query.sqlpp |  29 ++
 .../aggregate/var_int16/var_int16.1.ddl.sqlpp   |  22 +
 .../aggregate/var_int16/var_int16.3.query.sqlpp |  29 ++
 .../var_int16_null/var_int16_null.1.ddl.sqlpp   |  38 ++
 .../var_int16_null/var_int16_null.3.query.sqlpp |  29 ++
 .../aggregate/var_int32/var_int32.1.ddl.sqlpp   |  22 +
 .../aggregate/var_int32/var_int32.3.query.sqlpp |  29 ++
 .../var_int32_null/var_int32_null.1.ddl.sqlpp   |  38 ++
 .../var_int32_null/var_int32_null.3.query.sqlpp |  29 ++
 .../aggregate/var_int64/var_int64.1.ddl.sqlpp   |  22 +
 .../aggregate/var_int64/var_int64.3.query.sqlpp |  29 ++
 .../var_int64_null/var_int64_null.1.ddl.sqlpp   |  38 ++
 .../var_int64_null/var_int64_null.3.query.sqlpp |  29 ++
 .../aggregate/var_int8/var_int8.1.ddl.sqlpp     |  22 +
 .../aggregate/var_int8/var_int8.3.query.sqlpp   |  29 ++
 .../var_int8_null/var_int8_null.1.ddl.sqlpp     |  38 ++
 .../var_int8_null/var_int8_null.3.query.sqlpp   |  29 ++
 .../aggregate/var_mixed/var_mixed.3.query.sqlpp |  28 ++
 .../var_pop_mixed/var_pop_mixed.3.query.sqlpp   |  28 ++
 .../aggregate-sql/agg_null/agg_null.1.adm       |   2 +-
 .../agg_null_rec/agg_null_rec.1.adm             |   2 +-
 .../agg_null_rec_1/agg_null_rec.1.adm           |   2 +-
 .../aggregate-sql/agg_number/agg_number.1.adm   |   2 +-
 .../agg_number_rec/agg_number_rec.1.adm         |   2 +-
 .../aggregate-sql/scalar_var/scalar_var.1.adm   |   1 +
 .../scalar_var_empty/scalar_var_empty.1.adm     |   1 +
 .../scalar_var_null/scalar_var_null.1.adm       |   1 +
 .../serial_var_double/serial_var_double.1.adm   |   1 +
 .../serial_var_double_null.1.adm                |   1 +
 .../serial_var_empty/serial_var_empty.1.adm     |   0
 .../serial_var_float/serial_var_float.1.adm     |   1 +
 .../serial_var_float_null.1.adm                 |   1 +
 .../serial_var_int16/serial_var_int16.1.adm     |   1 +
 .../serial_var_int16_null.1.adm                 |   1 +
 .../serial_var_int32/serial_var_int32.1.adm     |   1 +
 .../serial_var_int32_null.1.adm                 |   1 +
 .../serial_var_int64/serial_var_int64.1.adm     |   1 +
 .../serial_var_int64_null.1.adm                 |   1 +
 .../serial_var_int8/serial_var_int8.1.adm       |   1 +
 .../serial_var_int8_null.1.adm                  |   1 +
 .../serial_var_mixed/serial_var_mixed.1.adm     |   1 +
 .../serial_var_pop_mixed.1.adm                  |   1 +
 .../var_distinct/var_distinct.1.adm             |   1 +
 .../aggregate-sql/var_double/var_double.1.adm   |   1 +
 .../var_double_null/var_double_null.1.adm       |   1 +
 .../var_empty_01/var_empty_01.1.adm             |   1 +
 .../var_empty_02/var_empty_02.1.adm             |   1 +
 .../aggregate-sql/var_float/var_float.1.adm     |   1 +
 .../var_float_null/var_float_null.1.adm         |   1 +
 .../aggregate-sql/var_int16/var_int16.1.adm     |   1 +
 .../var_int16_null/var_int16_null.1.adm         |   1 +
 .../aggregate-sql/var_int32/var_int32.1.adm     |   1 +
 .../var_int32_null/var_int32_null.1.adm         |   1 +
 .../aggregate-sql/var_int64/var_int64.1.adm     |   1 +
 .../var_int64_null/var_int64_null.1.adm         |   1 +
 .../aggregate-sql/var_int8/var_int8.1.adm       |   1 +
 .../var_int8_null/var_int8_null.1.adm           |   1 +
 .../aggregate-sql/var_mixed/var_mixed.1.adm     |   1 +
 .../var_pop_mixed/var_pop_mixed.1.adm           |   1 +
 .../results/aggregate/agg_null/agg_null.1.adm   |   2 +-
 .../aggregate/agg_null_rec/agg_null_rec.1.adm   |   2 +-
 .../aggregate/agg_null_rec_1/agg_null_rec.1.adm |   2 +-
 .../aggregate/agg_number/agg_number.1.adm       |   2 +-
 .../agg_number_rec/agg_number_rec.1.adm         |   2 +-
 .../aggregate/scalar_var/scalar_var.1.adm       |   1 +
 .../scalar_var_empty/scalar_var_empty.1.adm     |   1 +
 .../scalar_var_null/scalar_var_null.1.adm       |   1 +
 .../serial_var_double/serial_var_double.1.adm   |   1 +
 .../serial_var_double_null.1.adm                |   1 +
 .../serial_var_empty/serial_var_empty.1.adm     |   0
 .../serial_var_float/serial_var_float.1.adm     |   1 +
 .../serial_var_float_null.1.adm                 |   1 +
 .../serial_var_int16/serial_var_int16.1.adm     |   1 +
 .../serial_var_int16_null.1.adm                 |   1 +
 .../serial_var_int32/serial_var_int32.1.adm     |   1 +
 .../serial_var_int32_null.1.adm                 |   1 +
 .../serial_var_int64/serial_var_int64.1.adm     |   1 +
 .../serial_var_int64_null.1.adm                 |   1 +
 .../serial_var_int8/serial_var_int8.1.adm       |   1 +
 .../serial_var_int8_null.1.adm                  |   1 +
 .../serial_var_mixed/serial_var_mixed.1.adm     |   1 +
 .../serial_var_pop_mixed.1.adm                  |   1 +
 .../aggregate/var_distinct/var_distinct.1.adm   |   1 +
 .../aggregate/var_double/var_double.1.adm       |   1 +
 .../var_double_null/var_double_null.1.adm       |   1 +
 .../aggregate/var_empty_01/var_empty_01.1.adm   |   1 +
 .../aggregate/var_empty_02/var_empty_02.1.adm   |   1 +
 .../results/aggregate/var_float/var_float.1.adm |   1 +
 .../var_float_null/var_float_null.1.adm         |   1 +
 .../results/aggregate/var_int16/var_int16.1.adm |   1 +
 .../var_int16_null/var_int16_null.1.adm         |   1 +
 .../results/aggregate/var_int32/var_int32.1.adm |   1 +
 .../var_int32_null/var_int32_null.1.adm         |   1 +
 .../results/aggregate/var_int64/var_int64.1.adm |   1 +
 .../var_int64_null/var_int64_null.1.adm         |   1 +
 .../results/aggregate/var_int8/var_int8.1.adm   |   1 +
 .../aggregate/var_int8_null/var_int8_null.1.adm |   1 +
 .../results/aggregate/var_mixed/var_mixed.1.adm |   1 +
 .../aggregate/var_pop_mixed/var_pop_mixed.1.adm |   1 +
 .../aggregate-sql/agg_null/agg_null.3.ast       |  38 ++
 .../agg_null_rec/agg_null_rec.3.ast             |  38 ++
 .../agg_null_rec_1/agg_null_rec_1.3.ast         |  52 +++
 .../aggregate-sql/agg_number/agg_number.3.ast   |  64 +++
 .../agg_number_rec/agg_number_rec.3.ast         |  38 ++
 .../aggregate-sql/scalar_var/scalar_var.1.ast   |   0
 .../aggregate-sql/scalar_var/scalar_var.3.ast   | 222 ++++++++++
 .../scalar_var_empty/scalar_var_empty.1.ast     |   0
 .../scalar_var_empty/scalar_var_empty.3.ast     |  27 ++
 .../scalar_var_null/scalar_var_null.1.ast       |   0
 .../scalar_var_null/scalar_var_null.3.ast       | 234 +++++++++++
 .../serial_var_double/serial_var_double.1.ast   |   9 +
 .../serial_var_double/serial_var_double.2.ast   |   1 +
 .../serial_var_double/serial_var_double.3.ast   |  57 +++
 .../serial_var_double_null.1.ast                |   9 +
 .../serial_var_double_null.2.ast                |   1 +
 .../serial_var_double_null.3.ast                |  57 +++
 .../serial_var_empty/serial_var_empty.1.ast     |   9 +
 .../serial_var_empty/serial_var_empty.3.ast     |  57 +++
 .../serial_var_float/serial_var_float.1.ast     |   9 +
 .../serial_var_float/serial_var_float.2.ast     |   1 +
 .../serial_var_float/serial_var_float.3.ast     |  57 +++
 .../serial_var_float_null.1.ast                 |   9 +
 .../serial_var_float_null.2.ast                 |   1 +
 .../serial_var_float_null.3.ast                 |  57 +++
 .../serial_var_int16/serial_var_int16.1.ast     |   9 +
 .../serial_var_int16/serial_var_int16.2.ast     |   1 +
 .../serial_var_int16/serial_var_int16.3.ast     |  57 +++
 .../serial_var_int16_null.1.ast                 |   9 +
 .../serial_var_int16_null.2.ast                 |   1 +
 .../serial_var_int16_null.3.ast                 |  57 +++
 .../serial_var_int32/serial_var_int32.1.ast     |   9 +
 .../serial_var_int32/serial_var_int32.2.ast     |   1 +
 .../serial_var_int32/serial_var_int32.3.ast     |  57 +++
 .../serial_var_int32_null.1.ast                 |   9 +
 .../serial_var_int32_null.2.ast                 |   1 +
 .../serial_var_int32_null.3.ast                 |  57 +++
 .../serial_var_int64/serial_var_int64.1.ast     |   9 +
 .../serial_var_int64/serial_var_int64.2.ast     |   1 +
 .../serial_var_int64/serial_var_int64.3.ast     |  57 +++
 .../serial_var_int64_null.1.ast                 |   9 +
 .../serial_var_int64_null.2.ast                 |   1 +
 .../serial_var_int64_null.3.ast                 |  57 +++
 .../serial_var_int8/serial_var_int8.1.ast       |   9 +
 .../serial_var_int8/serial_var_int8.2.ast       |   1 +
 .../serial_var_int8/serial_var_int8.3.ast       |  57 +++
 .../serial_var_int8_null.1.ast                  |   9 +
 .../serial_var_int8_null.2.ast                  |   1 +
 .../serial_var_int8_null.3.ast                  |  57 +++
 .../serial_var_int64_null.1.ast                 |   9 +
 .../serial_var_int64_null.2.ast                 |   1 +
 .../serial_var_int64_null.3.ast                 |  40 ++
 .../serial_var_pop_int64_null.1.ast             |   9 +
 .../serial_var_pop_int64_null.2.ast             |   1 +
 .../serial_var_pop_int64_null.3.ast             |  40 ++
 .../aggregate-sql/var_double/var_double.1.ast   |   1 +
 .../aggregate-sql/var_double/var_double.3.ast   |  51 +++
 .../var_double_null/var_double_null.1.ast       |  13 +
 .../var_double_null/var_double_null.3.ast       |  42 ++
 .../var_empty_01/var_empty_01.1.ast             |   0
 .../var_empty_01/var_empty_01.3.ast             |  60 +++
 .../var_empty_02/var_empty_02.1.ast             |   8 +
 .../var_empty_02/var_empty_02.3.ast             |  50 +++
 .../aggregate-sql/var_float/var_float.1.ast     |   0
 .../aggregate-sql/var_float/var_float.3.ast     |  60 +++
 .../var_float_null/var_float_nu.1.ast           |  13 +
 .../var_float_null/var_float_nu.3.ast           |  42 ++
 .../aggregate-sql/var_int16/var_int16.1.ast     |   0
 .../aggregate-sql/var_int16/var_int16.3.ast     |  60 +++
 .../var_int16_null/var_int16_null.1.ast         |  13 +
 .../var_int16_null/var_int16_null.3.ast         |  42 ++
 .../aggregate-sql/var_int32/var_int32.1.ast     |   0
 .../aggregate-sql/var_int32/var_int32.3.ast     |  60 +++
 .../var_int32_null/var_int32_null.1.ast         |  13 +
 .../var_int32_null/var_int32_null.3.ast         |  42 ++
 .../aggregate-sql/var_int64/var_int64.1.ast     |   0
 .../aggregate-sql/var_int64/var_int64.3.ast     |  60 +++
 .../var_int64_null/var_int64_null.1.ast         |  13 +
 .../var_int64_null/var_int64_null.3.ast         |  42 ++
 .../aggregate-sql/var_int8/var_int8.1.ast       |   0
 .../aggregate-sql/var_int8/var_int8.3.ast       |  60 +++
 .../var_int8_null/var_int8_null.1.ast           |  13 +
 .../var_int8_null/var_int8_null.3.ast           |  42 ++
 .../aggregate-sql/var_mixed/var_mixed.3.ast     |  22 +
 .../var_pop_mixed/var_pop_mixed.3.ast           |  22 +
 .../aggregate/agg_null/agg_null.3.ast           |  38 ++
 .../aggregate/agg_null_rec/agg_null_rec.3.ast   |  38 ++
 .../agg_null_rec_1/agg_null_rec_1.3.ast         |  53 ++-
 .../aggregate/agg_number/agg_number.3.ast       |  64 +++
 .../agg_number_rec/agg_number_rec.3.ast         |  38 ++
 .../aggregate/scalar_var/scalar_var.1.ast       |   0
 .../aggregate/scalar_var/scalar_var.3.ast       | 222 ++++++++++
 .../scalar_var_empty/scalar_var_empty.1.ast     |   0
 .../scalar_var_empty/scalar_var_empty.3.ast     |  27 ++
 .../scalar_var_null/scalar_var_null.1.ast       |   0
 .../scalar_var_null/scalar_var_null.3.ast       | 234 +++++++++++
 .../serial_var_double/serial_var_double.1.ast   |   9 +
 .../serial_var_double/serial_var_double.2.ast   |   1 +
 .../serial_var_double/serial_var_double.3.ast   |  54 +++
 .../serial_var_double_null.1.ast                |   9 +
 .../serial_var_double_null.2.ast                |   1 +
 .../serial_var_double_null.3.ast                |  54 +++
 .../serial_var_empty/serial_var_empty.1.ast     |   9 +
 .../serial_var_empty/serial_var_empty.3.ast     |  54 +++
 .../serial_var_float/serial_var_float.1.ast     |   9 +
 .../serial_var_float/serial_var_float.2.ast     |   1 +
 .../serial_var_float/serial_var_float.3.ast     |  54 +++
 .../serial_var_float_null.1.ast                 |   9 +
 .../serial_var_float_null.2.ast                 |   1 +
 .../serial_var_float_null.3.ast                 |  54 +++
 .../serial_var_int16/serial_var_int16.1.ast     |   9 +
 .../serial_var_int16/serial_var_int16.2.ast     |   1 +
 .../serial_var_int16/serial_var_int16.3.ast     |  54 +++
 .../serial_var_int16_null.1.ast                 |   9 +
 .../serial_var_int16_null.2.ast                 |   1 +
 .../serial_var_int16_null.3.ast                 |  54 +++
 .../serial_var_int32/serial_var_int32.1.ast     |   9 +
 .../serial_var_int32/serial_var_int32.2.ast     |   1 +
 .../serial_var_int32/serial_var_int32.3.ast     |  54 +++
 .../serial_var_int32_null.1.ast                 |   9 +
 .../serial_var_int32_null.2.ast                 |   1 +
 .../serial_var_int32_null.3.ast                 |  54 +++
 .../serial_var_int64/serial_var_int64.1.ast     |   9 +
 .../serial_var_int64/serial_var_int64.2.ast     |   1 +
 .../serial_var_int64/serial_var_int64.3.ast     |  54 +++
 .../serial_var_int64_null.1.ast                 |   9 +
 .../serial_var_int64_null.2.ast                 |   1 +
 .../serial_var_int64_null.3.ast                 |  54 +++
 .../serial_var_int8/serial_var_int8.1.ast       |   9 +
 .../serial_var_int8/serial_var_int8.2.ast       |   1 +
 .../serial_var_int8/serial_var_int8.3.ast       |  54 +++
 .../serial_var_int8_null.1.ast                  |   9 +
 .../serial_var_int8_null.2.ast                  |   1 +
 .../serial_var_int8_null.3.ast                  |  54 +++
 .../serial_var_mixed/serial_var_mixed.1.ast     |   9 +
 .../serial_var_mixed/serial_var_mixed.2.ast     |   1 +
 .../serial_var_mixed/serial_var_mixed.3.ast     |  40 ++
 .../serial_var_pop_mixed.1.ast                  |   9 +
 .../serial_var_pop_mixed.2.ast                  |   1 +
 .../serial_var_pop_mixed.3.ast                  |  40 ++
 .../aggregate/var_double/var_double.1.ast       |   2 +
 .../aggregate/var_double/var_double.3.ast       |  51 +++
 .../var_double_null/var_double_null.1.ast       |  13 +
 .../var_double_null/var_double_null.3.ast       |  42 ++
 .../aggregate/var_empty_01/var_empty_01.1.ast   |   0
 .../aggregate/var_empty_01/var_empty_01.3.ast   |  60 +++
 .../aggregate/var_empty_02/var_empty_02.1.ast   |   8 +
 .../aggregate/var_empty_02/var_empty_02.3.ast   |  50 +++
 .../aggregate/var_float/var_float.1.ast         |   0
 .../aggregate/var_float/var_float.3.ast         |  60 +++
 .../aggregate/var_float_null/var_float_nu.1.ast |  13 +
 .../aggregate/var_float_null/var_float_nu.3.ast |  42 ++
 .../aggregate/var_int16/var_int16.1.ast         |   0
 .../aggregate/var_int16/var_int16.3.ast         |  60 +++
 .../var_int16_null/var_int16_null.1.ast         |  13 +
 .../var_int16_null/var_int16_null.3.ast         |  42 ++
 .../aggregate/var_int32/var_int32.1.ast         |   0
 .../aggregate/var_int32/var_int32.3.ast         |  48 +++
 .../var_int32_null/var_int32_null.1.ast         |  13 +
 .../var_int32_null/var_int32_null.3.ast         |  42 ++
 .../aggregate/var_int64/var_int64.1.ast         |   0
 .../aggregate/var_int64/var_int64.3.ast         |  60 +++
 .../var_int64_null/var_int64_null.1.ast         |  13 +
 .../var_int64_null/var_int64_null.3.ast         |  42 ++
 .../aggregate/var_int8/var_int8.1.ast           |   0
 .../aggregate/var_int8/var_int8.3.ast           |  60 +++
 .../aggregate/var_int8_null/var_int8_null.1.ast |  13 +
 .../aggregate/var_int8_null/var_int8_null.3.ast |  42 ++
 .../aggregate/var_mixed/var_mixed.3.ast         |  22 +
 .../aggregate/var_pop_mixed/var_pop_mixed.3.ast |  22 +
 .../resources/runtimets/testsuite_sqlpp.xml     | 358 ++++++++++++++++
 .../runtimets/testsuite_sqlpp_parser.xml        | 412 +++++++++++++------
 .../main/markdown/builtins/9_aggregate_sql.md   | 121 +++++-
 .../asterix/om/functions/BuiltinFunctions.java  | 284 +++++++++++++
 .../scalar/ScalarSqlVarAggregateDescriptor.java |  48 +++
 .../ScalarSqlVarPopAggregateDescriptor.java     |  49 +++
 .../scalar/ScalarVarAggregateDescriptor.java    |  48 +++
 .../scalar/ScalarVarPopAggregateDescriptor.java |  48 +++
 ...ngleVariableStatisticsAggregateFunction.java |  17 +
 ...alizableGlobalSqlVarAggregateDescriptor.java |  63 +++
 ...rializableGlobalSqlVarAggregateFunction.java |  77 ++++
 ...zableGlobalSqlVarPopAggregateDescriptor.java |  63 +++
 ...erializableGlobalVarAggregateDescriptor.java |  62 +++
 .../SerializableGlobalVarAggregateFunction.java |  86 ++++
 ...alizableGlobalVarPopAggregateDescriptor.java |  63 +++
 ...leIntermediateSqlVarAggregateDescriptor.java |  63 +++
 ...ableIntermediateSqlVarAggregateFunction.java |  70 ++++
 ...ntermediateSqlVarPopAggregateDescriptor.java |  63 +++
 ...zableIntermediateVarAggregateDescriptor.java |  63 +++
 ...lizableIntermediateVarAggregateFunction.java |  80 ++++
 ...leIntermediateVarPopAggregateDescriptor.java |  63 +++
 ...ializableLocalSqlVarAggregateDescriptor.java |  62 +++
 ...erializableLocalSqlVarAggregateFunction.java |  70 ++++
 ...izableLocalSqlVarPopAggregateDescriptor.java |  63 +++
 ...SerializableLocalVarAggregateDescriptor.java |  62 +++
 .../SerializableLocalVarAggregateFunction.java  |  79 ++++
 ...ializableLocalVarPopAggregateDescriptor.java |  62 +++
 .../SerializableSqlVarAggregateDescriptor.java  |  60 +++
 .../SerializableSqlVarAggregateFunction.java    |  75 ++++
 ...erializableSqlVarPopAggregateDescriptor.java |  60 +++
 .../std/SerializableVarAggregateDescriptor.java |  62 +++
 .../std/SerializableVarAggregateFunction.java   |  84 ++++
 .../SerializableVarPopAggregateDescriptor.java  |  62 +++
 ...actSingleVarStatisticsAggregateFunction.java |  15 +
 .../std/GlobalSqlVarAggregateDescriptor.java    |  62 +++
 .../std/GlobalSqlVarAggregateFunction.java      |  75 ++++
 .../std/GlobalSqlVarPopAggregateDescriptor.java |  62 +++
 .../std/GlobalVarAggregateDescriptor.java       |  62 +++
 .../std/GlobalVarAggregateFunction.java         |  82 ++++
 .../std/GlobalVarPopAggregateDescriptor.java    |  62 +++
 .../IntermediateSqlVarAggregateDescriptor.java  |  61 +++
 .../IntermediateSqlVarAggregateFunction.java    |  68 +++
 ...ntermediateSqlVarPopAggregateDescriptor.java |  61 +++
 .../std/IntermediateVarAggregateDescriptor.java |  62 +++
 .../std/IntermediateVarAggregateFunction.java   |  76 ++++
 .../IntermediateVarPopAggregateDescriptor.java  |  62 +++
 .../std/LocalSqlVarAggregateDescriptor.java     |  60 +++
 .../std/LocalSqlVarAggregateFunction.java       |  68 +++
 .../std/LocalSqlVarPopAggregateDescriptor.java  |  60 +++
 .../std/LocalVarAggregateDescriptor.java        |  60 +++
 .../std/LocalVarAggregateFunction.java          |  76 ++++
 .../std/LocalVarPopAggregateDescriptor.java     |  60 +++
 .../std/SqlVarAggregateDescriptor.java          |  61 +++
 .../aggregates/std/SqlVarAggregateFunction.java |  74 ++++
 .../std/SqlVarPopAggregateDescriptor.java       |  61 +++
 .../aggregates/std/VarAggregateDescriptor.java  |  61 +++
 .../aggregates/std/VarAggregateFunction.java    |  82 ++++
 .../std/VarPopAggregateDescriptor.java          |  61 +++
 .../runtime/functions/FunctionCollection.java   |  72 ++++
 503 files changed, 14547 insertions(+), 186 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null/agg_null.3.query.aql
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null/agg_null.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null/agg_null.3.query.aql
index 51d6069..d48b222 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null/agg_null.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null/agg_null.3.query.aql
@@ -24,4 +24,4 @@
 
 let $l1 := [null]
 let $l2 := {{null, null}}
-return { "sql-count1": sql-count($l1), "average1": sql-avg($l1), "sql-sum1": sql-sum($l1), "sql-min1": sql-min($l1), "sql-max1": sql-max($l1), "sql-stddev1": sql-stddev($l1), "sql-stddev_pop1": sql-stddev_pop($l1), "sql-count2": sql-count($l2), "average2": sql-avg($l2), "sql-sum2": sql-sum($l2), "sql-min2": sql-min($l2), "sql-max2": sql-max($l2),  "sql-stddev2": sql-stddev($l2), "sql-stddev_pop2": sql-stddev_pop($l2) }
+return { "sql-count1": sql-count($l1), "average1": sql-avg($l1), "sql-sum1": sql-sum($l1), "sql-min1": sql-min($l1), "sql-max1": sql-max($l1), "sql-stddev1": sql-stddev($l1), "sql-stddev_pop1": sql-stddev_pop($l1), "sql-var1": sql-var($l1), "sql-var_pop1": sql-var_pop($l1), "sql-count2": sql-count($l2), "average2": sql-avg($l2), "sql-sum2": sql-sum($l2), "sql-min2": sql-min($l2), "sql-max2": sql-max($l2),  "sql-stddev2": sql-stddev($l2), "sql-stddev_pop2": sql-stddev_pop($l2), "sql-var2": sql-var($l2), "sql-var_pop2": sql-var_pop($l2) }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null_rec/agg_null_rec.3.query.aql
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null_rec/agg_null_rec.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null_rec/agg_null_rec.3.query.aql
index 6fcde5c..e3f9193 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null_rec/agg_null_rec.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null_rec/agg_null_rec.3.query.aql
@@ -25,4 +25,4 @@
 use dataverse test;
 
 let $l := for $t in dataset Test return $t.valplus
-return { "sql-count": sql-count($l), "average": sql-avg($l), "sql-stddev": sql-stddev($l), "sql-stddev_pop": sql-stddev_pop($l), "sql-sum": sql-sum($l), "sql-min": sql-min($l), "sql-max": sql-max($l) }
+return { "sql-count": sql-count($l), "average": sql-avg($l), "sql-sum": sql-sum($l), "sql-min": sql-min($l), "sql-max": sql-max($l), "sql-stddev": sql-stddev($l), "sql-stddev_pop": sql-stddev_pop($l), "sql-var": sql-var($l), "sql-var_pop": sql-var_pop($l) }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.query.aql
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.query.aql
index fbdaa58..844edd2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.query.aql
@@ -26,6 +26,7 @@ use dataverse test;
 
 let $l := for $t in dataset Test return $t
 return { "sql-count": sql-count($l), "average": sql-avg(for $i in $l return $i.val), "sql-sum":
-sql-sum(for $i in $l return $i.val), "sql-stddev": sql-stddev(for $i in $l return $i.valplus),
-"sql-stddev_pop": sql-stddev_pop(for $i in $l return $i.valplus), "sql-min": sql-min(for $i in $l return $i.valplus),
-"sql-max": sql-max(for $i in $l return $i.valplus) }
+sql-sum(for $i in $l return $i.val),  "sql-min": sql-min(for $i in $l return $i.valplus),
+"sql-max": sql-max(for $i in $l return $i.valplus), "sql-stddev": sql-stddev(for $i in $l return $i.valplus),
+"sql-stddev_pop": sql-stddev_pop(for $i in $l return $i.valplus), "sql-var": sql-var(for $i in $l return $i.valplus),
+"sql-var_pop": sql-var_pop(for $i in $l return $i.valplus) }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_number/agg_number.3.query.aql
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_number/agg_number.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_number/agg_number.3.query.aql
index eeab6ad..4ebb67f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_number/agg_number.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_number/agg_number.3.query.aql
@@ -31,5 +31,7 @@ let $a4 := sql-min($l2)
 let $a5 := sql-max($l2)
 let $a6 := sql-stddev($l2)
 let $a7 := sql-stddev_pop($l2)
-return { "sql-count1": sql-count($l1), "average1": sql-avg($l1), "sql-stddev1": sql-stddev($l1), "sql-stddev_pop1": sql-stddev_pop($l1), "sql-sum1": sql-sum($l1), "sql-min1": sql-min($l1), "sql-max1": sql-max($l1), "sql-count2": $a1, "average2": $a2, "sql-stddev2": $a6, "sql-stddev_pop2": $a7, "sql-sum2": $a3, "sql-min2": $a4, "sql-max2": $a5 }
+let $a8 := sql-var($l2)
+let $a9 := sql-var_pop($l2)
+return { "sql-count1": sql-count($l1), "average1": sql-avg($l1), "sql-sum1": sql-sum($l1), "sql-min1": sql-min($l1), "sql-max1": sql-max($l1), "sql-stddev1": sql-stddev($l1), "sql-stddev_pop1": sql-stddev_pop($l1), "sql-var1": sql-var($l1), "sql-var_pop1": sql-var_pop($l1), "sql-count2": $a1, "average2": $a2, "sql-sum2": $a3, "sql-min2": $a4, "sql-max2": $a5, "sql-stddev2": $a6, "sql-stddev_pop2": $a7, "sql-var2": $a8, "sql-var_pop2": $a9 }
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_number_rec/agg_number_rec.3.query.aql
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_number_rec/agg_number_rec.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_number_rec/agg_number_rec.3.query.aql
index cd93b51..e5700d5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_number_rec/agg_number_rec.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate-sql/agg_number_rec/agg_number_rec.3.query.aql
@@ -25,4 +25,4 @@
 use dataverse test;
 
 let $l := for $t in dataset Test return $t.valplus
-return { "sql-count": sql-count($l), "average": sql-avg($l), "sql-stddev": sql-stddev($l), "sql-stddev_pop": sql-stddev_pop($l), "sql-sum": sql-sum($l), "sql-min": sql-min($l), "sql-max": sql-max($l) }
+return { "sql-count": sql-count($l), "average": sql-avg($l), "sql-sum": sql-sum($l), "sql-min": sql-min($l), "sql-max": sql-max($l), "sql-stddev": sql-stddev($l), "sql-stddev_pop": sql-stddev_pop($l), "sql-var": sql-var($l), "sql-var_pop": sql-var_pop($l) }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null/agg_null.3.query.aql
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null/agg_null.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null/agg_null.3.query.aql
index 92fc08f..f2e57e6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null/agg_null.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null/agg_null.3.query.aql
@@ -24,4 +24,4 @@
 
 let $l1 := [null]
 let $l2 := {{null, null}}
-return { "count1": count($l1), "average1": avg($l1), "sum1": sum($l1), "min1": min($l1), "max1": max($l1),"stddev1": stddev($l1), "stddev_pop1": stddev_pop($l1), "count2": count($l2), "average2": avg($l2), "sum2": sum($l2), "min2": min($l2), "max2": max($l2), "stddev2": stddev($l2), "stddev_pop2": stddev_pop($l2) }
+return { "count1": count($l1), "average1": avg($l1), "sum1": sum($l1), "min1": min($l1), "max1": max($l1), "stddev1": stddev($l1), "stddev_pop1": stddev_pop($l1), "var1": var($l1), "var_pop1": var_pop($l1), "count2": count($l2), "average2": avg($l2), "sum2": sum($l2), "min2": min($l2), "max2": max($l2), "stddev2": stddev($l2), "stddev_pop2": stddev_pop($l2), "var2": var($l2), "var_pop2": var_pop($l2) }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null_rec/agg_null_rec.3.query.aql
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null_rec/agg_null_rec.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null_rec/agg_null_rec.3.query.aql
index 238fb4e..3fb4168 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null_rec/agg_null_rec.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null_rec/agg_null_rec.3.query.aql
@@ -25,4 +25,4 @@
 use dataverse test;
 
 let $l := for $t in dataset Test return $t.valplus
-return { "count": count($l), "average": avg($l), "stddev": stddev($l), "stddev_pop": stddev_pop($l), "sum": sum($l), "min": min($l), "max": max($l) }
+return { "count": count($l), "average": avg($l), "sum": sum($l), "min": min($l), "max": max($l), "stddev": stddev($l), "stddev_pop": stddev_pop($l), "var": var($l), "var_pop": var_pop($l) }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null_rec_1/agg_null_rec_1.3.query.aql
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null_rec_1/agg_null_rec_1.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null_rec_1/agg_null_rec_1.3.query.aql
index 1e2dcd2..c846213 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null_rec_1/agg_null_rec_1.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_null_rec_1/agg_null_rec_1.3.query.aql
@@ -26,6 +26,7 @@ use dataverse test;
 
 let $l := for $t in dataset Test return $t
 return { "count": count($l), "average": avg(for $i in $l return $i.val), "sum":
-sum(for $i in $l return $i.val), "stddev": stddev(for $i in $l return $i.val),
-"stddev_pop": stddev_pop(for $i in $l return $i.val), "min": min(for $i in $l return $i.valplus),
-"max": max(for $i in $l return $i.valplus) }
+sum(for $i in $l return $i.val), "min": min(for $i in $l return $i.valplus),
+"max": max(for $i in $l return $i.valplus), "stddev": stddev(for $i in $l return $i.val),
+ "stddev_pop": stddev_pop(for $i in $l return $i.val), "var": var(for $i in $l return $i.val),
+ "var_pop": var_pop(for $i in $l return $i.val) }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_number/agg_number.3.query.aql
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_number/agg_number.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_number/agg_number.3.query.aql
index 98e996e..b5bcf22 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_number/agg_number.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_number/agg_number.3.query.aql
@@ -31,5 +31,7 @@ let $a4 := min($l2)
 let $a5 := max($l2)
 let $a6 := stddev($l2)
 let $a7 := stddev_pop($l2)
-return { "count1": count($l1), "average1": avg($l1), "stddev1": stddev($l1), "stddev_pop1": stddev_pop($l1), "sum1": sum($l1), "min1": min($l1), "max1": max($l1), "count2": $a1, "average2": $a2, "stddev2": $a6, "stddev_pop2": $a7, "sum2": $a3, "min2": $a4, "max2": $a5 }
+let $a8 := var($l2)
+let $a9 := var_pop($l2)
+return { "count1": count($l1), "average1": avg($l1), "sum1": sum($l1), "min1": min($l1), "max1": max($l1), "stddev1": stddev($l1), "stddev_pop1": stddev_pop($l1), "var1": var($l1), "var_pop1": var_pop($l1), "count2": $a1, "average2": $a2, "sum2": $a3, "min2": $a4, "max2": $a5, "stddev2": $a6, "stddev_pop2": $a7, "var2": $a8, "var_pop2": $a9 }
 

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_number_rec/agg_number_rec.3.query.aql
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_number_rec/agg_number_rec.3.query.aql b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_number_rec/agg_number_rec.3.query.aql
index 8dbb4d3..1c715df 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_number_rec/agg_number_rec.3.query.aql
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries/aggregate/agg_number_rec/agg_number_rec.3.query.aql
@@ -25,4 +25,4 @@
 use dataverse test;
 
 let $l := for $t in dataset Test return $t.valplus
-return { "count": count($l), "average": avg($l), "stddev": stddev($l), "stddev_pop": stddev_pop($l), "sum": sum($l), "min": min($l), "max": max($l) }
+return { "count": count($l), "average": avg($l), "sum": sum($l), "min": min($l), "max": max($l), "stddev": stddev($l), "stddev_pop": stddev_pop($l), "var": var($l), "var_pop": var_pop($l) }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null/agg_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null/agg_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null/agg_null.3.query.sqlpp
index 547b555..bb5957a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null/agg_null.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null/agg_null.3.query.sqlpp
@@ -22,4 +22,4 @@
 * Date         : Feb 7th 2014
 */
 
-{'sql-count1':array_count([null]),'average1':array_avg([null]),'sql-sum1':array_sum([null]),'sql-min1':array_min([null]),'sql-max1':array_max([null]),'sql-stddev1':array_stddev([null]),'sql-stddev_pop1':array_stddev_pop([null]),'sql-count2':array_count({{null,null}}),'average2':array_avg({{null,null}}),'sql-sum2':array_sum({{null,null}}),'sql-min2':array_min({{null,null}}),'sql-max2':array_max({{null,null}}),'sql-stddev2':array_stddev({{null,null}}),'sql-stddev_pop2':array_stddev_pop({{null,null}})};
+{'sql-count1':array_count([null]),'average1':array_avg([null]),'sql-sum1':array_sum([null]),'sql-min1':array_min([null]),'sql-max1':array_max([null]),'sql-stddev1':array_stddev([null]),'sql-stddev_pop1':array_stddev_pop([null]),'sql-var1':array_var([null]),'sql-var_pop1':array_var_pop([null]),'sql-count2':array_count({{null,null}}),'average2':array_avg({{null,null}}),'sql-sum2':array_sum({{null,null}}),'sql-min2':array_min({{null,null}}),'sql-max2':array_max({{null,null}}),'sql-stddev2':array_stddev({{null,null}}),'sql-stddev_pop2':array_stddev_pop({{null,null}}),'sql-var2':array_var({{null,null}}),'sql-var_pop2':array_var_pop({{null,null}})};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null_rec/agg_null_rec.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null_rec/agg_null_rec.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null_rec/agg_null_rec.3.query.sqlpp
index 1831367..126209d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null_rec/agg_null_rec.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null_rec/agg_null_rec.3.query.sqlpp
@@ -46,4 +46,10 @@ use test;
 )),'sql-stddev_pop':test.array_stddev_pop((
     select element t.valplus
     from  Test as t
+)),'sql-var':test.array_var((
+    select element t.valplus
+    from  Test as t
+)),'sql-var_pop':test.array_var_pop((
+    select element t.valplus
+    from  Test as t
 ))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.query.sqlpp
index 9a56d93..47df03f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_null_rec_1/agg_null_rec_1.3.query.sqlpp
@@ -64,4 +64,16 @@ use test;
         select element t
         from  Test as t
     ) as i
+)),'sql-var':test.array_var((
+    select element i.valplus
+    from  (
+        select element t
+        from  Test as t
+    ) as i
+)),'sql-var_pop':test.array_var_pop((
+    select element i.valplus
+    from  (
+        select element t
+        from  Test as t
+    ) as i
 ))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_number/agg_number.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_number/agg_number.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_number/agg_number.3.query.sqlpp
index f76f7d6..775e103 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_number/agg_number.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_number/agg_number.3.query.sqlpp
@@ -22,4 +22,4 @@
 * Date         : Feb 7th 2014
 */
 
-{'sql-count1':array_count([float('2.0'),double('3.0'),93847382783847382,1]),'average1':array_avg([float('2.0'),double('3.0'),93847382783847382,1]),'sql-sum1':array_sum([float('2.0'),double('3.0'),93847382783847382,1]),'sql-min1':array_min([float('2.0'),double('3.0'),93847382783847382,1]),'sql-max1':array_max([float('2.0'),double('3.0'),93847382783847382,1]),'sql-stddev1':array_stddev([float('2.0'),double('3.0'),93847382783847382,1]),'sql-stddev_pop1':array_stddev_pop([float('2.0'),double('3.0'),93847382783847382,1]),'sql-count2':array_count({{float('2.0'),double('3.0'),93847382783847382,1}}),'average2':array_avg({{float('2.0'),double('3.0'),93847382783847382,1}}),'sql-sum2':array_sum({{float('2.0'),double('3.0'),93847382783847382,1}}),'sql-min2':array_min({{float('2.0'),double('3.0'),93847382783847382,1}}),'sql-max2':array_max({{float('2.0'),double('3.0'),93847382783847382,1}}),'sql-stddev2':array_stddev({{float('2.0'),double('3.0'),93847382783847382,1}}),'sql-stddev_pop2':array_std
 dev_pop({{float('2.0'),double('3.0'),93847382783847382,1}})};
+{'sql-count1':array_count([float('2.0'),double('3.0'),93847382783847382,1]),'average1':array_avg([float('2.0'),double('3.0'),93847382783847382,1]),'sql-sum1':array_sum([float('2.0'),double('3.0'),93847382783847382,1]),'sql-min1':array_min([float('2.0'),double('3.0'),93847382783847382,1]),'sql-max1':array_max([float('2.0'),double('3.0'),93847382783847382,1]),'sql-stddev1':array_stddev([float('2.0'),double('3.0'),93847382783847382,1]),'sql-stddev_pop1':array_stddev_pop([float('2.0'),double('3.0'),93847382783847382,1]),'sql-var1':array_var([float('2.0'),double('3.0'),93847382783847382,1]),'sql-var_pop1':array_var_pop([float('2.0'),double('3.0'),93847382783847382,1]),'sql-count2':array_count({{float('2.0'),double('3.0'),93847382783847382,1}}),'average2':array_avg({{float('2.0'),double('3.0'),93847382783847382,1}}),'sql-sum2':array_sum({{float('2.0'),double('3.0'),93847382783847382,1}}),'sql-min2':array_min({{float('2.0'),double('3.0'),93847382783847382,1}}),'sql-max2':array_max({{float(
 '2.0'),double('3.0'),93847382783847382,1}}),'sql-stddev2':array_stddev({{float('2.0'),double('3.0'),93847382783847382,1}}),'sql-stddev_pop2':array_stddev_pop({{float('2.0'),double('3.0'),93847382783847382,1}}),'sql-var2':array_var({{float('2.0'),double('3.0'),93847382783847382,1}}),'sql-var_pop2':array_var_pop({{float('2.0'),double('3.0'),93847382783847382,1}})};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_number_rec/agg_number_rec.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_number_rec/agg_number_rec.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_number_rec/agg_number_rec.3.query.sqlpp
index 790e567..d08777d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_number_rec/agg_number_rec.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/agg_number_rec/agg_number_rec.3.query.sqlpp
@@ -46,4 +46,10 @@ use test;
 )),'sql-stddev_pop':test.array_stddev_pop((
     select element t.valplus
     from  Test as t
+)),'sql-var':test.array_var((
+    select element t.valplus
+    from  Test as t
+)),'sql-var_pop':test.array_var_pop((
+    select element t.valplus
+    from  Test as t
 ))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_mixed/avg_mixed.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_mixed/avg_mixed.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_mixed/avg_mixed.3.query.sqlpp
index 8df1b09..ff0badd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_mixed/avg_mixed.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/avg_mixed/avg_mixed.3.query.sqlpp
@@ -17,7 +17,7 @@
  * under the License.
  */
 /*
-* Description  : Run array_avg over an ordered list with mixed types
+* Description  : Run array_avg over an multiset with mixed types
 * Expected Res : Failure
 * Date         : Feb 7th 2014
 */

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var/scalar_var.1.ddl.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var/scalar_var.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var/scalar_var.1.ddl.sqlpp
new file mode 100644
index 0000000..3a3a45c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var/scalar_var.1.ddl.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description    : Tests the scalar version of var and var_pop without nulls.
+ * Success        : Yes
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var/scalar_var.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var/scalar_var.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var/scalar_var.3.query.sqlpp
new file mode 100644
index 0000000..25e0906
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var/scalar_var.3.query.sqlpp
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description    : Tests the scalar version of var and var_pop without nulls.
+ * Success        : Yes
+ */
+
+use test;
+
+{'var': (with  i8 as test.array_var([test.tinyint('1'),test.tinyint('2'),test.tinyint('3')]),
+      i16 as test.array_var([test.smallint('1'),test.smallint('2'),test.smallint('3')]),
+      i32 as test.array_var([test.integer('1'),test.integer('2'),test.integer('3')]),
+      i64 as test.array_var([test.bigint('1'),test.bigint('2'),test.bigint('3')]),
+      f as test.array_var([test.float('1'),test.float('2'),test.float('3')]),
+      d as test.array_var([test.double('1'),test.double('2'),test.double('3')])
+select element i
+from  [i8,i16,i32,i64,f,d] as i),
+'var_pop': (with  i8 as test.array_var_pop([test.tinyint('1'),test.tinyint('2'),test.tinyint('3')]),
+      i16 as test.array_var_pop([test.smallint('1'),test.smallint('2'),test.smallint('3')]),
+      i32 as test.array_var_pop([test.integer('1'),test.integer('2'),test.integer('3')]),
+      i64 as test.array_var_pop([test.bigint('1'),test.bigint('2'),test.bigint('3')]),
+      f as test.array_var_pop([test.float('1'),test.float('2'),test.float('3')]),
+      d as test.array_var_pop([test.double('1'),test.double('2'),test.double('3')])
+select element i
+from  [i8,i16,i32,i64,f,d] as i)
+};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var_empty/scalar_var_empty.1.ddl.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var_empty/scalar_var_empty.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var_empty/scalar_var_empty.1.ddl.sqlpp
new file mode 100644
index 0000000..aceb0a1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var_empty/scalar_var_empty.1.ddl.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description    : Tests the scalar version of var and var_pop with an empty list.
+ * Success        : Yes
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var_empty/scalar_var_empty.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var_empty/scalar_var_empty.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var_empty/scalar_var_empty.3.query.sqlpp
new file mode 100644
index 0000000..a9534b7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var_empty/scalar_var_empty.3.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description    : Tests the scalar version of var and var_pop with an empty list.
+ * Success        : Yes
+ */
+
+{'var': (select element array_var([])),
+'var_pop': (select element array_var_pop([]))};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var_null/scalar_var_null.1.ddl.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var_null/scalar_var_null.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var_null/scalar_var_null.1.ddl.sqlpp
new file mode 100644
index 0000000..4e53c2f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var_null/scalar_var_null.1.ddl.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description    : Tests the scalar version of var and var_pop with nulls.
+ * Success        : Yes
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var_null/scalar_var_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var_null/scalar_var_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var_null/scalar_var_null.3.query.sqlpp
new file mode 100644
index 0000000..6ed05fa
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/scalar_var_null/scalar_var_null.3.query.sqlpp
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description    : Tests the scalar version of var and var_pop with nulls.
+ * Success        : Yes
+ */
+
+use test;
+
+{'var': (with  i8 as test.array_var([test.tinyint('1'),test.tinyint('2'),test.tinyint('3'),null]),
+      i16 as test.array_var([test.smallint('1'),test.smallint('2'),test.smallint('3'),null]),
+      i32 as test.array_var([test.integer('1'),test.integer('2'),test.integer('3'),null]),
+      i64 as test.array_var([test.bigint('1'),test.bigint('2'),test.bigint('3'),null]),
+      f as test.array_var([test.float('1'),test.float('2'),test.float('3'),null]),
+      d as test.array_var([test.double('1'),test.double('2'),test.double('3'),null])
+select element i
+from  [i8,i16,i32,i64,f,d] as i),
+'var_pop': (with  i8 as test.array_var_pop([test.tinyint('1'),test.tinyint('2'),test.tinyint('3'),null]),
+      i16 as test.array_var_pop([test.smallint('1'),test.smallint('2'),test.smallint('3'),null]),
+      i32 as test.array_var_pop([test.integer('1'),test.integer('2'),test.integer('3'),null]),
+      i64 as test.array_var_pop([test.bigint('1'),test.bigint('2'),test.bigint('3'),null]),
+      f as test.array_var_pop([test.float('1'),test.float('2'),test.float('3'),null]),
+      d as test.array_var_pop([test.double('1'),test.double('2'),test.double('3'),null])
+select element i
+from  [i8,i16,i32,i64,f,d] as i)
+};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_mixed/serial_stddev_mixed.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_mixed/serial_stddev_mixed.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_mixed/serial_stddev_mixed.3.query.sqlpp
index 0c6a8a8..b0c5f68 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_mixed/serial_stddev_mixed.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_mixed/serial_stddev_mixed.3.query.sqlpp
@@ -17,7 +17,7 @@
  * under the License.
  */
  /*
- * Description  : Run serial-stddev over an ordered list with mixed types
+ * Description  : Run serial-stddev over an multiset with mixed types
  * Expected Res : Failure
  * Date         : March 5th 2018
  */

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.3.query.sqlpp
index 207b139..92d729f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_stddev_pop_mixed/serial_stddev_pop_mixed.3.query.sqlpp
@@ -17,7 +17,7 @@
  * under the License.
  */
  /*
- * Description  : Run serial-stddev over an ordered list with mixed types
+ * Description  : Run serial-stddev over an multiset with mixed types
  * Expected Res : Failure
  * Date         : March 5th 2018
  */

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double/serial_var_double.1.ddl.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double/serial_var_double.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double/serial_var_double.1.ddl.sqlpp
new file mode 100644
index 0000000..da0bd7b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double/serial_var_double.1.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+
+create type test.TestType as
+{
+  id : bigint,
+  gid : bigint,
+  val : double
+};
+
+create  dataset Test(TestType) primary key id;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double/serial_var_double.2.update.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double/serial_var_double.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double/serial_var_double.2.update.sqlpp
new file mode 100644
index 0000000..88d820c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double/serial_var_double.2.update.sqlpp
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+use test;
+
+insert into Test
+select element {'id':0,'gid':1,'val':double(4.32),'valplus':double(473847.0)};
+insert into Test
+select element {'id':1,'gid':1,'val':double(5.32)};
+insert into Test
+select element {'id':2,'gid':1,'val':double(6.32),'valplus':double(38473827484738239.0)};
+insert into Test
+select element {'id':3,'gid':1,'val':double(4.32),'valplus':double(678900.0)};
+insert into Test
+select element {'id':4,'gid':1,'val':double(4.32),'valplus':null};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double/serial_var_double.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double/serial_var_double.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double/serial_var_double.3.query.sqlpp
new file mode 100644
index 0000000..48a30f1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double/serial_var_double.3.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+use test;
+
+select gid, var(t.val) as var, var_pop(t.val) as var_pop
+from Test as t
+/* +hash */
+group by t.gid as gid;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double_null/serial_var_double_null.1.ddl.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double_null/serial_var_double_null.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double_null/serial_var_double_null.1.ddl.sqlpp
new file mode 100644
index 0000000..da0bd7b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double_null/serial_var_double_null.1.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+
+create type test.TestType as
+{
+  id : bigint,
+  gid : bigint,
+  val : double
+};
+
+create  dataset Test(TestType) primary key id;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double_null/serial_var_double_null.2.update.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double_null/serial_var_double_null.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double_null/serial_var_double_null.2.update.sqlpp
new file mode 100644
index 0000000..88d820c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double_null/serial_var_double_null.2.update.sqlpp
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+use test;
+
+insert into Test
+select element {'id':0,'gid':1,'val':double(4.32),'valplus':double(473847.0)};
+insert into Test
+select element {'id':1,'gid':1,'val':double(5.32)};
+insert into Test
+select element {'id':2,'gid':1,'val':double(6.32),'valplus':double(38473827484738239.0)};
+insert into Test
+select element {'id':3,'gid':1,'val':double(4.32),'valplus':double(678900.0)};
+insert into Test
+select element {'id':4,'gid':1,'val':double(4.32),'valplus':null};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double_null/serial_var_double_null.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double_null/serial_var_double_null.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double_null/serial_var_double_null.3.query.sqlpp
new file mode 100644
index 0000000..abd0d49
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_double_null/serial_var_double_null.3.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+use test;
+
+select gid, var(t.valplus) as var, var_pop(t.valplus) as var_pop
+from Test as t
+/* +hash */
+group by t.gid as gid;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_empty/serial_var_empty.1.ddl.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_empty/serial_var_empty.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_empty/serial_var_empty.1.ddl.sqlpp
new file mode 100644
index 0000000..da0bd7b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_empty/serial_var_empty.1.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+
+create type test.TestType as
+{
+  id : bigint,
+  gid : bigint,
+  val : double
+};
+
+create  dataset Test(TestType) primary key id;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_empty/serial_var_empty.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_empty/serial_var_empty.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_empty/serial_var_empty.3.query.sqlpp
new file mode 100644
index 0000000..48a30f1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_empty/serial_var_empty.3.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+use test;
+
+select gid, var(t.val) as var, var_pop(t.val) as var_pop
+from Test as t
+/* +hash */
+group by t.gid as gid;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_float/serial_var_float.1.ddl.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_float/serial_var_float.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_float/serial_var_float.1.ddl.sqlpp
new file mode 100644
index 0000000..ddac6a0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_float/serial_var_float.1.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+drop  dataverse test if exists;
+create  dataverse test;
+
+use test;
+
+
+create type test.TestType as
+{
+  id : bigint,
+  gid : bigint,
+  val : float
+};
+
+create  dataset Test(TestType) primary key id;

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_float/serial_var_float.2.update.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_float/serial_var_float.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_float/serial_var_float.2.update.sqlpp
new file mode 100644
index 0000000..40641b5
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_float/serial_var_float.2.update.sqlpp
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+use test;
+
+insert into Test
+select element {'id':0,'gid':1,'val':float('4.32'),'valplus':float('1')};
+insert into Test
+select element {'id':1,'gid':1,'val':float('5.32')};
+insert into Test
+select element {'id':2,'gid':1,'val':float('6.32'),'valplus':float('2')};
+insert into Test
+select element {'id':3,'gid':1,'val':float('4.32'),'valplus':float('3')};
+insert into Test
+select element {'id':4,'gid':1,'val':float('4.32'),'valplus':null};

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/2a42da45/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_float/serial_var_float.3.query.sqlpp
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_float/serial_var_float.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_float/serial_var_float.3.query.sqlpp
new file mode 100644
index 0000000..48a30f1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/aggregate-sql/serial_var_float/serial_var_float.3.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+use test;
+
+select gid, var(t.val) as var, var_pop(t.val) as var_pop
+from Test as t
+/* +hash */
+group by t.gid as gid;