You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by im...@apache.org on 2023/03/24 16:37:27 UTC

[asterixdb] branch master updated (fc0cbd0f5b -> ea67b5143d)

This is an automated email from the ASF dual-hosted git repository.

imaxon pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git


    from fc0cbd0f5b [ASTERIXDB-3144][COMP] Change delivered properties of datasets
     new 8982b10e7c [ASTERIXDB-3091][MTD] Make DROP TYPE derive correct names
     new 6d4622b90e [ASTERIXDB-3118][FUN] Add unix-time-from-date-in-ms
     new ea67b5143d Multiple fixes for columnar datasets

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/asterix/utils/RebalanceUtil.java    |  38 +++++--
 .../asterix/app/bootstrap/TestNodeController.java  |  11 +-
 .../column/rebalance/rebalance.01.ddl.sqlpp        |  68 +++++++++++
 .../rebalance.02.update.sqlpp}                     |  10 +-
 .../rebalance/rebalance.03.query.sqlpp}            |   0
 .../rebalance/rebalance.04.post.http}              |   0
 .../rebalance/rebalance.05.get.http}               |   0
 .../rebalance/rebalance.06.get.http}               |   0
 .../rebalance/rebalance.07.query.sqlpp}            |   0
 .../rebalance.08.query.sqlpp}                      |   9 +-
 .../rebalance.09.query.sqlpp}                      |   9 +-
 .../rebalance/rebalance.10.post.http}              |   0
 .../rebalance/rebalance.11.get.http}               |   0
 .../rebalance/rebalance.12.get.http}               |   0
 .../rebalance/rebalance.13.query.sqlpp}            |   0
 .../rebalance.14.query.sqlpp}                      |   9 +-
 .../rebalance/rebalance.15.query.sqlpp}            |   0
 .../rebalance.16.query.sqlpp}                      |   9 +-
 .../use-case-1/use-case-1.01.ddl.sqlpp}            |  26 +++--
 .../use-case-1/use-case-1.02.update.sqlpp}         |   0
 .../use-case-1/use-case-1.03.query.sqlpp}          |   0
 .../array-index/use-case-1/use-case-1.04.get.http} |   2 +-
 .../use-case-1/use-case-1.05.query.sqlpp}          |   0
 .../use-case-1/use-case-1.06.update.sqlpp}         |   0
 .../use-case-1/use-case-1.07.query.sqlpp}          |   0
 .../array-index/use-case-1/use-case-1.08.get.http} |   2 +-
 .../use-case-1/use-case-1.09.query.sqlpp}          |   0
 .../use-case-1/use-case-1.10.update.sqlpp}         |   0
 .../use-case-1/use-case-1.11.query.sqlpp}          |   0
 .../array-index/use-case-1/use-case-1.12.get.http} |   2 +-
 .../use-case-1/use-case-1.13.query.sqlpp}          |   0
 .../use-case-2/use-case-2.01.ddl.sqlpp}            |  27 +++--
 .../use-case-2/use-case-2.02.update.sqlpp}         |   0
 .../use-case-2/use-case-2.03.query.sqlpp}          |   0
 .../array-index/use-case-2/use-case-2.04.get.http} |   2 +-
 .../use-case-2/use-case-2.05.query.sqlpp}          |   0
 .../use-case-2/use-case-2.06.update.sqlpp}         |   0
 .../use-case-2/use-case-2.07.query.sqlpp}          |   0
 .../array-index/use-case-2/use-case-2.08.get.http} |   2 +-
 .../use-case-2/use-case-2.09.query.sqlpp}          |   0
 .../use-case-2/use-case-2.10.update.sqlpp}         |   0
 .../use-case-2/use-case-2.11.query.sqlpp}          |   0
 .../array-index/use-case-2/use-case-2.12.get.http} |   2 +-
 .../use-case-2/use-case-2.13.query.sqlpp}          |   0
 .../use-case-3/use-case-3.01.ddl.sqlpp}            |  27 +++--
 .../use-case-3/use-case-3.02.update.sqlpp}         |   0
 .../use-case-3/use-case-3.03.query.sqlpp}          |   0
 .../array-index/use-case-3/use-case-3.04.get.http} |   2 +-
 .../use-case-3/use-case-3.05.query.sqlpp}          |   0
 .../use-case-3/use-case-3.06.update.sqlpp}         |   0
 .../use-case-3/use-case-3.07.query.sqlpp}          |   0
 .../array-index/use-case-3/use-case-3.08.get.http} |   2 +-
 .../use-case-3/use-case-3.09.query.sqlpp}          |   0
 .../use-case-3/use-case-3.10.update.sqlpp}         |   0
 .../use-case-3/use-case-3.11.query.sqlpp}          |   0
 .../array-index/use-case-3/use-case-3.12.get.http} |   2 +-
 .../use-case-3/use-case-3.13.query.sqlpp}          |   0
 .../use-case-4/use-case-4.01.ddl.sqlpp}            |  27 +++--
 .../use-case-4/use-case-4.02.update.sqlpp}         |   0
 .../use-case-4/use-case-4.03.query.sqlpp}          |   0
 .../array-index/use-case-4/use-case-4.04.get.http} |   2 +-
 .../use-case-4/use-case-4.05.query.sqlpp}          |   0
 .../use-case-4/use-case-4.06.update.sqlpp}         |   0
 .../use-case-4/use-case-4.07.query.sqlpp}          |   0
 .../array-index/use-case-4/use-case-4.08.get.http} |   2 +-
 .../use-case-4/use-case-4.09.query.sqlpp}          |   0
 .../use-case-4/use-case-4.10.update.sqlpp}         |   0
 .../use-case-4/use-case-4.11.query.sqlpp}          |   0
 .../array-index/use-case-4/use-case-4.12.get.http} |   2 +-
 .../use-case-4/use-case-4.13.query.sqlpp}          |   0
 .../with-additional-atomic-index.01.ddl.sqlpp      |  40 +++++++
 .../with-additional-atomic-index.02.update.sqlpp}  |   0
 .../with-additional-atomic-index.03.query.sqlpp}   |   0
 .../with-additional-atomic-index.04.get.http}      |   2 +-
 .../with-additional-atomic-index.05.query.sqlpp}   |   0
 .../with-additional-atomic-index.06.update.sqlpp}  |   0
 .../with-additional-atomic-index.07.query.sqlpp}   |   0
 .../with-additional-atomic-index.08.get.http}      |   2 +-
 .../with-additional-atomic-index.09.query.sqlpp}   |   0
 .../with-additional-atomic-index.10.update.sqlpp}  |   0
 .../with-additional-atomic-index.11.query.sqlpp}   |   0
 .../with-additional-atomic-index.12.get.http}      |   2 +-
 .../with-additional-atomic-index.13.query.sqlpp}   |   0
 .../with-composite-sk.01.ddl.sqlpp}                |  28 +++--
 .../with-composite-sk.02.update.sqlpp}             |   0
 .../with-composite-sk.03.query.sqlpp}              |   0
 .../with-composite-sk.04.get.http}                 |   2 +-
 .../with-composite-sk.05.query.sqlpp}              |   0
 .../with-composite-sk.06.update.sqlpp}             |   0
 .../with-composite-sk.07.query.sqlpp}              |   0
 .../with-composite-sk.08.get.http}                 |   2 +-
 .../with-composite-sk.09.query.sqlpp}              |   0
 .../with-composite-sk.10.update.sqlpp}             |   0
 .../with-composite-sk.11.query.sqlpp}              |   0
 .../with-composite-sk.12.get.http}                 |   2 +-
 .../with-composite-sk.13.query.sqlpp}              |   0
 .../after-bulkload/after-bulkload.001.ddl.sqlpp}   |  16 +--
 .../after-bulkload.002.update.sqlpp}               |   9 +-
 .../after-bulkload/after-bulkload.003.query.sqlpp} |  11 +-
 .../after-bulkload/after-bulkload.004.query.sqlpp} |  10 +-
 .../after-bulkload/after-bulkload.005.ddl.sqlpp}   |   8 +-
 .../after-bulkload/after-bulkload.006.query.sqlpp} |  11 +-
 .../after-bulkload/after-bulkload.007.query.sqlpp} |  10 +-
 .../after-insert/after-insert.001.ddl.sqlpp}       |  15 ++-
 .../after-insert/after-insert.002.update.sqlpp}    |   0
 .../after-insert/after-insert.003.query.sqlpp}     |  11 +-
 .../after-insert/after-insert.004.query.sqlpp}     |  10 +-
 .../after-insert/after-insert.005.ddl.sqlpp}       |   8 +-
 .../after-insert/after-insert.006.query.sqlpp}     |  11 +-
 .../after-insert/after-insert.007.query.sqlpp}     |  10 +-
 .../after-insert-with-meta.001.ddl.sqlpp           |  69 ++++++++++++
 .../after-upsert-with-meta.002.update.sqlpp}       |   0
 .../after-upsert-with-meta.003.get.http}           |   0
 .../after-upsert-with-meta.004.ddl.sqlpp}          |   3 +-
 .../after-upsert-with-meta.005.query.sqlpp}        |   8 +-
 .../after-upsert-with-meta.006.query.sqlpp}        |   8 +-
 .../after-upsert-with-meta.007.update.sqlpp}       |   7 +-
 .../after-upsert-with-meta.008.get.http}           |   0
 .../after-upsert-with-meta.009.query.sqlpp}        |   8 +-
 .../after-upsert-with-meta.010.query.sqlpp}        |   8 +-
 .../after-upsert-with-meta.011.update.sqlpp}       |   2 +-
 .../after-upsert-with-meta.012.get.http}           |   0
 .../after-upsert-with-meta.013.query.sqlpp}        |   8 +-
 .../after-upsert-with-meta.014.query.sqlpp}        |   8 +-
 .../index-with-meta/index-with-meta.001.ddl.sqlpp  |  72 ++++++++++++
 .../index-with-meta.002.update.sqlpp}              |   0
 .../index-with-meta.003.query.sqlpp}               |   8 +-
 .../index-with-meta.004.query.sqlpp}               |   5 +-
 .../index-with-meta.005.query.sqlpp}               |   5 +-
 .../index-with-meta.006.query.sqlpp}               |   5 +-
 .../index-with-meta.007.query.sqlpp}               |   5 +-
 .../index-with-meta.008.query.sqlpp}               |   8 +-
 .../index-with-meta.009.query.sqlpp}               |   9 +-
 .../index-with-meta.010.query.sqlpp}               |   9 +-
 .../index-with-meta/index-with-meta.011.get.http}  |   0
 .../index-with-meta.012.query.sqlpp}               |   8 +-
 .../index-with-meta.013.query.sqlpp}               |   5 +-
 .../index-with-meta.014.query.sqlpp}               |   5 +-
 .../index-with-meta.015.query.sqlpp}               |   5 +-
 .../index-with-meta.016.query.sqlpp}               |   5 +-
 .../index-with-meta.017.query.sqlpp}               |   8 +-
 .../index-with-meta.018.query.sqlpp}               |   9 +-
 .../index-with-meta.019.query.sqlpp}               |   9 +-
 .../index-with-meta.020.update.sqlpp}              |   7 +-
 .../index-with-meta.021.query.sqlpp}               |   5 +-
 .../index-with-meta.022.query.sqlpp}               |   8 +-
 .../index-with-meta/index-with-meta.023.get.http}  |   0
 .../index-with-meta.024.query.sqlpp}               |   5 +-
 .../index-with-meta.025.query.sqlpp}               |   8 +-
 .../{filter => upsert}/001/001.001.ddl.sqlpp       |   0
 .../001.002.update.sqlpp}                          |   0
 .../001.003.query.sqlpp}                           |   0
 .../{upsert.004.get.http => 001/001.004.get.http}  |   0
 .../001.005.query.sqlpp}                           |   0
 .../001.006.update.sqlpp}                          |   0
 .../001.007.query.sqlpp}                           |   0
 .../{upsert.008.get.http => 001/001.008.get.http}  |   0
 .../001.009.query.sqlpp}                           |   0
 .../001.010.update.sqlpp}                          |   0
 .../001.011.query.sqlpp}                           |   0
 .../{upsert.012.get.http => 001/001.012.get.http}  |   0
 .../001.013.query.sqlpp}                           |   0
 .../001.014.update.sqlpp}                          |   0
 .../{upsert.015.get.http => 001/001.015.get.http}  |   0
 .../001.016.query.sqlpp}                           |   0
 .../{filter => upsert}/002/002.001.ddl.sqlpp       |   0
 .../002.002.update.sqlpp}                          |   8 +-
 .../002.003.query.sqlpp}                           |   0
 .../002/002.004.get.http}                          |   0
 .../002.005.query.sqlpp}                           |   0
 .../002.006.update.sqlpp}                          |   4 +-
 .../002.007.query.sqlpp}                           |   2 +-
 .../002/002.008.get.http}                          |   0
 .../002.009.query.sqlpp}                           |   2 +-
 .../002.010.update.sqlpp}                          |   0
 .../002.011.query.sqlpp}                           |   0
 .../drop-anonymous-nested-types.000.ddl.sqlpp}     |   3 +-
 .../drop-anonymous-nested-types.001.query.sqlpp}   |   3 +-
 .../drop-anonymous-nested-types.002.ddl.sqlpp}     |  30 +++--
 .../drop-anonymous-nested-types.003.query.sqlpp}   |   3 +-
 .../drop-anonymous-nested-types.004.ddl.sqlpp}     |   6 +-
 .../drop-anonymous-nested-types.005.query.sqlpp}   |   4 +-
 .../date_functions/date_functions.3.query.sqlpp    |   1 +
 .../rebalance/rebalance.03.adm}                    |   0
 .../rebalance/rebalance.04.adm}                    |   0
 .../rebalance/rebalance.05.adm}                    |   0
 .../rebalance/rebalance.06.adm}                    |   0
 .../rebalance/rebalance.07.adm}                    |   0
 .../rebalance/rebalance.08.adm}                    |   0
 .../rebalance/rebalance.09.adm}                    |   0
 .../rebalance/rebalance.10.adm}                    |   0
 .../rebalance/rebalance.11.adm}                    |   0
 .../rebalance/rebalance.12.adm}                    |   0
 .../rebalance/rebalance.13.adm}                    |   0
 .../rebalance/rebalance.14.adm}                    |   0
 .../rebalance/rebalance.15.adm}                    |   0
 .../rebalance/rebalance.16.adm}                    |   0
 .../array-index/use-case-1/use-case-1.03.adm}      |   0
 .../array-index/use-case-1/use-case-1.04.adm       |   1 +
 .../array-index/use-case-1/use-case-1.05.adm}      |   0
 .../array-index/use-case-1/use-case-1.07.adm}      |   0
 .../array-index/use-case-1/use-case-1.08.adm       |   1 +
 .../array-index/use-case-1/use-case-1.09.adm}      |   0
 .../array-index/use-case-1/use-case-1.11.adm}      |   0
 .../array-index/use-case-1/use-case-1.12.adm       |   1 +
 .../array-index/use-case-1/use-case-1.13.adm}      |   0
 .../array-index/use-case-2/use-case-2.03.adm}      |   0
 .../array-index/use-case-2/use-case-2.04.adm       |   1 +
 .../array-index/use-case-2/use-case-2.05.adm}      |   0
 .../array-index/use-case-2/use-case-2.07.adm}      |   0
 .../array-index/use-case-2/use-case-2.08.adm       |   1 +
 .../array-index/use-case-2/use-case-2.09.adm}      |   0
 .../array-index/use-case-2/use-case-2.11.adm}      |   0
 .../array-index/use-case-2/use-case-2.12.adm       |   1 +
 .../array-index/use-case-2/use-case-2.13.adm}      |   0
 .../array-index/use-case-3/use-case-3.03.adm}      |   0
 .../array-index/use-case-3/use-case-3.04.adm       |   1 +
 .../array-index/use-case-3/use-case-3.05.adm}      |   0
 .../array-index/use-case-3/use-case-3.07.adm}      |   0
 .../array-index/use-case-3/use-case-3.08.adm       |   1 +
 .../array-index/use-case-3/use-case-3.09.adm}      |   0
 .../array-index/use-case-3/use-case-3.11.adm}      |   0
 .../array-index/use-case-3/use-case-3.12.adm       |   1 +
 .../array-index/use-case-3/use-case-3.13.adm}      |   0
 .../array-index/use-case-4/use-case-4.03.adm}      |   0
 .../array-index/use-case-4/use-case-4.04.adm       |   1 +
 .../array-index/use-case-4/use-case-4.05.adm}      |   0
 .../array-index/use-case-4/use-case-4.07.adm}      |   0
 .../array-index/use-case-4/use-case-4.08.adm       |   1 +
 .../array-index/use-case-4/use-case-4.09.adm}      |   0
 .../array-index/use-case-4/use-case-4.11.adm}      |   0
 .../array-index/use-case-4/use-case-4.12.adm       |   1 +
 .../array-index/use-case-4/use-case-4.13.adm}      |   0
 .../with-additional-atomic-index.03.adm}           |   0
 .../with-additional-atomic-index.04.adm            |   1 +
 .../with-additional-atomic-index.05.adm}           |   0
 .../with-additional-atomic-index.07.adm}           |   0
 .../with-additional-atomic-index.08.adm            |   1 +
 .../with-additional-atomic-index.09.adm}           |   0
 .../with-additional-atomic-index.11.adm}           |   0
 .../with-additional-atomic-index.12.adm            |   1 +
 .../with-additional-atomic-index.13.adm}           |   0
 .../with-composite-sk/with-composite-sk.03.adm}    |   0
 .../with-composite-sk/with-composite-sk.04.adm     |   1 +
 .../with-composite-sk/with-composite-sk.05.adm}    |   0
 .../with-composite-sk/with-composite-sk.07.adm}    |   0
 .../with-composite-sk/with-composite-sk.08.adm     |   1 +
 .../with-composite-sk/with-composite-sk.09.adm}    |   0
 .../with-composite-sk/with-composite-sk.11.adm}    |   0
 .../with-composite-sk/with-composite-sk.12.adm     |   1 +
 .../with-composite-sk/with-composite-sk.13.adm}    |   0
 .../after-bulkload/after-bulkload.003.adm}         |   0
 .../after-bulkload/after-bulkload.004.adm          |   1 +
 .../after-bulkload/after-bulkload.006.adm}         |   0
 .../after-bulkload/after-bulkload.007.adm          |   1 +
 .../after-insert/after-insert.003.adm}             |   0
 .../create-index/after-insert/after-insert.004.adm |   1 +
 .../after-insert/after-insert.006.adm}             |   0
 .../create-index/after-insert/after-insert.007.adm |   1 +
 .../after-upsert-with-meta.003.adm                 |   1 +
 .../after-upsert-with-meta.005.adm                 |   4 +
 .../after-upsert-with-meta.006.adm                 |   1 +
 .../after-upsert-with-meta.008.adm                 |   1 +
 .../after-upsert-with-meta.009.adm                 |   5 +
 .../after-upsert-with-meta.010.adm                 |   2 +
 .../after-upsert-with-meta.012.adm                 |   1 +
 .../after-upsert-with-meta.013.adm                 |   5 +
 .../after-upsert-with-meta.014.adm                 |   2 +
 .../index-with-meta/index-with-meta.003.adm        |   4 +
 .../index-with-meta/index-with-meta.004.adm        |   6 +
 .../index-with-meta/index-with-meta.005.adm        |   7 ++
 .../index-with-meta/index-with-meta.006.adm        |   2 +
 .../index-with-meta/index-with-meta.007.adm        |   3 +
 .../index-with-meta/index-with-meta.008.adm        |   2 +
 .../index-with-meta/index-with-meta.009.adm        |   1 +
 .../index-with-meta/index-with-meta.010.adm        |   1 +
 .../index-with-meta/index-with-meta.011.adm        |   1 +
 .../index-with-meta/index-with-meta.012.adm        |   4 +
 .../index-with-meta/index-with-meta.013.adm        |   6 +
 .../index-with-meta/index-with-meta.014.adm        |   7 ++
 .../index-with-meta/index-with-meta.015.adm        |   2 +
 .../index-with-meta/index-with-meta.016.adm        |   3 +
 .../index-with-meta/index-with-meta.017.adm        |   2 +
 .../index-with-meta/index-with-meta.018.adm        |   1 +
 .../index-with-meta/index-with-meta.019.adm        |   1 +
 .../index-with-meta/index-with-meta.021.adm        |   2 +
 .../index-with-meta/index-with-meta.022.adm        |   2 +
 .../index-with-meta/index-with-meta.023.adm        |   1 +
 .../index-with-meta/index-with-meta.024.adm        |   2 +
 .../index-with-meta/index-with-meta.025.adm        |   2 +
 .../results/column/upsert/{ => 001}/upsert.003.adm |   0
 .../results/column/upsert/{ => 001}/upsert.004.adm |   0
 .../results/column/upsert/{ => 001}/upsert.005.adm |   0
 .../results/column/upsert/{ => 001}/upsert.007.adm |   0
 .../results/column/upsert/{ => 001}/upsert.008.adm |   0
 .../results/column/upsert/{ => 001}/upsert.009.adm |   0
 .../results/column/upsert/{ => 001}/upsert.011.adm |   0
 .../results/column/upsert/{ => 001}/upsert.012.adm |   0
 .../results/column/upsert/{ => 001}/upsert.013.adm |   0
 .../results/column/upsert/{ => 001}/upsert.015.adm |   0
 .../results/column/upsert/{ => 001}/upsert.016.adm |   0
 .../results/column/upsert/002/upsert.003.adm       |   5 +
 .../results/column/upsert/{ => 002}/upsert.004.adm |   0
 .../results/column/upsert/002/upsert.005.adm       |   5 +
 .../results/column/upsert/002/upsert.007.adm       |   5 +
 .../results/column/upsert/{ => 002}/upsert.008.adm |   0
 .../results/column/upsert/002/upsert.009.adm       |   5 +
 .../results/column/upsert/002/upsert.011.adm       |   5 +
 .../drop-anonymous-nested-types.001.adm}           |   0
 .../drop-anonymous-nested-types.003.adm            |  10 ++
 .../drop-anonymous-nested-types.005.adm}           |   0
 .../temporal/date_functions/date_functions.1.adm   |   2 +-
 .../temporal/date_functions/date_functions.3.ast   |   9 ++
 .../test/resources/runtimets/testsuite_sqlpp.xml   |  69 +++++++++++-
 .../asterix/column/ColumnManagerFactory.java       |  18 ++-
 .../create/PrimaryScanColumnTupleProjector.java    |  54 +++++++++
 .../PrimaryScanColumnTupleProjectorFactory.java    |  50 +++++++++
 .../PrimaryScanColumnTupleWithMetaProjector.java   |  55 +++++++++
 .../upsert/UpsertPreviousColumnTupleProjector.java |  57 ++++++++++
 .../UpsertPreviousColumnTupleProjectorFactory.java |  50 +++++++++
 ...UpsertPreviousColumnTupleWithMetaProjector.java |  59 ++++++++++
 .../operation/query/QueryColumnMetadata.java       |   3 +-
 .../operation/query/QueryColumnTupleProjector.java |   4 +-
 .../query/QueryColumnWithMetaTupleProjector.java   |   4 +-
 .../util/ColumnSecondaryIndexSchemaUtil.java       | 118 ++++++++++++++++++++
 .../RepeatedPrimitiveColumnValuesReader.java       |  12 ++
 .../org/apache/asterix/metadata/MetadataNode.java  |  15 ++-
 .../apache/asterix/metadata/entities/Index.java    |  20 +++-
 .../apache/asterix/metadata/utils/DatasetUtil.java | 124 +++++++++++++++------
 .../apache/asterix/metadata/utils/IndexUtil.java   |  25 +++++
 .../SecondaryArrayIndexBTreeOperationsHelper.java  |   8 +-
 .../utils/SecondaryBTreeOperationsHelper.java      |  38 ++++---
 .../utils/SecondaryIndexOperationsHelper.java      |  16 ++-
 .../asterix/om/functions/BuiltinFunctions.java     |   4 +
 .../typecomputer/impl/RecordMergeTypeComputer.java |  27 +++--
 ...DatetimeEval.java => AbstractUnixTimeEval.java} |  33 ++++--
 .../temporal/AbstractUnixTimeFromDateEval.java     |  38 +++++++
 .../temporal/AbstractUnixTimeFromDatetimeEval.java | 108 +-----------------
 .../temporal/UnixTimeFromDateInMsDescriptor.java   |  54 +++++++++
 .../temporal/UnixTimeFromDateInMsEval.java}        |  27 +++--
 .../temporal/UnixTimeFromTimeInMsDescriptor.java   |   1 +
 .../runtime/functions/FunctionCollection.java      |   2 +
 .../LSMPrimaryUpsertOperatorDescriptor.java        |  11 +-
 .../LSMPrimaryUpsertOperatorNodePushable.java      |  17 ++-
 .../am/common/impls/NoOpTupleProjector.java        |  27 +++--
 .../am/common/impls/NoOpTupleProjectorFactory.java |  26 +++--
 .../impls/btree/ColumnBTreeRangeSearchCursor.java  |  23 ++--
 347 files changed, 1733 insertions(+), 538 deletions(-)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.01.ddl.sqlpp
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.002.update.sqlpp => rebalance/rebalance.02.update.sqlpp} (72%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{rebalance/all_datasets/all_datasets.13.query.sqlpp => column/rebalance/rebalance.03.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{rebalance/all_datasets/all_datasets.4.post.http => column/rebalance/rebalance.04.post.http} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{rebalance/all_datasets/all_datasets.11.get.http => column/rebalance/rebalance.05.get.http} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{rebalance/all_datasets/all_datasets.12.get.http => column/rebalance/rebalance.06.get.http} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{rebalance/all_datasets/all_datasets.13.query.sqlpp => column/rebalance/rebalance.07.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => rebalance/rebalance.08.query.sqlpp} (88%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => rebalance/rebalance.09.query.sqlpp} (88%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{rebalance/all_datasets/all_datasets.10.post.http => column/rebalance/rebalance.10.post.http} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{rebalance/all_datasets/all_datasets.11.get.http => column/rebalance/rebalance.11.get.http} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{rebalance/all_datasets/all_datasets.12.get.http => column/rebalance/rebalance.12.get.http} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{rebalance/all_datasets/all_datasets.13.query.sqlpp => column/rebalance/rebalance.13.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => rebalance/rebalance.14.query.sqlpp} (88%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{rebalance/all_datasets/all_datasets.15.query.sqlpp => column/rebalance/rebalance.15.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => rebalance/rebalance.16.query.sqlpp} (88%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.001.ddl.sqlpp => secondary-index/array-index/use-case-1/use-case-1.01.ddl.sqlpp} (52%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.2.update.sqlpp => column/secondary-index/array-index/use-case-1/use-case-1.02.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.query.sqlpp => column/secondary-index/array-index/use-case-1/use-case-1.03.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.012.get.http => secondary-index/array-index/use-case-1/use-case-1.04.get.http} (93%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.query.sqlpp => column/secondary-index/array-index/use-case-1/use-case-1.05.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.4.update.sqlpp => column/secondary-index/array-index/use-case-1/use-case-1.06.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.query.sqlpp => column/secondary-index/array-index/use-case-1/use-case-1.07.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.012.get.http => secondary-index/array-index/use-case-1/use-case-1.08.get.http} (93%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.query.sqlpp => column/secondary-index/array-index/use-case-1/use-case-1.09.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.6.update.sqlpp => column/secondary-index/array-index/use-case-1/use-case-1.10.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.query.sqlpp => column/secondary-index/array-index/use-case-1/use-case-1.11.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.012.get.http => secondary-index/array-index/use-case-1/use-case-1.12.get.http} (93%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.query.sqlpp => column/secondary-index/array-index/use-case-1/use-case-1.13.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.001.ddl.sqlpp => secondary-index/array-index/use-case-2/use-case-2.01.ddl.sqlpp} (53%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/bulk-loading/on-index-creation/closed/use-case-2/use-case-2.2.update.sqlpp => column/secondary-index/array-index/use-case-2/use-case-2.02.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-2/use-case-2.3.query.sqlpp => column/secondary-index/array-index/use-case-2/use-case-2.03.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.012.get.http => secondary-index/array-index/use-case-2/use-case-2.04.get.http} (93%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-2/use-case-2.3.query.sqlpp => column/secondary-index/array-index/use-case-2/use-case-2.05.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.4.update.sqlpp => column/secondary-index/array-index/use-case-2/use-case-2.06.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-2/use-case-2.3.query.sqlpp => column/secondary-index/array-index/use-case-2/use-case-2.07.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.012.get.http => secondary-index/array-index/use-case-2/use-case-2.08.get.http} (93%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-2/use-case-2.3.query.sqlpp => column/secondary-index/array-index/use-case-2/use-case-2.09.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-2/use-case-2.6.update.sqlpp => column/secondary-index/array-index/use-case-2/use-case-2.10.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-2/use-case-2.3.query.sqlpp => column/secondary-index/array-index/use-case-2/use-case-2.11.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.012.get.http => secondary-index/array-index/use-case-2/use-case-2.12.get.http} (93%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-2/use-case-2.3.query.sqlpp => column/secondary-index/array-index/use-case-2/use-case-2.13.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.001.ddl.sqlpp => secondary-index/array-index/use-case-3/use-case-3.01.ddl.sqlpp} (52%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-3/use-case-3.2.update.sqlpp => column/secondary-index/array-index/use-case-3/use-case-3.02.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-3/use-case-3.3.query.sqlpp => column/secondary-index/array-index/use-case-3/use-case-3.03.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.012.get.http => secondary-index/array-index/use-case-3/use-case-3.04.get.http} (93%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-3/use-case-3.3.query.sqlpp => column/secondary-index/array-index/use-case-3/use-case-3.05.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.4.update.sqlpp => column/secondary-index/array-index/use-case-3/use-case-3.06.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-3/use-case-3.3.query.sqlpp => column/secondary-index/array-index/use-case-3/use-case-3.07.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.012.get.http => secondary-index/array-index/use-case-3/use-case-3.08.get.http} (93%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-3/use-case-3.3.query.sqlpp => column/secondary-index/array-index/use-case-3/use-case-3.09.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-3/use-case-3.6.update.sqlpp => column/secondary-index/array-index/use-case-3/use-case-3.10.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-3/use-case-3.3.query.sqlpp => column/secondary-index/array-index/use-case-3/use-case-3.11.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.012.get.http => secondary-index/array-index/use-case-3/use-case-3.12.get.http} (93%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-3/use-case-3.3.query.sqlpp => column/secondary-index/array-index/use-case-3/use-case-3.13.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.001.ddl.sqlpp => secondary-index/array-index/use-case-4/use-case-4.01.ddl.sqlpp} (52%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-4/use-case-4.2.update.sqlpp => column/secondary-index/array-index/use-case-4/use-case-4.02.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-4/use-case-4.3.query.sqlpp => column/secondary-index/array-index/use-case-4/use-case-4.03.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.012.get.http => secondary-index/array-index/use-case-4/use-case-4.04.get.http} (93%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-4/use-case-4.3.query.sqlpp => column/secondary-index/array-index/use-case-4/use-case-4.05.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.4.update.sqlpp => column/secondary-index/array-index/use-case-4/use-case-4.06.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-4/use-case-4.3.query.sqlpp => column/secondary-index/array-index/use-case-4/use-case-4.07.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.012.get.http => secondary-index/array-index/use-case-4/use-case-4.08.get.http} (93%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-4/use-case-4.3.query.sqlpp => column/secondary-index/array-index/use-case-4/use-case-4.09.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-4/use-case-4.6.update.sqlpp => column/secondary-index/array-index/use-case-4/use-case-4.10.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-4/use-case-4.3.query.sqlpp => column/secondary-index/array-index/use-case-4/use-case-4.11.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.012.get.http => secondary-index/array-index/use-case-4/use-case-4.12.get.http} (93%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-4/use-case-4.3.query.sqlpp => column/secondary-index/array-index/use-case-4/use-case-4.13.query.sqlpp} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.01.ddl.sqlpp
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/with-additional-atomic-index/with-additional-atomic-index.2.update.sqlpp => column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.02.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.query.sqlpp => column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.03.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.012.get.http => secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.04.get.http} (93%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.query.sqlpp => column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.05.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.4.update.sqlpp => column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.06.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.query.sqlpp => column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.07.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.012.get.http => secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.08.get.http} (93%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.query.sqlpp => column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.09.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/with-additional-atomic-index/with-additional-atomic-index.6.update.sqlpp => column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.10.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.query.sqlpp => column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.11.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.012.get.http => secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.12.get.http} (93%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.query.sqlpp => column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.13.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.001.ddl.sqlpp => secondary-index/array-index/with-composite-sk/with-composite-sk.01.ddl.sqlpp} (55%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/with-composite-sk/with-composite-sk.2.update.sqlpp => column/secondary-index/array-index/with-composite-sk/with-composite-sk.02.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/with-composite-sk/with-composite-sk.3.query.sqlpp => column/secondary-index/array-index/with-composite-sk/with-composite-sk.03.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.012.get.http => secondary-index/array-index/with-composite-sk/with-composite-sk.04.get.http} (93%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/with-composite-sk/with-composite-sk.3.query.sqlpp => column/secondary-index/array-index/with-composite-sk/with-composite-sk.05.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.4.update.sqlpp => column/secondary-index/array-index/with-composite-sk/with-composite-sk.06.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/with-composite-sk/with-composite-sk.3.query.sqlpp => column/secondary-index/array-index/with-composite-sk/with-composite-sk.07.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.012.get.http => secondary-index/array-index/with-composite-sk/with-composite-sk.08.get.http} (93%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/with-composite-sk/with-composite-sk.3.query.sqlpp => column/secondary-index/array-index/with-composite-sk/with-composite-sk.09.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/with-composite-sk/with-composite-sk.6.update.sqlpp => column/secondary-index/array-index/with-composite-sk/with-composite-sk.10.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/with-composite-sk/with-composite-sk.3.query.sqlpp => column/secondary-index/array-index/with-composite-sk/with-composite-sk.11.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.012.get.http => secondary-index/array-index/with-composite-sk/with-composite-sk.12.get.http} (93%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/with-composite-sk/with-composite-sk.3.query.sqlpp => column/secondary-index/array-index/with-composite-sk/with-composite-sk.13.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.001.ddl.sqlpp => secondary-index/create-index/after-bulkload/after-bulkload.001.ddl.sqlpp} (76%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/create-index/after-bulkload/after-bulkload.002.update.sqlpp} (84%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/create-index/after-bulkload/after-bulkload.003.query.sqlpp} (85%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/create-index/after-bulkload/after-bulkload.004.query.sqlpp} (88%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/create-index/after-bulkload/after-bulkload.005.ddl.sqlpp} (81%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/create-index/after-bulkload/after-bulkload.006.query.sqlpp} (85%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/create-index/after-bulkload/after-bulkload.007.query.sqlpp} (88%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.001.ddl.sqlpp => secondary-index/create-index/after-insert/after-insert.001.ddl.sqlpp} (76%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.2.update.sqlpp => column/secondary-index/create-index/after-insert/after-insert.002.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/create-index/after-insert/after-insert.003.query.sqlpp} (85%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/create-index/after-insert/after-insert.004.query.sqlpp} (88%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/create-index/after-insert/after-insert.005.ddl.sqlpp} (81%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/create-index/after-insert/after-insert.006.query.sqlpp} (85%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/create-index/after-insert/after-insert.007.query.sqlpp} (88%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-insert-with-meta.001.ddl.sqlpp
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{meta/meta_after_gby/meta_after_gby.002.update.sqlpp => secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.002.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{meta/meta_after_gby/meta_after_gby.003.get.http => secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.003.get.http} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.0014.update.sqlpp => secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.004.ddl.sqlpp} (91%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.005.query.sqlpp} (90%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.006.query.sqlpp} (90%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.007.update.sqlpp} (89%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{meta/meta_after_gby/meta_after_gby.003.get.http => secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.008.get.http} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.009.query.sqlpp} (90%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.010.query.sqlpp} (90%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.0014.update.sqlpp => secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.011.update.sqlpp} (96%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{meta/meta_after_gby/meta_after_gby.003.get.http => secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.012.get.http} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.013.query.sqlpp} (90%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.014.query.sqlpp} (90%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.001.ddl.sqlpp
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{meta/meta_after_gby/meta_after_gby.002.update.sqlpp => secondary-index/index-with-meta/index-with-meta.002.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/index-with-meta/index-with-meta.003.query.sqlpp} (90%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.0014.update.sqlpp => secondary-index/index-with-meta/index-with-meta.004.query.sqlpp} (91%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.0014.update.sqlpp => secondary-index/index-with-meta/index-with-meta.005.query.sqlpp} (91%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.0014.update.sqlpp => secondary-index/index-with-meta/index-with-meta.006.query.sqlpp} (91%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.0014.update.sqlpp => secondary-index/index-with-meta/index-with-meta.007.query.sqlpp} (91%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/index-with-meta/index-with-meta.008.query.sqlpp} (90%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/index-with-meta/index-with-meta.009.query.sqlpp} (88%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/index-with-meta/index-with-meta.010.query.sqlpp} (88%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{meta/meta_after_gby/meta_after_gby.003.get.http => secondary-index/index-with-meta/index-with-meta.011.get.http} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/index-with-meta/index-with-meta.012.query.sqlpp} (90%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.0014.update.sqlpp => secondary-index/index-with-meta/index-with-meta.013.query.sqlpp} (91%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.0014.update.sqlpp => secondary-index/index-with-meta/index-with-meta.014.query.sqlpp} (91%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.0014.update.sqlpp => secondary-index/index-with-meta/index-with-meta.015.query.sqlpp} (91%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.0014.update.sqlpp => secondary-index/index-with-meta/index-with-meta.016.query.sqlpp} (91%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/index-with-meta/index-with-meta.017.query.sqlpp} (90%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/index-with-meta/index-with-meta.018.query.sqlpp} (88%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/index-with-meta/index-with-meta.019.query.sqlpp} (88%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/index-with-meta/index-with-meta.020.update.sqlpp} (89%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.0014.update.sqlpp => secondary-index/index-with-meta/index-with-meta.021.query.sqlpp} (91%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/index-with-meta/index-with-meta.022.query.sqlpp} (90%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{meta/meta_after_gby/meta_after_gby.003.get.http => secondary-index/index-with-meta/index-with-meta.023.get.http} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.0014.update.sqlpp => secondary-index/index-with-meta/index-with-meta.024.query.sqlpp} (91%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{upsert/upsert.005.query.sqlpp => secondary-index/index-with-meta/index-with-meta.025.query.sqlpp} (90%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{filter => upsert}/001/001.001.ddl.sqlpp (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.002.update.sqlpp => 001/001.002.update.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.003.query.sqlpp => 001/001.003.query.sqlpp} (100%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.004.get.http => 001/001.004.get.http} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.005.query.sqlpp => 001/001.005.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.006.update.sqlpp => 001/001.006.update.sqlpp} (100%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.007.query.sqlpp => 001/001.007.query.sqlpp} (100%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.008.get.http => 001/001.008.get.http} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.009.query.sqlpp => 001/001.009.query.sqlpp} (100%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.010.update.sqlpp => 001/001.010.update.sqlpp} (100%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.011.query.sqlpp => 001/001.011.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.012.get.http => 001/001.012.get.http} (100%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.013.query.sqlpp => 001/001.013.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.0014.update.sqlpp => 001/001.014.update.sqlpp} (100%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.015.get.http => 001/001.015.get.http} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.016.query.sqlpp => 001/001.016.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{filter => upsert}/002/002.001.ddl.sqlpp (100%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.002.update.sqlpp => 002/002.002.update.sqlpp} (84%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.003.query.sqlpp => 002/002.003.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{big-object/big-object.3.get.http => upsert/002/002.004.get.http} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.005.query.sqlpp => 002/002.005.query.sqlpp} (100%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.006.update.sqlpp => 002/002.006.update.sqlpp} (87%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.005.query.sqlpp => 002/002.007.query.sqlpp} (88%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/{big-object/big-object.3.get.http => upsert/002/002.008.get.http} (100%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.009.query.sqlpp => 002/002.009.query.sqlpp} (93%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.0014.update.sqlpp => 002/002.010.update.sqlpp} (100%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/{upsert.016.query.sqlpp => 002/002.011.query.sqlpp} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{column/upsert/upsert.012.get.http => ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.000.ddl.sqlpp} (93%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{column/upsert/upsert.012.get.http => ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.001.query.sqlpp} (92%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{column/upsert/upsert.001.ddl.sqlpp => ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.002.ddl.sqlpp} (65%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{column/upsert/upsert.012.get.http => ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.003.query.sqlpp} (92%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{column/upsert/upsert.0014.update.sqlpp => ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.004.ddl.sqlpp} (95%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/{column/upsert/upsert.012.get.http => ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.005.query.sqlpp} (91%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{rebalance/all_datasets/all_datasets.3.adm => column/rebalance/rebalance.03.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{rebalance/all_datasets/all_datasets.10.adm => column/rebalance/rebalance.04.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{rebalance/all_datasets/all_datasets.5.adm => column/rebalance/rebalance.05.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{rebalance/all_datasets/all_datasets.6.adm => column/rebalance/rebalance.06.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{rebalance/all_datasets/all_datasets.3.adm => column/rebalance/rebalance.07.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{rebalance/all_datasets/all_datasets.8.adm => column/rebalance/rebalance.08.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{rebalance/all_datasets/all_datasets.9.adm => column/rebalance/rebalance.09.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{rebalance/all_datasets/all_datasets.10.adm => column/rebalance/rebalance.10.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{rebalance/all_datasets/all_datasets.11.adm => column/rebalance/rebalance.11.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{rebalance/all_datasets/all_datasets.12.adm => column/rebalance/rebalance.12.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{rebalance/all_datasets/all_datasets.13.adm => column/rebalance/rebalance.13.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{rebalance/all_datasets/all_datasets.14.adm => column/rebalance/rebalance.14.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{rebalance/all_datasets/all_datasets.15.adm => column/rebalance/rebalance.15.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{rebalance/all_datasets/all_datasets.16.adm => column/rebalance/rebalance.16.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.1.adm => column/secondary-index/array-index/use-case-1/use-case-1.03.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.04.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.1.adm => column/secondary-index/array-index/use-case-1/use-case-1.05.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.2.adm => column/secondary-index/array-index/use-case-1/use-case-1.07.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.08.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.2.adm => column/secondary-index/array-index/use-case-1/use-case-1.09.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.adm => column/secondary-index/array-index/use-case-1/use-case-1.11.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.12.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.adm => column/secondary-index/array-index/use-case-1/use-case-1.13.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.adm => column/secondary-index/array-index/use-case-2/use-case-2.03.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.04.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.adm => column/secondary-index/array-index/use-case-2/use-case-2.05.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.2.adm => column/secondary-index/array-index/use-case-2/use-case-2.07.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.08.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.2.adm => column/secondary-index/array-index/use-case-2/use-case-2.09.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.adm => column/secondary-index/array-index/use-case-2/use-case-2.11.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.12.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.adm => column/secondary-index/array-index/use-case-2/use-case-2.13.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.adm => column/secondary-index/array-index/use-case-3/use-case-3.03.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.04.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.adm => column/secondary-index/array-index/use-case-3/use-case-3.05.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.2.adm => column/secondary-index/array-index/use-case-3/use-case-3.07.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.08.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.2.adm => column/secondary-index/array-index/use-case-3/use-case-3.09.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.adm => column/secondary-index/array-index/use-case-3/use-case-3.11.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.12.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.adm => column/secondary-index/array-index/use-case-3/use-case-3.13.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.adm => column/secondary-index/array-index/use-case-4/use-case-4.03.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.04.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.adm => column/secondary-index/array-index/use-case-4/use-case-4.05.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.2.adm => column/secondary-index/array-index/use-case-4/use-case-4.07.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.08.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.2.adm => column/secondary-index/array-index/use-case-4/use-case-4.09.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.adm => column/secondary-index/array-index/use-case-4/use-case-4.11.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.12.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.adm => column/secondary-index/array-index/use-case-4/use-case-4.13.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.1.adm => column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.03.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.04.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.1.adm => column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.05.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.2.adm => column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.07.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.08.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.2.adm => column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.09.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.adm => column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.11.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.12.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.adm => column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.13.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.adm => column/secondary-index/array-index/with-composite-sk/with-composite-sk.03.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.04.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.adm => column/secondary-index/array-index/with-composite-sk/with-composite-sk.05.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.2.adm => column/secondary-index/array-index/with-composite-sk/with-composite-sk.07.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.08.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.2.adm => column/secondary-index/array-index/with-composite-sk/with-composite-sk.09.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.adm => column/secondary-index/array-index/with-composite-sk/with-composite-sk.11.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.12.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/insert-upsert-delete/closed/use-case-1/use-case-1.3.adm => column/secondary-index/array-index/with-composite-sk/with-composite-sk.13.adm} (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/bulk-loading/after-index-creation/use-case-1/use-case-1.1.adm => column/secondary-index/create-index/after-bulkload/after-bulkload.003.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-bulkload/after-bulkload.004.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/bulk-loading/after-index-creation/use-case-1/use-case-1.1.adm => column/secondary-index/create-index/after-bulkload/after-bulkload.006.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-bulkload/after-bulkload.007.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/bulk-loading/after-index-creation/use-case-1/use-case-1.1.adm => column/secondary-index/create-index/after-insert/after-insert.003.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-insert/after-insert.004.adm
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/{array-index/bulk-loading/after-index-creation/use-case-1/use-case-1.1.adm => column/secondary-index/create-index/after-insert/after-insert.006.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-insert/after-insert.007.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.003.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.005.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.006.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.008.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.009.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.010.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.012.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.013.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.014.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.003.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.004.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.005.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.006.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.007.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.008.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.009.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.010.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.011.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.012.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.013.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.014.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.015.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.016.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.017.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.018.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.019.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.021.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.022.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.023.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.024.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.025.adm
 rename asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/{ => 001}/upsert.003.adm (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/{ => 001}/upsert.004.adm (100%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/{ => 001}/upsert.005.adm (100%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/{ => 001}/upsert.007.adm (100%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/{ => 001}/upsert.008.adm (100%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/{ => 001}/upsert.009.adm (100%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/{ => 001}/upsert.011.adm (100%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/{ => 001}/upsert.012.adm (100%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/{ => 001}/upsert.013.adm (100%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/{ => 001}/upsert.015.adm (100%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/{ => 001}/upsert.016.adm (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.003.adm
 rename asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/{ => 002}/upsert.004.adm (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.005.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.007.adm
 rename asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/{ => 002}/upsert.008.adm (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.009.adm
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.011.adm
 copy asterixdb/asterix-app/{data/csv/empty.csv => src/test/resources/runtimets/results/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.001.adm} (100%)
 create mode 100644 asterixdb/asterix-app/src/test/resources/runtimets/results/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.003.adm
 copy asterixdb/asterix-app/{data/csv/empty.csv => src/test/resources/runtimets/results/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.005.adm} (100%)
 create mode 100644 asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/create/PrimaryScanColumnTupleProjector.java
 create mode 100644 asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/create/PrimaryScanColumnTupleProjectorFactory.java
 create mode 100644 asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/create/PrimaryScanColumnTupleWithMetaProjector.java
 create mode 100644 asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/upsert/UpsertPreviousColumnTupleProjector.java
 create mode 100644 asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/upsert/UpsertPreviousColumnTupleProjectorFactory.java
 create mode 100644 asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/upsert/UpsertPreviousColumnTupleWithMetaProjector.java
 create mode 100644 asterixdb/asterix-column/src/main/java/org/apache/asterix/column/util/ColumnSecondaryIndexSchemaUtil.java
 copy asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/{AbstractUnixTimeFromDatetimeEval.java => AbstractUnixTimeEval.java} (82%)
 create mode 100644 asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/AbstractUnixTimeFromDateEval.java
 create mode 100644 asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDateInMsDescriptor.java
 copy asterixdb/{asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp => asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDateInMsEval.java} (54%)
 copy asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp => hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/impls/NoOpTupleProjector.java (55%)
 rename asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp => hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/impls/NoOpTupleProjectorFactory.java (51%)


[asterixdb] 02/03: [ASTERIXDB-3118][FUN] Add unix-time-from-date-in-ms

Posted by im...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

imaxon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git

commit 6d4622b90edbf1d080da145207c5d5028b5d1ce4
Author: Ian Maxon <ia...@maxons.email>
AuthorDate: Mon Mar 20 13:15:09 2023 -0700

    [ASTERIXDB-3118][FUN] Add unix-time-from-date-in-ms
    
    - user model changes: no
    - storage format changes: no
    - interface changes: no
    
    Change-Id: I42e9ad0b13d6c185d633561387150e975ef1b50f
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17439
    Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Reviewed-by: Ian Maxon <im...@uci.edu>
    Reviewed-by: Glenn Galvizo <gg...@uci.edu>
---
 .../date_functions/date_functions.3.query.sqlpp    |   1 +
 .../temporal/date_functions/date_functions.1.adm   |   2 +-
 .../temporal/date_functions/date_functions.3.ast   |   9 ++
 .../asterix/om/functions/BuiltinFunctions.java     |   4 +
 ...DatetimeEval.java => AbstractUnixTimeEval.java} |  33 +++++--
 .../temporal/AbstractUnixTimeFromDateEval.java     |  38 ++++++++
 .../temporal/AbstractUnixTimeFromDatetimeEval.java | 108 +--------------------
 .../temporal/UnixTimeFromDateInMsDescriptor.java   |  54 +++++++++++
 .../temporal/UnixTimeFromDateInMsEval.java         |  38 ++++++++
 .../temporal/UnixTimeFromTimeInMsDescriptor.java   |   1 +
 .../runtime/functions/FunctionCollection.java      |   2 +
 11 files changed, 175 insertions(+), 115 deletions(-)

diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/date_functions/date_functions.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/date_functions/date_functions.3.query.sqlpp
index cd03a90831..fad55d55c4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/date_functions/date_functions.3.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/temporal/date_functions/date_functions.3.query.sqlpp
@@ -28,6 +28,7 @@ set `import-private-functions` `true`;
 , 'date4' : (test.`date-from-unix-time-in-days`(15600) + test.duration('-P2Y1M90DT30H'))
 , 'date5' : (test.`get-date-from-datetime`(test.datetime('1327-12-02T23:35:49.938Z')) + test.duration('P300Y900MT360000M'))
 , 'unix1' : test.`unix-time-from-date-in-days`(test.`date-from-unix-time-in-days`(15600))
+, 'unix2' : test.`unix-time-from-date-in-ms`(test.`date-from-unix-time-in-days`(15600))
 , 'duration1' : ((test.`get-date-from-datetime`(test.datetime('1327-12-02T23:35:49.938Z')) + test.duration('P300Y900MT360000M')) - test.`get-date-from-datetime`(test.datetime('1327-12-02T23:35:49.938Z')))
 , 'duration2' : ((test.`date-from-unix-time-in-days`(15600) + test.duration('-P2Y1M90DT30H')) - test.`date-from-unix-time-in-days`(15600))
 , 'c1' : (test.`date-from-unix-time-in-days`(15600) = ((test.`date-from-unix-time-in-days`(15600) + test.duration('-P2Y1M90DT30H')) + (test.`date-from-unix-time-in-days`(15600) - (test.`date-from-unix-time-in-days`(15600) + test.duration('-P2Y1M90DT30H')))))
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/date_functions/date_functions.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/date_functions/date_functions.1.adm
index e568b7bf42..76f34b8ac0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/date_functions/date_functions.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/date_functions/date_functions.1.adm
@@ -1 +1 @@
-{ "date1": date("2012-09-17"), "date2": date("1327-12-02"), "date3": date("2012-10-11"), "date4": date("2010-05-17"), "date5": date("1703-08-09"), "unix1": 15600, "duration1": duration("P137216D"), "duration2": duration("-P854D"), "c1": true, "c2": true, "null1": null, "nullunix1": null, "null2": null, "null3": null, "null4": null, "null5": null, "null6": null }
+{ "date1": date("2012-09-17"), "date2": date("1327-12-02"), "date3": date("2012-10-11"), "date4": date("2010-05-17"), "date5": date("1703-08-09"), "unix1": 15600, "unix2": 1347840000000, "duration1": duration("P137216D"), "duration2": duration("-P854D"), "c1": true, "c2": true, "null1": null, "nullunix1": null, "null2": null, "null3": null, "null4": null, "null5": null, "null6": null }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/date_functions/date_functions.3.ast b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/date_functions/date_functions.3.ast
index 674377eb17..9957214990 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/date_functions/date_functions.3.ast
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/temporal/date_functions/date_functions.3.ast
@@ -64,6 +64,15 @@ RecordConstructor [
       ]
     ]
   )
+  (
+    LiteralExpr [STRING] [unix2]
+    :
+    FunctionCall asterix.unix-time-from-date-in-ms@1[
+      FunctionCall asterix.date-from-unix-time-in-days@1[
+        LiteralExpr [LONG] [15600]
+      ]
+    ]
+  )
   (
     LiteralExpr [STRING] [duration1]
     :
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java
index cdc811176f..0034e9b338 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java
@@ -1515,6 +1515,9 @@ public class BuiltinFunctions {
     // Temporal functions
     public static final FunctionIdentifier UNIX_TIME_FROM_DATE_IN_DAYS =
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "unix-time-from-date-in-days", 1);
+
+    public static final FunctionIdentifier UNIX_TIME_FROM_DATE_IN_MS =
+            new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "unix-time-from-date-in-ms", 1);
     public final static FunctionIdentifier UNIX_TIME_FROM_TIME_IN_MS =
             new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "unix-time-from-time-in-ms", 1);
     public final static FunctionIdentifier UNIX_TIME_FROM_DATETIME_IN_MS =
@@ -2468,6 +2471,7 @@ public class BuiltinFunctions {
 
         // temporal functions
         addFunction(UNIX_TIME_FROM_DATE_IN_DAYS, AInt64TypeComputer.INSTANCE, true);
+        addFunction(UNIX_TIME_FROM_DATE_IN_MS, AInt64TypeComputer.INSTANCE, true);
         addFunction(UNIX_TIME_FROM_TIME_IN_MS, AInt64TypeComputer.INSTANCE, true);
         addFunction(UNIX_TIME_FROM_DATETIME_IN_MS, AInt64TypeComputer.INSTANCE, true);
         addFunction(UNIX_TIME_FROM_DATETIME_IN_MS_WITH_TZ, AInt64TypeComputer.INSTANCE, false);
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/AbstractUnixTimeFromDatetimeEval.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/AbstractUnixTimeEval.java
similarity index 82%
copy from asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/AbstractUnixTimeFromDatetimeEval.java
copy to asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/AbstractUnixTimeEval.java
index 2723a64395..402cca0c42 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/AbstractUnixTimeFromDatetimeEval.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/AbstractUnixTimeEval.java
@@ -19,15 +19,16 @@
 
 package org.apache.asterix.runtime.evaluators.functions.temporal;
 
-import static org.apache.asterix.om.types.ATypeTag.SERIALIZED_DATETIME_TYPE_TAG;
-
 import java.io.DataOutput;
 import java.time.LocalDateTime;
 import java.time.ZoneOffset;
 import java.time.zone.ZoneRules;
 import java.util.concurrent.TimeUnit;
+import java.util.function.Predicate;
 
+import org.apache.asterix.dataflow.data.nontagged.serde.ADateSerializerDeserializer;
 import org.apache.asterix.dataflow.data.nontagged.serde.ADateTimeSerializerDeserializer;
+import org.apache.asterix.dataflow.data.nontagged.serde.ATimeSerializerDeserializer;
 import org.apache.asterix.formats.nontagged.SerializerDeserializerProvider;
 import org.apache.asterix.om.base.AInt64;
 import org.apache.asterix.om.base.AMutableInt64;
@@ -48,7 +49,7 @@ import org.apache.hyracks.data.std.primitive.VoidPointable;
 import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
 import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
 
-abstract class AbstractUnixTimeFromDatetimeEval extends AbstractScalarEval {
+abstract class AbstractUnixTimeEval extends AbstractScalarEval {
 
     private final IScalarEvaluator arg0;
     private final IScalarEvaluator arg1;
@@ -67,12 +68,11 @@ abstract class AbstractUnixTimeFromDatetimeEval extends AbstractScalarEval {
     private final ArrayBackedValueStorage resultStorage = new ArrayBackedValueStorage();
     private final DataOutput out = resultStorage.getDataOutput();
 
-    AbstractUnixTimeFromDatetimeEval(IScalarEvaluator arg0, SourceLocation sourceLoc,
-            FunctionIdentifier functionIdentifier) {
+    AbstractUnixTimeEval(IScalarEvaluator arg0, SourceLocation sourceLoc, FunctionIdentifier functionIdentifier) {
         this(arg0, null, sourceLoc, functionIdentifier);
     }
 
-    AbstractUnixTimeFromDatetimeEval(IScalarEvaluator arg0, IScalarEvaluator arg1, SourceLocation sourceLoc,
+    AbstractUnixTimeEval(IScalarEvaluator arg0, IScalarEvaluator arg1, SourceLocation sourceLoc,
             FunctionIdentifier fid) {
         super(sourceLoc, fid);
         this.arg0 = arg0;
@@ -83,6 +83,21 @@ abstract class AbstractUnixTimeFromDatetimeEval extends AbstractScalarEval {
         this.tzHelper = new TimezoneHelper(sourceLoc, fid);
     }
 
+    private long getChronon(byte[] bytes, int offset, ATypeTag tag) {
+        switch (tag) {
+            case TIME:
+                return ATimeSerializerDeserializer.getChronon(bytes, offset);
+            case DATE:
+                return ADateSerializerDeserializer.getChronon(bytes, offset);
+            case DATETIME:
+                return ADateTimeSerializerDeserializer.getChronon(bytes, offset);
+        }
+        return -1l;
+    }
+
+    protected ATypeTag tag = ATypeTag.NULL;
+    protected Predicate<Byte> incorrectTag = i -> i != tag.serialize();
+
     @Override
     public void evaluate(IFrameTupleReference tuple, IPointable result) throws HyracksDataException {
         arg0.evaluate(tuple, argPtr0);
@@ -96,11 +111,11 @@ abstract class AbstractUnixTimeFromDatetimeEval extends AbstractScalarEval {
 
         byte[] bytes0 = argPtr0.getByteArray();
         int offset0 = argPtr0.getStartOffset();
-        if (bytes0[offset0] != SERIALIZED_DATETIME_TYPE_TAG) {
-            throw new TypeMismatchException(srcLoc, funID, 0, bytes0[offset0], ATypeTag.SERIALIZED_DATETIME_TYPE_TAG);
+        if (incorrectTag.test(bytes0[offset0])) {
+            throw new TypeMismatchException(srcLoc, funID, 0, bytes0[offset0], tag.serialize());
         }
 
-        long chrononLocal = ADateTimeSerializerDeserializer.getChronon(bytes0, offset0 + 1);
+        long chrononLocal = getChronon(bytes0, offset0 + 1, tag);
         long chrononUTC;
         if (arg1 != null) {
             byte[] bytes1 = argPtr1.getByteArray();
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/AbstractUnixTimeFromDateEval.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/AbstractUnixTimeFromDateEval.java
new file mode 100644
index 0000000000..241a64f7a0
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/AbstractUnixTimeFromDateEval.java
@@ -0,0 +1,38 @@
+/*
+ * 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.
+ */
+package org.apache.asterix.runtime.evaluators.functions.temporal;
+
+import org.apache.asterix.om.types.ATypeTag;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.api.exceptions.SourceLocation;
+
+public abstract class AbstractUnixTimeFromDateEval extends AbstractUnixTimeEval {
+
+    AbstractUnixTimeFromDateEval(IScalarEvaluator arg0, SourceLocation sourceLoc,
+            FunctionIdentifier functionIdentifier) {
+        this(arg0, null, sourceLoc, functionIdentifier);
+    }
+
+    AbstractUnixTimeFromDateEval(IScalarEvaluator arg0, IScalarEvaluator arg1, SourceLocation sourceLoc,
+            FunctionIdentifier fid) {
+        super(arg0, arg1, sourceLoc, fid);
+        this.tag = ATypeTag.DATE;
+    }
+}
\ No newline at end of file
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/AbstractUnixTimeFromDatetimeEval.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/AbstractUnixTimeFromDatetimeEval.java
index 2723a64395..a7e834f23b 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/AbstractUnixTimeFromDatetimeEval.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/AbstractUnixTimeFromDatetimeEval.java
@@ -19,53 +19,12 @@
 
 package org.apache.asterix.runtime.evaluators.functions.temporal;
 
-import static org.apache.asterix.om.types.ATypeTag.SERIALIZED_DATETIME_TYPE_TAG;
-
-import java.io.DataOutput;
-import java.time.LocalDateTime;
-import java.time.ZoneOffset;
-import java.time.zone.ZoneRules;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.asterix.dataflow.data.nontagged.serde.ADateTimeSerializerDeserializer;
-import org.apache.asterix.formats.nontagged.SerializerDeserializerProvider;
-import org.apache.asterix.om.base.AInt64;
-import org.apache.asterix.om.base.AMutableInt64;
-import org.apache.asterix.om.base.temporal.GregorianCalendarSystem;
 import org.apache.asterix.om.types.ATypeTag;
-import org.apache.asterix.om.types.BuiltinType;
-import org.apache.asterix.runtime.evaluators.functions.AbstractScalarEval;
-import org.apache.asterix.runtime.evaluators.functions.PointableHelper;
-import org.apache.asterix.runtime.exceptions.TypeMismatchException;
 import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
 import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
-import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.api.exceptions.SourceLocation;
-import org.apache.hyracks.data.std.api.IPointable;
-import org.apache.hyracks.data.std.primitive.UTF8StringPointable;
-import org.apache.hyracks.data.std.primitive.VoidPointable;
-import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
-import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
-
-abstract class AbstractUnixTimeFromDatetimeEval extends AbstractScalarEval {
-
-    private final IScalarEvaluator arg0;
-    private final IScalarEvaluator arg1;
 
-    private final IPointable argPtr0;
-    private final IPointable argPtr1;
-    private final UTF8StringPointable utf8Ptr;
-
-    protected final GregorianCalendarSystem cal = GregorianCalendarSystem.getInstance();
-    protected final TimezoneHelper tzHelper;
-
-    @SuppressWarnings("unchecked")
-    private final ISerializerDeserializer<AInt64> int64Serde =
-            SerializerDeserializerProvider.INSTANCE.getSerializerDeserializer(BuiltinType.AINT64);
-    private final AMutableInt64 aInt64 = new AMutableInt64(0);
-    private final ArrayBackedValueStorage resultStorage = new ArrayBackedValueStorage();
-    private final DataOutput out = resultStorage.getDataOutput();
+abstract class AbstractUnixTimeFromDatetimeEval extends AbstractUnixTimeEval {
 
     AbstractUnixTimeFromDatetimeEval(IScalarEvaluator arg0, SourceLocation sourceLoc,
             FunctionIdentifier functionIdentifier) {
@@ -74,69 +33,8 @@ abstract class AbstractUnixTimeFromDatetimeEval extends AbstractScalarEval {
 
     AbstractUnixTimeFromDatetimeEval(IScalarEvaluator arg0, IScalarEvaluator arg1, SourceLocation sourceLoc,
             FunctionIdentifier fid) {
-        super(sourceLoc, fid);
-        this.arg0 = arg0;
-        this.arg1 = arg1;
-        this.argPtr0 = new VoidPointable();
-        this.argPtr1 = arg1 != null ? new VoidPointable() : null;
-        this.utf8Ptr = arg1 != null ? new UTF8StringPointable() : null;
-        this.tzHelper = new TimezoneHelper(sourceLoc, fid);
-    }
-
-    @Override
-    public void evaluate(IFrameTupleReference tuple, IPointable result) throws HyracksDataException {
-        arg0.evaluate(tuple, argPtr0);
-        if (arg1 != null) {
-            arg1.evaluate(tuple, argPtr1);
-        }
-
-        if (PointableHelper.checkAndSetMissingOrNull(result, argPtr0, argPtr1)) {
-            return;
-        }
-
-        byte[] bytes0 = argPtr0.getByteArray();
-        int offset0 = argPtr0.getStartOffset();
-        if (bytes0[offset0] != SERIALIZED_DATETIME_TYPE_TAG) {
-            throw new TypeMismatchException(srcLoc, funID, 0, bytes0[offset0], ATypeTag.SERIALIZED_DATETIME_TYPE_TAG);
-        }
-
-        long chrononLocal = ADateTimeSerializerDeserializer.getChronon(bytes0, offset0 + 1);
-        long chrononUTC;
-        if (arg1 != null) {
-            byte[] bytes1 = argPtr1.getByteArray();
-            int offset1 = argPtr1.getStartOffset();
-            int len1 = argPtr1.getLength();
-            if (bytes1[offset1] != ATypeTag.SERIALIZED_STRING_TYPE_TAG) {
-                throw new TypeMismatchException(srcLoc, funID, 1, bytes1[offset1], ATypeTag.SERIALIZED_STRING_TYPE_TAG);
-            }
-            utf8Ptr.set(bytes1, offset1 + 1, len1 - 1);
-            ZoneRules tzRules = tzHelper.parseTimeZone(utf8Ptr);
-            LocalDateTime dt = toLocalDateTime(chrononLocal, cal);
-            ZoneOffset tzOffset = tzRules.getOffset(dt);
-            int tzOffsetMillis = (int) TimeUnit.SECONDS.toMillis(tzOffset.getTotalSeconds());
-            chrononUTC = cal.adjustChrononByTimezone(chrononLocal, tzOffsetMillis);
-        } else {
-            chrononUTC = chrononLocal;
-        }
-        long unixTime = chrononToUnixTime(chrononUTC);
-
-        resultStorage.reset();
-        aInt64.setValue(unixTime);
-        int64Serde.serialize(aInt64, out);
-        result.set(resultStorage);
-    }
-
-    private static LocalDateTime toLocalDateTime(long chronon, GregorianCalendarSystem cal) {
-        int year = cal.getYear(chronon);
-        int month = cal.getMonthOfYear(chronon, year);
-        int day = cal.getDayOfMonthYear(chronon, year, month);
-        int hour = cal.getHourOfDay(chronon);
-        int minute = cal.getMinOfHour(chronon);
-        int second = cal.getSecOfMin(chronon);
-        int milli = cal.getMillisOfSec(chronon);
-        int nano = (int) TimeUnit.MILLISECONDS.toNanos(milli);
-        return LocalDateTime.of(year, month, day, hour, minute, second, nano);
+        super(arg0, arg1, sourceLoc, fid);
+        this.tag = ATypeTag.DATETIME;
     }
 
-    abstract long chrononToUnixTime(long chronon);
 }
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDateInMsDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDateInMsDescriptor.java
new file mode 100644
index 0000000000..15be21a409
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDateInMsDescriptor.java
@@ -0,0 +1,54 @@
+/*
+ * 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.
+ */
+package org.apache.asterix.runtime.evaluators.functions.temporal;
+
+import org.apache.asterix.common.annotations.MissingNullInOutFunction;
+import org.apache.asterix.om.functions.BuiltinFunctions;
+import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
+import org.apache.asterix.runtime.evaluators.base.AbstractScalarFunctionDynamicDescriptor;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.runtime.base.IEvaluatorContext;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluatorFactory;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+
+@MissingNullInOutFunction
+public final class UnixTimeFromDateInMsDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+
+    public static final IFunctionDescriptorFactory FACTORY = UnixTimeFromDateInMsDescriptor::new;
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public IScalarEvaluatorFactory createEvaluatorFactory(final IScalarEvaluatorFactory[] args) {
+        return new IScalarEvaluatorFactory() {
+            private static final long serialVersionUID = 1L;
+
+            @Override
+            public IScalarEvaluator createScalarEvaluator(final IEvaluatorContext ctx) throws HyracksDataException {
+                IScalarEvaluator argEval = args[0].createScalarEvaluator(ctx);
+                return new UnixTimeFromDateInMsEval(argEval, sourceLoc, getIdentifier());
+            }
+        };
+    }
+
+    @Override
+    public FunctionIdentifier getIdentifier() {
+        return BuiltinFunctions.UNIX_TIME_FROM_DATE_IN_MS;
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDateInMsEval.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDateInMsEval.java
new file mode 100644
index 0000000000..66c1cf0eb2
--- /dev/null
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDateInMsEval.java
@@ -0,0 +1,38 @@
+/*
+ * 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.
+ */
+
+package org.apache.asterix.runtime.evaluators.functions.temporal;
+
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.algebricks.runtime.base.IScalarEvaluator;
+import org.apache.hyracks.api.exceptions.SourceLocation;
+
+final class UnixTimeFromDateInMsEval extends AbstractUnixTimeFromDateEval {
+
+    public static final long MS_IN_DAY = 86400000l;
+
+    UnixTimeFromDateInMsEval(IScalarEvaluator arg0, SourceLocation sourceLoc, FunctionIdentifier functionIdentifier) {
+        super(arg0, sourceLoc, functionIdentifier);
+    }
+
+    @Override
+    long chrononToUnixTime(long chronon) {
+        return chronon * MS_IN_DAY;
+    }
+}
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromTimeInMsDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromTimeInMsDescriptor.java
index 184d0ad927..9a05897c41 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromTimeInMsDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromTimeInMsDescriptor.java
@@ -45,6 +45,7 @@ import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
 
 @MissingNullInOutFunction
 public class UnixTimeFromTimeInMsDescriptor extends AbstractScalarFunctionDynamicDescriptor {
+    //TODO: make this extend AbstractUnixTimeEval to avoid duplication
     private static final long serialVersionUID = 1L;
     public static final IFunctionDescriptorFactory FACTORY = UnixTimeFromTimeInMsDescriptor::new;
 
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionCollection.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionCollection.java
index 63dae91f55..949afed799 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionCollection.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionCollection.java
@@ -608,6 +608,7 @@ import org.apache.asterix.runtime.evaluators.functions.temporal.QuarterOfYearDes
 import org.apache.asterix.runtime.evaluators.functions.temporal.TimeFromDatetimeDescriptor;
 import org.apache.asterix.runtime.evaluators.functions.temporal.TimeFromUnixTimeInMsDescriptor;
 import org.apache.asterix.runtime.evaluators.functions.temporal.UnixTimeFromDateInDaysDescriptor;
+import org.apache.asterix.runtime.evaluators.functions.temporal.UnixTimeFromDateInMsDescriptor;
 import org.apache.asterix.runtime.evaluators.functions.temporal.UnixTimeFromDatetimeInMsDescriptor;
 import org.apache.asterix.runtime.evaluators.functions.temporal.UnixTimeFromDatetimeInMsWithTzDescriptor;
 import org.apache.asterix.runtime.evaluators.functions.temporal.UnixTimeFromDatetimeInSecsDescriptor;
@@ -1221,6 +1222,7 @@ public final class FunctionCollection implements IFunctionCollection {
 
         // Temporal functions
         fc.add(UnixTimeFromDateInDaysDescriptor.FACTORY);
+        fc.add(UnixTimeFromDateInMsDescriptor.FACTORY);
         fc.add(UnixTimeFromTimeInMsDescriptor.FACTORY);
         fc.add(UnixTimeFromDatetimeInMsDescriptor.FACTORY);
         fc.add(UnixTimeFromDatetimeInMsWithTzDescriptor.FACTORY);


[asterixdb] 01/03: [ASTERIXDB-3091][MTD] Make DROP TYPE derive correct names

Posted by im...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

imaxon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git

commit 8982b10e7cfb93ba22d88ce252dbd99d93ad056a
Author: Ian Maxon <ia...@maxons.email>
AuthorDate: Tue Nov 29 19:36:54 2022 -0800

    [ASTERIXDB-3091][MTD] Make DROP TYPE derive correct names
    
    - user model changes: no
    - storage format changes: no
    - interface changes: no
    
    Details:
    
    DROP TYPE tries to derive the dependent nested anonymous types
    to drop by name. However, when we insert these, for missable
    fields and nested collections, the base type is used rather than
    the quantified or outer type to create the name. This happens to
    work most of the time hence this was not noticed for a very long
    time.
    This patch just fixes the two cases by using the unquantified type
    for missable fields of records, and the item type rather than the
    collection type for collections.
    
    Change-Id: I67f3ea5bbd9dd4f5f4b836e765f42ccc1d7b13ca
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17296
    Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Reviewed-by: Ian Maxon <im...@uci.edu>
    Reviewed-by: Ali Alsuliman <al...@gmail.com>
---
 .../drop-anonymous-nested-types.000.ddl.sqlpp      | 20 ++++++++++++
 .../drop-anonymous-nested-types.001.query.sqlpp    | 20 ++++++++++++
 .../drop-anonymous-nested-types.002.ddl.sqlpp      | 37 ++++++++++++++++++++++
 .../drop-anonymous-nested-types.003.query.sqlpp    | 20 ++++++++++++
 .../drop-anonymous-nested-types.004.ddl.sqlpp      | 20 ++++++++++++
 .../drop-anonymous-nested-types.005.query.sqlpp    | 21 ++++++++++++
 .../drop-anonymous-nested-types.001.adm            |  0
 .../drop-anonymous-nested-types.003.adm            | 10 ++++++
 .../drop-anonymous-nested-types.005.adm            |  0
 .../test/resources/runtimets/testsuite_sqlpp.xml   |  5 +++
 .../org/apache/asterix/metadata/MetadataNode.java  | 15 ++++++---
 11 files changed, 164 insertions(+), 4 deletions(-)

diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.000.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.000.ddl.sqlpp
new file mode 100644
index 0000000000..5a225a9290
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.000.ddl.sqlpp
@@ -0,0 +1,20 @@
+/*
+ * 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 hanging IF EXISTS;
+CREATE DATAVERSE hanging;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.001.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.001.query.sqlpp
new file mode 100644
index 0000000000..678e47dae7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.001.query.sqlpp
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+SELECT * FROM Metadata.Datatype d
+WHERE d.DataverseName="hanging";
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.002.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.002.ddl.sqlpp
new file mode 100644
index 0000000000..89fd9f0316
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.002.ddl.sqlpp
@@ -0,0 +1,37 @@
+/*
+ * 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 hanging;
+CREATE TYPE UserType AS {
+_oid: uuid,
+user_id: string,
+email: string,
+name:
+{ first: string?, last: string?, nesty: [ string ]?, nestier: { bar: bigint } }
+,
+address:
+{ street: string?, city: string?, state: string?, zip: int? }
+?,
+categories: [ string ],
+phone: [
+{ number: string?, kind: string?, nesty: [ string ]?, nestier: { bar: bigint } }
+],
+joined_date: string,
+is_buyer: boolean,
+is_seller: boolean
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.003.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.003.query.sqlpp
new file mode 100644
index 0000000000..678e47dae7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.003.query.sqlpp
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+SELECT * FROM Metadata.Datatype d
+WHERE d.DataverseName="hanging";
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.004.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.004.ddl.sqlpp
new file mode 100644
index 0000000000..de21a0d3fd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.004.ddl.sqlpp
@@ -0,0 +1,20 @@
+/*
+ * 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 hanging;
+DROP TYPE UserType;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.005.query.sqlpp
new file mode 100644
index 0000000000..d82d9dc8ff
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.005.query.sqlpp
@@ -0,0 +1,21 @@
+/*
+ * 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 hanging;
+SELECT * FROM Metadata.Datatype d
+WHERE d.DataverseName="hanging";
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.001.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.001.adm
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.003.adm
new file mode 100644
index 0000000000..32a1d9948a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.003.adm
@@ -0,0 +1,10 @@
+{ "d": { "DataverseName": "hanging", "DatatypeName": "UserType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "_oid", "FieldType": "uuid", "IsNullable": false, "IsMissable": false }, { "FieldName": "user_id", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "email", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "name", "FieldType": "UserType_name", "IsNullabl [...]
+{ "d": { "DataverseName": "hanging", "DatatypeName": "UserType_address", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "street", "FieldType": "string", "IsNullable": true, "IsMissable": true }, { "FieldName": "city", "FieldType": "string", "IsNullable": true, "IsMissable": true }, { "FieldName": "state", "FieldType": "string", "IsNullable": true, "IsMissable": true }, { "FieldName": "zip", "FieldType": "int64", "IsNullable": tru [...]
+{ "d": { "DataverseName": "hanging", "DatatypeName": "UserType_categories", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": "Tue Mar 21 11:21:48 PDT 2023" } }
+{ "d": { "DataverseName": "hanging", "DatatypeName": "UserType_name", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "first", "FieldType": "string", "IsNullable": true, "IsMissable": true }, { "FieldName": "last", "FieldType": "string", "IsNullable": true, "IsMissable": true }, { "FieldName": "nesty", "FieldType": "UserType_name_nesty", "IsNullable": true, "IsMissable": true }, { "FieldName": "nestier", "FieldType": "UserType_nam [...]
+{ "d": { "DataverseName": "hanging", "DatatypeName": "UserType_name_nestier", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "bar", "FieldType": "int64", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "Tue Mar 21 11:21:48 PDT 2023" } }
+{ "d": { "DataverseName": "hanging", "DatatypeName": "UserType_name_nesty", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": "Tue Mar 21 11:21:48 PDT 2023" } }
+{ "d": { "DataverseName": "hanging", "DatatypeName": "UserType_phone", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "UserType_phone_Item" }, "Timestamp": "Tue Mar 21 11:21:48 PDT 2023" } }
+{ "d": { "DataverseName": "hanging", "DatatypeName": "UserType_phone_Item", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "number", "FieldType": "string", "IsNullable": true, "IsMissable": true }, { "FieldName": "kind", "FieldType": "string", "IsNullable": true, "IsMissable": true }, { "FieldName": "nesty", "FieldType": "UserType_phone_Item_nesty", "IsNullable": true, "IsMissable": true }, { "FieldName": "nestier", "FieldType":  [...]
+{ "d": { "DataverseName": "hanging", "DatatypeName": "UserType_phone_Item_nestier", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "bar", "FieldType": "int64", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "Tue Mar 21 11:21:48 PDT 2023" } }
+{ "d": { "DataverseName": "hanging", "DatatypeName": "UserType_phone_Item_nesty", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": "Tue Mar 21 11:21:48 PDT 2023" } }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.005.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/ddl/drop-anonymous-nested-types/drop-anonymous-nested-types.005.adm
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
index 98a11cec0b..241e65e935 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
@@ -4369,6 +4369,11 @@
         <expected-error>Parameter invalid_date cannot be set</expected-error>
       </compilation-unit>
     </test-case>
+    <test-case FilePath="ddl">
+      <compilation-unit name="drop-anonymous-nested-types">
+        <output-dir compare="Text">drop-anonymous-nested-types</output-dir>
+      </compilation-unit>
+    </test-case>
   </test-group>
   <test-group name="dml">
     <test-case FilePath="dml">
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataNode.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataNode.java
index 87f5129ef4..2195f88cba 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataNode.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataNode.java
@@ -106,9 +106,11 @@ import org.apache.asterix.metadata.valueextractors.TupleCopyValueExtractor;
 import org.apache.asterix.om.base.AInt32;
 import org.apache.asterix.om.base.AMutableString;
 import org.apache.asterix.om.base.AString;
+import org.apache.asterix.om.typecomputer.impl.TypeComputeUtils;
 import org.apache.asterix.om.types.ARecordType;
 import org.apache.asterix.om.types.ATypeTag;
 import org.apache.asterix.om.types.AUnionType;
+import org.apache.asterix.om.types.AbstractCollectionType;
 import org.apache.asterix.om.types.AbstractComplexType;
 import org.apache.asterix.om.types.BuiltinType;
 import org.apache.asterix.om.types.IAType;
@@ -1483,15 +1485,20 @@ public class MetadataNode implements IMetadataNode {
             ARecordType recType = (ARecordType) parentType.getDatatype();
             subTypes = Arrays.asList(recType.getFieldTypes());
         } else if (parentType.getDatatype().getTypeTag() == ATypeTag.UNION) {
-            AUnionType recType = (AUnionType) parentType.getDatatype();
-            subTypes = recType.getUnionList();
+            AUnionType unionType = (AUnionType) parentType.getDatatype();
+            subTypes = unionType.getUnionList();
+        } else if (parentType.getDatatype().getTypeTag() == ATypeTag.ARRAY
+                || parentType.getDatatype().getTypeTag() == ATypeTag.MULTISET) {
+            AbstractCollectionType collType = (AbstractCollectionType) parentType.getDatatype();
+            subTypes = List.of(collType.getItemType());
         }
 
         List<String> nestedTypes = new ArrayList<>();
         if (subTypes != null) {
             for (IAType subType : subTypes) {
-                if (!(subType instanceof BuiltinType)) {
-                    nestedTypes.add(subType.getTypeName());
+                IAType actualType = TypeComputeUtils.getActualType(subType);
+                if (!(actualType instanceof BuiltinType)) {
+                    nestedTypes.add(actualType.getTypeName());
                 }
             }
         }


[asterixdb] 03/03: Multiple fixes for columnar datasets

Posted by im...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

imaxon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git

commit ea67b5143d56b792d6a2ab7c0bd9ca460d1d323c
Author: Wail Alkowaileet <wa...@gmail.com>
AuthorDate: Thu Mar 23 14:03:56 2023 -0700

    Multiple fixes for columnar datasets
    
    - user model changes: no
    - storage format changes: no
    - interface changes: no
    
    Details:
    This patch fixes multiple issues for columnar datasets, namely:
      - ASTERIXDB-3149: upsert failure due to projecting
        unassembled records.
      - ASTERIXDB-3150: rebalance failure also due to projecting
        unassembled records.
      - ASTERIXDB-3151: ColumnManagerFactory fails to instatiate
        when composite PKs are declared.
    
    Change-Id: I48195086802efe931b1ebb79f59a072807118cbc
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17441
    Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Reviewed-by: Wail Alkowaileet <wa...@gmail.com>
    Reviewed-by: Murtadha Hubail <mh...@apache.org>
---
 .../org/apache/asterix/utils/RebalanceUtil.java    |  38 +-
 .../asterix/app/bootstrap/TestNodeController.java  |  11 +-
 .../column/rebalance/rebalance.01.ddl.sqlpp        |  68 +++
 .../rebalance.02.update.sqlpp}                     |  10 +-
 .../rebalance.03.query.sqlpp}                      |  24 +-
 .../rebalance.04.post.http}                        |   4 +-
 .../rebalance.05.get.http}                         |   4 +-
 .../rebalance.06.get.http}                         |   4 +-
 .../rebalance.07.query.sqlpp}                      |  24 +-
 .../rebalance.08.query.sqlpp}                      |   9 +-
 .../rebalance.09.query.sqlpp}                      |   9 +-
 .../rebalance.10.post.http}                        |   5 +-
 .../rebalance.11.get.http}                         |   4 +-
 .../rebalance.12.get.http}                         |   4 +-
 .../rebalance.13.query.sqlpp}                      |  24 +-
 .../rebalance.14.query.sqlpp}                      |   9 +-
 .../rebalance.15.query.sqlpp}                      |   9 +-
 .../rebalance.16.query.sqlpp}                      |   9 +-
 .../use-case-1/use-case-1.01.ddl.sqlpp}            |  26 +-
 .../use-case-1/use-case-1.02.update.sqlpp          | 272 +++++++++++
 .../use-case-1/use-case-1.03.query.sqlpp}          |  10 +-
 .../array-index/use-case-1/use-case-1.04.get.http} |   2 +-
 .../use-case-1/use-case-1.05.query.sqlpp}          |  10 +-
 .../use-case-1/use-case-1.06.update.sqlpp}         |   5 +-
 .../use-case-1/use-case-1.07.query.sqlpp}          |  10 +-
 .../array-index/use-case-1/use-case-1.08.get.http} |   2 +-
 .../use-case-1/use-case-1.09.query.sqlpp}          |  10 +-
 .../use-case-1/use-case-1.10.update.sqlpp          | 276 ++++++++++++
 .../use-case-1/use-case-1.11.query.sqlpp}          |  10 +-
 .../array-index/use-case-1/use-case-1.12.get.http} |   2 +-
 .../use-case-1/use-case-1.13.query.sqlpp}          |  10 +-
 .../use-case-2/use-case-2.01.ddl.sqlpp}            |  27 +-
 .../use-case-2/use-case-2.02.update.sqlpp          | 497 +++++++++++++++++++++
 .../use-case-2/use-case-2.03.query.sqlpp}          |  10 +-
 .../array-index/use-case-2/use-case-2.04.get.http} |   2 +-
 .../use-case-2/use-case-2.05.query.sqlpp}          |  10 +-
 .../use-case-2/use-case-2.06.update.sqlpp}         |   5 +-
 .../use-case-2/use-case-2.07.query.sqlpp}          |  10 +-
 .../array-index/use-case-2/use-case-2.08.get.http} |   2 +-
 .../use-case-2/use-case-2.09.query.sqlpp}          |  10 +-
 .../use-case-2/use-case-2.10.update.sqlpp          | 497 +++++++++++++++++++++
 .../use-case-2/use-case-2.11.query.sqlpp}          |  10 +-
 .../array-index/use-case-2/use-case-2.12.get.http} |   2 +-
 .../use-case-2/use-case-2.13.query.sqlpp}          |  10 +-
 .../use-case-3/use-case-3.01.ddl.sqlpp}            |  27 +-
 .../use-case-3/use-case-3.02.update.sqlpp          | 276 ++++++++++++
 .../use-case-3/use-case-3.03.query.sqlpp}          |  10 +-
 .../array-index/use-case-3/use-case-3.04.get.http} |   2 +-
 .../use-case-3/use-case-3.05.query.sqlpp}          |  10 +-
 .../use-case-3/use-case-3.06.update.sqlpp}         |   5 +-
 .../use-case-3/use-case-3.07.query.sqlpp}          |  10 +-
 .../array-index/use-case-3/use-case-3.08.get.http} |   2 +-
 .../use-case-3/use-case-3.09.query.sqlpp}          |  10 +-
 .../use-case-3/use-case-3.10.update.sqlpp          | 276 ++++++++++++
 .../use-case-3/use-case-3.11.query.sqlpp}          |  10 +-
 .../array-index/use-case-3/use-case-3.12.get.http} |   2 +-
 .../use-case-3/use-case-3.13.query.sqlpp}          |  10 +-
 .../use-case-4/use-case-4.01.ddl.sqlpp}            |  27 +-
 .../use-case-4/use-case-4.02.update.sqlpp          | 425 ++++++++++++++++++
 .../use-case-4/use-case-4.03.query.sqlpp}          |  10 +-
 .../array-index/use-case-4/use-case-4.04.get.http} |   2 +-
 .../use-case-4/use-case-4.05.query.sqlpp}          |  10 +-
 .../use-case-4/use-case-4.06.update.sqlpp}         |   5 +-
 .../use-case-4/use-case-4.07.query.sqlpp}          |  10 +-
 .../array-index/use-case-4/use-case-4.08.get.http} |   2 +-
 .../use-case-4/use-case-4.09.query.sqlpp}          |  10 +-
 .../use-case-4/use-case-4.10.update.sqlpp          | 425 ++++++++++++++++++
 .../use-case-4/use-case-4.11.query.sqlpp}          |  10 +-
 .../array-index/use-case-4/use-case-4.12.get.http} |   2 +-
 .../use-case-4/use-case-4.13.query.sqlpp}          |  10 +-
 .../with-additional-atomic-index.01.ddl.sqlpp      |  40 ++
 .../with-additional-atomic-index.02.update.sqlpp   | 302 +++++++++++++
 .../with-additional-atomic-index.03.query.sqlpp}   |  10 +-
 .../with-additional-atomic-index.04.get.http}      |   2 +-
 .../with-additional-atomic-index.05.query.sqlpp}   |  10 +-
 .../with-additional-atomic-index.06.update.sqlpp}  |   5 +-
 .../with-additional-atomic-index.07.query.sqlpp}   |  10 +-
 .../with-additional-atomic-index.08.get.http}      |   2 +-
 .../with-additional-atomic-index.09.query.sqlpp}   |  10 +-
 .../with-additional-atomic-index.10.update.sqlpp   | 306 +++++++++++++
 .../with-additional-atomic-index.11.query.sqlpp}   |  10 +-
 .../with-additional-atomic-index.12.get.http}      |   2 +-
 .../with-additional-atomic-index.13.query.sqlpp}   |  10 +-
 .../with-composite-sk.01.ddl.sqlpp}                |  28 +-
 .../with-composite-sk.02.update.sqlpp              | 306 +++++++++++++
 .../with-composite-sk.03.query.sqlpp}              |  12 +-
 .../with-composite-sk.04.get.http}                 |   2 +-
 .../with-composite-sk.05.query.sqlpp}              |  12 +-
 .../with-composite-sk.06.update.sqlpp}             |   5 +-
 .../with-composite-sk.07.query.sqlpp}              |  12 +-
 .../with-composite-sk.08.get.http}                 |   2 +-
 .../with-composite-sk.09.query.sqlpp}              |  12 +-
 .../with-composite-sk.10.update.sqlpp              | 306 +++++++++++++
 .../with-composite-sk.11.query.sqlpp}              |  12 +-
 .../with-composite-sk.12.get.http}                 |   2 +-
 .../with-composite-sk.13.query.sqlpp}              |  12 +-
 .../after-bulkload/after-bulkload.001.ddl.sqlpp}   |  16 +-
 .../after-bulkload.002.update.sqlpp}               |   9 +-
 .../after-bulkload/after-bulkload.003.query.sqlpp} |  11 +-
 .../after-bulkload/after-bulkload.004.query.sqlpp} |  10 +-
 .../after-bulkload/after-bulkload.005.ddl.sqlpp}   |   8 +-
 .../after-bulkload/after-bulkload.006.query.sqlpp} |  11 +-
 .../after-bulkload/after-bulkload.007.query.sqlpp} |  10 +-
 .../after-insert/after-insert.001.ddl.sqlpp}       |  15 +-
 .../after-insert/after-insert.002.update.sqlpp     | 272 +++++++++++
 .../after-insert/after-insert.003.query.sqlpp}     |  11 +-
 .../after-insert/after-insert.004.query.sqlpp}     |  10 +-
 .../after-insert/after-insert.005.ddl.sqlpp}       |   8 +-
 .../after-insert/after-insert.006.query.sqlpp}     |  11 +-
 .../after-insert/after-insert.007.query.sqlpp}     |  10 +-
 .../after-insert-with-meta.001.ddl.sqlpp           |  69 +++
 .../after-upsert-with-meta.002.update.sqlpp}       |   7 +-
 .../after-upsert-with-meta.003.get.http}           |   5 +-
 .../after-upsert-with-meta.004.ddl.sqlpp}          |   3 +-
 .../after-upsert-with-meta.005.query.sqlpp}        |   8 +-
 .../after-upsert-with-meta.006.query.sqlpp}        |   8 +-
 .../after-upsert-with-meta.007.update.sqlpp}       |   7 +-
 .../after-upsert-with-meta.008.get.http}           |   5 +-
 .../after-upsert-with-meta.009.query.sqlpp}        |   8 +-
 .../after-upsert-with-meta.010.query.sqlpp}        |   8 +-
 .../after-upsert-with-meta.011.update.sqlpp}       |   2 +-
 .../after-upsert-with-meta.012.get.http}           |   5 +-
 .../after-upsert-with-meta.013.query.sqlpp}        |   8 +-
 .../after-upsert-with-meta.014.query.sqlpp}        |   8 +-
 .../index-with-meta/index-with-meta.001.ddl.sqlpp  |  72 +++
 .../index-with-meta.002.update.sqlpp}              |   7 +-
 .../index-with-meta.003.query.sqlpp}               |   8 +-
 .../index-with-meta.004.query.sqlpp}               |   5 +-
 .../index-with-meta.005.query.sqlpp}               |   5 +-
 .../index-with-meta.006.query.sqlpp}               |   5 +-
 .../index-with-meta.007.query.sqlpp}               |   5 +-
 .../index-with-meta.008.query.sqlpp}               |   8 +-
 .../index-with-meta.009.query.sqlpp}               |   9 +-
 .../index-with-meta.010.query.sqlpp}               |   9 +-
 .../index-with-meta/index-with-meta.011.get.http}  |   5 +-
 .../index-with-meta.012.query.sqlpp}               |   8 +-
 .../index-with-meta.013.query.sqlpp}               |   5 +-
 .../index-with-meta.014.query.sqlpp}               |   5 +-
 .../index-with-meta.015.query.sqlpp}               |   5 +-
 .../index-with-meta.016.query.sqlpp}               |   5 +-
 .../index-with-meta.017.query.sqlpp}               |   8 +-
 .../index-with-meta.018.query.sqlpp}               |   9 +-
 .../index-with-meta.019.query.sqlpp}               |   9 +-
 .../index-with-meta.020.update.sqlpp}              |   7 +-
 .../index-with-meta.021.query.sqlpp}               |   5 +-
 .../index-with-meta.022.query.sqlpp}               |   8 +-
 .../index-with-meta/index-with-meta.023.get.http}  |   5 +-
 .../index-with-meta.024.query.sqlpp}               |   5 +-
 .../index-with-meta.025.query.sqlpp}               |   8 +-
 .../001.001.ddl.sqlpp}                             |   0
 .../001.002.update.sqlpp}                          |   0
 .../001.003.query.sqlpp}                           |   0
 .../{upsert.004.get.http => 001/001.004.get.http}  |   0
 .../001.005.query.sqlpp}                           |   0
 .../001.006.update.sqlpp}                          |   0
 .../001.007.query.sqlpp}                           |   0
 .../{upsert.008.get.http => 001/001.008.get.http}  |   0
 .../001.009.query.sqlpp}                           |   0
 .../001.010.update.sqlpp}                          |   0
 .../001.011.query.sqlpp}                           |   0
 .../{upsert.012.get.http => 001/001.012.get.http}  |   0
 .../001.013.query.sqlpp}                           |   0
 .../001.014.update.sqlpp}                          |   0
 .../{upsert.015.get.http => 001/001.015.get.http}  |   0
 .../001.016.query.sqlpp}                           |   0
 .../002.001.ddl.sqlpp}                             |   0
 .../002.002.update.sqlpp}                          |   8 +-
 .../002.003.query.sqlpp}                           |   0
 .../{upsert.004.get.http => 002/002.004.get.http}  |   0
 .../002.005.query.sqlpp}                           |   0
 .../002.006.update.sqlpp}                          |   4 +-
 .../002.007.query.sqlpp}                           |   2 +-
 .../{upsert.004.get.http => 002/002.008.get.http}  |   0
 .../002.009.query.sqlpp}                           |   2 +-
 .../002.010.update.sqlpp}                          |   0
 .../002.011.query.sqlpp}                           |   0
 .../results/column/rebalance/rebalance.03.adm      |   5 +
 .../results/column/rebalance/rebalance.04.adm      |   1 +
 .../results/column/rebalance/rebalance.05.adm      |   1 +
 .../results/column/rebalance/rebalance.06.adm      |   1 +
 .../results/column/rebalance/rebalance.07.adm      |   5 +
 .../results/column/rebalance/rebalance.08.adm      |   1 +
 .../results/column/rebalance/rebalance.09.adm      |   1 +
 .../results/column/rebalance/rebalance.10.adm      |   1 +
 .../results/column/rebalance/rebalance.11.adm      |   1 +
 .../results/column/rebalance/rebalance.12.adm      |   1 +
 .../results/column/rebalance/rebalance.13.adm      |   5 +
 .../results/column/rebalance/rebalance.14.adm      |   1 +
 .../results/column/rebalance/rebalance.15.adm      |   1 +
 .../results/column/rebalance/rebalance.16.adm      |   1 +
 .../array-index/use-case-1/use-case-1.03.adm       |   1 +
 .../array-index/use-case-1/use-case-1.04.adm       |   1 +
 .../array-index/use-case-1/use-case-1.05.adm       |   1 +
 .../array-index/use-case-1/use-case-1.07.adm       |   1 +
 .../array-index/use-case-1/use-case-1.08.adm       |   1 +
 .../array-index/use-case-1/use-case-1.09.adm       |   1 +
 .../array-index/use-case-1/use-case-1.11.adm       |   1 +
 .../array-index/use-case-1/use-case-1.12.adm       |   1 +
 .../array-index/use-case-1/use-case-1.13.adm       |   1 +
 .../array-index/use-case-2/use-case-2.03.adm       |   1 +
 .../array-index/use-case-2/use-case-2.04.adm       |   1 +
 .../array-index/use-case-2/use-case-2.05.adm       |   1 +
 .../array-index/use-case-2/use-case-2.07.adm       |   1 +
 .../array-index/use-case-2/use-case-2.08.adm       |   1 +
 .../array-index/use-case-2/use-case-2.09.adm       |   1 +
 .../array-index/use-case-2/use-case-2.11.adm       |   1 +
 .../array-index/use-case-2/use-case-2.12.adm       |   1 +
 .../array-index/use-case-2/use-case-2.13.adm       |   1 +
 .../array-index/use-case-3/use-case-3.03.adm       |   1 +
 .../array-index/use-case-3/use-case-3.04.adm       |   1 +
 .../array-index/use-case-3/use-case-3.05.adm       |   1 +
 .../array-index/use-case-3/use-case-3.07.adm       |   1 +
 .../array-index/use-case-3/use-case-3.08.adm       |   1 +
 .../array-index/use-case-3/use-case-3.09.adm       |   1 +
 .../array-index/use-case-3/use-case-3.11.adm       |   1 +
 .../array-index/use-case-3/use-case-3.12.adm       |   1 +
 .../array-index/use-case-3/use-case-3.13.adm       |   1 +
 .../array-index/use-case-4/use-case-4.03.adm       |   1 +
 .../array-index/use-case-4/use-case-4.04.adm       |   1 +
 .../array-index/use-case-4/use-case-4.05.adm       |   1 +
 .../array-index/use-case-4/use-case-4.07.adm       |   1 +
 .../array-index/use-case-4/use-case-4.08.adm       |   1 +
 .../array-index/use-case-4/use-case-4.09.adm       |   1 +
 .../array-index/use-case-4/use-case-4.11.adm       |   1 +
 .../array-index/use-case-4/use-case-4.12.adm       |   1 +
 .../array-index/use-case-4/use-case-4.13.adm       |   1 +
 .../with-additional-atomic-index.03.adm            |   1 +
 .../with-additional-atomic-index.04.adm            |   1 +
 .../with-additional-atomic-index.05.adm            |   1 +
 .../with-additional-atomic-index.07.adm            |   1 +
 .../with-additional-atomic-index.08.adm            |   1 +
 .../with-additional-atomic-index.09.adm            |   1 +
 .../with-additional-atomic-index.11.adm            |   1 +
 .../with-additional-atomic-index.12.adm            |   1 +
 .../with-additional-atomic-index.13.adm            |   1 +
 .../with-composite-sk/with-composite-sk.03.adm     |   1 +
 .../with-composite-sk/with-composite-sk.04.adm     |   1 +
 .../with-composite-sk/with-composite-sk.05.adm     |   1 +
 .../with-composite-sk/with-composite-sk.07.adm     |   1 +
 .../with-composite-sk/with-composite-sk.08.adm     |   1 +
 .../with-composite-sk/with-composite-sk.09.adm     |   1 +
 .../with-composite-sk/with-composite-sk.11.adm     |   1 +
 .../with-composite-sk/with-composite-sk.12.adm     |   1 +
 .../with-composite-sk/with-composite-sk.13.adm     |   1 +
 .../after-bulkload/after-bulkload.003.adm          |   1 +
 .../after-bulkload/after-bulkload.004.adm          |   1 +
 .../after-bulkload/after-bulkload.006.adm          |   1 +
 .../after-bulkload/after-bulkload.007.adm          |   1 +
 .../create-index/after-insert/after-insert.003.adm |   1 +
 .../create-index/after-insert/after-insert.004.adm |   1 +
 .../create-index/after-insert/after-insert.006.adm |   1 +
 .../create-index/after-insert/after-insert.007.adm |   1 +
 .../after-upsert-with-meta.003.adm                 |   1 +
 .../after-upsert-with-meta.005.adm                 |   4 +
 .../after-upsert-with-meta.006.adm                 |   1 +
 .../after-upsert-with-meta.008.adm                 |   1 +
 .../after-upsert-with-meta.009.adm                 |   5 +
 .../after-upsert-with-meta.010.adm                 |   2 +
 .../after-upsert-with-meta.012.adm                 |   1 +
 .../after-upsert-with-meta.013.adm                 |   5 +
 .../after-upsert-with-meta.014.adm                 |   2 +
 .../index-with-meta/index-with-meta.003.adm        |   4 +
 .../index-with-meta/index-with-meta.004.adm        |   6 +
 .../index-with-meta/index-with-meta.005.adm        |   7 +
 .../index-with-meta/index-with-meta.006.adm        |   2 +
 .../index-with-meta/index-with-meta.007.adm        |   3 +
 .../index-with-meta/index-with-meta.008.adm        |   2 +
 .../index-with-meta/index-with-meta.009.adm        |   1 +
 .../index-with-meta/index-with-meta.010.adm        |   1 +
 .../index-with-meta/index-with-meta.011.adm        |   1 +
 .../index-with-meta/index-with-meta.012.adm        |   4 +
 .../index-with-meta/index-with-meta.013.adm        |   6 +
 .../index-with-meta/index-with-meta.014.adm        |   7 +
 .../index-with-meta/index-with-meta.015.adm        |   2 +
 .../index-with-meta/index-with-meta.016.adm        |   3 +
 .../index-with-meta/index-with-meta.017.adm        |   2 +
 .../index-with-meta/index-with-meta.018.adm        |   1 +
 .../index-with-meta/index-with-meta.019.adm        |   1 +
 .../index-with-meta/index-with-meta.021.adm        |   2 +
 .../index-with-meta/index-with-meta.022.adm        |   2 +
 .../index-with-meta/index-with-meta.023.adm        |   1 +
 .../index-with-meta/index-with-meta.024.adm        |   2 +
 .../index-with-meta/index-with-meta.025.adm        |   2 +
 .../results/column/upsert/{ => 001}/upsert.003.adm |   0
 .../results/column/upsert/{ => 001}/upsert.004.adm |   0
 .../results/column/upsert/{ => 001}/upsert.005.adm |   0
 .../results/column/upsert/{ => 001}/upsert.007.adm |   0
 .../results/column/upsert/{ => 001}/upsert.008.adm |   0
 .../results/column/upsert/{ => 001}/upsert.009.adm |   0
 .../results/column/upsert/{ => 001}/upsert.011.adm |   0
 .../results/column/upsert/{ => 001}/upsert.012.adm |   0
 .../results/column/upsert/{ => 001}/upsert.013.adm |   0
 .../results/column/upsert/{ => 001}/upsert.015.adm |   0
 .../results/column/upsert/{ => 001}/upsert.016.adm |   0
 .../results/column/upsert/002/upsert.003.adm       |   5 +
 .../results/column/upsert/{ => 002}/upsert.004.adm |   0
 .../results/column/upsert/002/upsert.005.adm       |   5 +
 .../results/column/upsert/002/upsert.007.adm       |   5 +
 .../results/column/upsert/{ => 002}/upsert.008.adm |   0
 .../results/column/upsert/002/upsert.009.adm       |   5 +
 .../results/column/upsert/002/upsert.011.adm       |   5 +
 .../test/resources/runtimets/testsuite_sqlpp.xml   |  64 ++-
 .../asterix/column/ColumnManagerFactory.java       |  18 +-
 .../create/PrimaryScanColumnTupleProjector.java    |  54 +++
 .../PrimaryScanColumnTupleProjectorFactory.java    |  50 +++
 .../PrimaryScanColumnTupleWithMetaProjector.java   |  55 +++
 .../upsert/UpsertPreviousColumnTupleProjector.java |  57 +++
 .../UpsertPreviousColumnTupleProjectorFactory.java |  50 +++
 ...UpsertPreviousColumnTupleWithMetaProjector.java |  59 +++
 .../operation/query/QueryColumnMetadata.java       |   3 +-
 .../operation/query/QueryColumnTupleProjector.java |   4 +-
 .../query/QueryColumnWithMetaTupleProjector.java   |   4 +-
 .../util/ColumnSecondaryIndexSchemaUtil.java       | 118 +++++
 .../RepeatedPrimitiveColumnValuesReader.java       |  12 +
 .../apache/asterix/metadata/entities/Index.java    |  20 +-
 .../apache/asterix/metadata/utils/DatasetUtil.java | 124 +++--
 .../apache/asterix/metadata/utils/IndexUtil.java   |  25 ++
 .../SecondaryArrayIndexBTreeOperationsHelper.java  |   8 +-
 .../utils/SecondaryBTreeOperationsHelper.java      |  38 +-
 .../utils/SecondaryIndexOperationsHelper.java      |  16 +-
 .../typecomputer/impl/RecordMergeTypeComputer.java |  27 +-
 .../LSMPrimaryUpsertOperatorDescriptor.java        |  11 +-
 .../LSMPrimaryUpsertOperatorNodePushable.java      |  17 +-
 .../am/common/impls/NoOpTupleProjector.java        |  27 +-
 .../am/common/impls/NoOpTupleProjectorFactory.java |  26 +-
 .../impls/btree/ColumnBTreeRangeSearchCursor.java  |  23 +-
 326 files changed, 6301 insertions(+), 661 deletions(-)

diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java
index ba6c602fa6..da72d2cf0a 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java
@@ -47,8 +47,10 @@ import org.apache.asterix.metadata.entities.Dataset;
 import org.apache.asterix.metadata.entities.Index;
 import org.apache.asterix.metadata.utils.DatasetUtil;
 import org.apache.asterix.metadata.utils.IndexUtil;
+import org.apache.asterix.om.types.ARecordType;
 import org.apache.asterix.rebalance.IDatasetRebalanceCallback;
 import org.apache.asterix.runtime.job.listener.JobEventListenerFactory;
+import org.apache.asterix.runtime.projection.DataProjectionFiltrationInfo;
 import org.apache.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraint;
 import org.apache.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraintHelper;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
@@ -63,6 +65,7 @@ import org.apache.hyracks.api.job.JobSpecification;
 import org.apache.hyracks.dataflow.common.data.partition.FieldHashPartitionComputerFactory;
 import org.apache.hyracks.dataflow.std.connectors.MToNPartitioningConnectorDescriptor;
 import org.apache.hyracks.dataflow.std.connectors.OneToOneConnectorDescriptor;
+import org.apache.hyracks.storage.common.projection.ITupleProjectorFactory;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
@@ -80,16 +83,11 @@ public class RebalanceUtil {
     /**
      * Rebalances an existing dataset to a list of target nodes.
      *
-     * @param dataverseName,
-     *            the dataverse name.
-     * @param datasetName,
-     *            the dataset name.
-     * @param targetNcNames,
-     *            the list of target nodes.
-     * @param metadataProvider,
-     *            the metadata provider.
-     * @param hcc,
-     *            the reusable hyracks connection.
+     * @param dataverseName,    the dataverse name.
+     * @param datasetName,      the dataset name.
+     * @param targetNcNames,    the list of target nodes.
+     * @param metadataProvider, the metadata provider.
+     * @param hcc,              the reusable hyracks connection.
      * @throws Exception
      */
     public static void rebalance(DataverseName dataverseName, String datasetName, Set<String> targetNcNames,
@@ -301,8 +299,12 @@ public class RebalanceUtil {
         // The pipeline starter.
         IOperatorDescriptor starter = DatasetUtil.createDummyKeyProviderOp(spec, source, metadataProvider);
 
+        // Tuple projector
+        // TODO is there a way to avoid assembling the records for columnar datasets?
+        ITupleProjectorFactory projectorFactory = createTupleProjectorFactory(source, metadataProvider);
         // Creates primary index scan op.
-        IOperatorDescriptor primaryScanOp = DatasetUtil.createPrimaryIndexScanOp(spec, metadataProvider, source);
+        IOperatorDescriptor primaryScanOp =
+                DatasetUtil.createPrimaryIndexScanOp(spec, metadataProvider, source, projectorFactory);
 
         // Creates secondary BTree upsert op.
         IOperatorDescriptor upsertOp = createPrimaryIndexUpsertOp(spec, metadataProvider, source, target);
@@ -327,6 +329,20 @@ public class RebalanceUtil {
         JobUtils.runJob(hcc, spec, true);
     }
 
+    private static ITupleProjectorFactory createTupleProjectorFactory(Dataset source, MetadataProvider metadataProvider)
+            throws AlgebricksException {
+        ARecordType itemType =
+                (ARecordType) metadataProvider.findType(source.getItemTypeDataverseName(), source.getItemTypeName());
+        ARecordType metaType = DatasetUtil.getMetaType(metadataProvider, source);
+        int numberOfPrimaryKeys = source.getPrimaryKeys().size();
+
+        // This could be expensive if record structure is "complex"
+        ARecordType requestedType = DataProjectionFiltrationInfo.ALL_FIELDS_TYPE;
+
+        return IndexUtil.createPrimaryIndexScanTupleProjectorFactory(source.getDatasetFormatInfo(), requestedType,
+                itemType, metaType, numberOfPrimaryKeys);
+    }
+
     // Creates the primary index upsert operator for populating the target dataset.
     private static IOperatorDescriptor createPrimaryIndexUpsertOp(JobSpecification spec,
             MetadataProvider metadataProvider, Dataset source, Dataset target) throws AlgebricksException {
diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java
index 34696b1592..f6caf5d46e 100644
--- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java
+++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/app/bootstrap/TestNodeController.java
@@ -104,6 +104,7 @@ import org.apache.hyracks.storage.am.common.build.IndexBuilderFactory;
 import org.apache.hyracks.storage.am.common.dataflow.IIndexDataflowHelperFactory;
 import org.apache.hyracks.storage.am.common.dataflow.IndexDataflowHelperFactory;
 import org.apache.hyracks.storage.am.common.impls.NoOpOperationCallbackFactory;
+import org.apache.hyracks.storage.am.common.impls.NoOpTupleProjectorFactory;
 import org.apache.hyracks.storage.am.common.ophelpers.IndexOperation;
 import org.apache.hyracks.storage.am.lsm.common.api.IFrameOperationCallbackFactory;
 import org.apache.hyracks.storage.am.lsm.common.api.ILSMMergePolicyFactory;
@@ -718,7 +719,7 @@ public class TestNodeController {
                 Integer indicator = primaryKeyIndicators.get(i);
                 String[] fieldNames =
                         indicator == Index.RECORD_INDICATOR ? recordType.getFieldNames() : metaType.getFieldNames();
-                keyFieldNames.add(Arrays.asList(fieldNames[primaryKeyIndexes[i]]));
+                keyFieldNames.add(Collections.singletonList(fieldNames[primaryKeyIndexes[i]]));
             }
             index = Index.createPrimaryIndex(dataset.getDataverseName(), dataset.getDatasetName(), keyFieldNames,
                     primaryKeyIndicators, keyFieldTypes, MetadataUtil.PENDING_NO_OP);
@@ -809,10 +810,10 @@ public class TestNodeController {
                 new LSMPrimaryUpsertOperatorNodePushable(ctx, ctx.getTaskAttemptId().getTaskId().getPartition(),
                         indexHelperFactory, primaryIndexInfo.primaryIndexInsertFieldsPermutations,
                         recordDescProvider.getInputRecordDescriptor(new ActivityId(new OperatorDescriptorId(0), 0), 0),
-                        modificationCallbackFactory, searchCallbackFactory, keyIndexes.length,
-                        0, recordType, -1, frameOpCallbackFactory == null
-                                ? dataset.getFrameOpCallbackFactory(mdProvider) : frameOpCallbackFactory,
-                        MissingWriterFactory.INSTANCE, hasSecondaries);
+                        modificationCallbackFactory, searchCallbackFactory, keyIndexes.length, 0, recordType, -1,
+                        frameOpCallbackFactory == null ? dataset.getFrameOpCallbackFactory(mdProvider)
+                                : frameOpCallbackFactory,
+                        MissingWriterFactory.INSTANCE, hasSecondaries, NoOpTupleProjectorFactory.INSTANCE);
         RecordDescriptor upsertOutRecDesc = getUpsertOutRecDesc(primaryIndexInfo.rDesc, dataset,
                 filterFields == null ? 0 : filterFields.length, recordType, metaType);
         // fix pk fields
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.01.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.01.ddl.sqlpp
new file mode 100644
index 0000000000..490f48f10d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.01.ddl.sqlpp
@@ -0,0 +1,68 @@
+/*
+ * 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 tpch1 IF EXISTS;
+CREATE DATAVERSE tpch1;
+
+DROP DATAVERSE tpch2 IF EXISTS;
+CREATE DATAVERSE tpch2;
+
+
+CREATE TYPE tpch1.LineItemType AS
+ CLOSED {
+  l_orderkey : bigint,
+  l_partkey : bigint,
+  l_suppkey : bigint,
+  l_linenumber : bigint,
+  l_quantity : double,
+  l_extendedprice : double,
+  l_discount : double,
+  l_tax : double,
+  l_returnflag : string,
+  l_linestatus : string,
+  l_shipdate : string,
+  l_commitdate : string,
+  l_receiptdate : string,
+  l_shipinstruct : string,
+  l_shipmode : string,
+  l_comment : string
+};
+
+CREATE TYPE tpch2.OrderType AS
+ CLOSED {
+  o_orderkey : bigint,
+  o_custkey : bigint,
+  o_orderstatus : string,
+  o_totalprice : double,
+  o_orderdate : string,
+  o_orderpriority : string,
+  o_clerk : string,
+  o_shippriority : bigint,
+  o_comment : string
+};
+
+CREATE DATASET tpch1.LineItem(LineItemType)
+PRIMARY KEY l_orderkey,l_linenumber WITH {
+    "storage-format" : {"format" : "column"}
+};
+
+CREATE DATASET tpch2.Orders(OrderType)
+PRIMARY key o_orderkey WITH {
+    "storage-format" : {"format" : "column"}
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.02.update.sqlpp
similarity index 72%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.002.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.02.update.sqlpp
index a078d7fe70..e3f9c31041 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.002.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.02.update.sqlpp
@@ -17,10 +17,8 @@
  * under the License.
  */
 
-USE test;
+LOAD DATASET tpch1.LineItem USING localfs ((`path`=`asterix_nc1://data/tpch0.001/lineitem.tbl`),
+      (`format`=`delimited-text`), (`delimiter`=`|`));
 
-INSERT INTO ColumnDataset (
-    {"id": 1, "val": "1", "array": [10, 20, 30]},
-    {"id": 2, "val": "2", "array": [40, 50, 60]},
-    {"id": 3, "val": "3", "array": [70, 80, 90]}
-);
\ No newline at end of file
+LOAD DATASET tpch2.Orders USING localfs ((`path`=`asterix_nc1://data/tpch0.001/orders.tbl`),
+      (`format`=`delimited-text`), (`delimiter`=`|`));
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.03.query.sqlpp
similarity index 69%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.03.query.sqlpp
index a271778586..a30c37441e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.03.query.sqlpp
@@ -17,15 +17,19 @@
  * under the License.
  */
 
-DROP DATAVERSE test if exists;
-CREATE DATAVERSE test;
-USE test;
 
-CREATE TYPE ColumnType AS {
-    id: int
-};
+WITH tmp AS
+(
+    SELECT DISTINCT l_orderkey
+    FROM  tpch1.LineItem
+    WHERE l_commitdate < l_receiptdate
+)
 
-CREATE DATASET ColumnDataset(ColumnType)
-PRIMARY KEY id WITH {
-    "storage-format": {"format" : "column"}
-};
\ No newline at end of file
+SELECT o.o_orderpriority AS order_priority, count(*) AS count
+FROM tpch2.Orders o
+JOIN tmp t
+ON t.l_orderkey = o.o_orderkey
+WHERE o.o_orderdate >= '1993-07-01' AND o.o_orderdate < '1993-10-01'
+GROUP BY o.o_orderpriority
+ORDER BY o.o_orderpriority
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.04.post.http
similarity index 94%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.04.post.http
index 075d204e2d..81c5e88ee0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.04.post.http
@@ -17,6 +17,6 @@
  * under the License.
  */
 
-USE test;
+# param targetNode=asterix_nc1
 
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+/admin/rebalance
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.05.get.http
similarity index 93%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.05.get.http
index 075d204e2d..e5fe87301e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.05.get.http
@@ -17,6 +17,4 @@
  * under the License.
  */
 
-USE test;
-
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+/connector?dataverseName=tpch1&datasetName=LineItem
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.06.get.http
similarity index 94%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.06.get.http
index 075d204e2d..6e444efdf4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.06.get.http
@@ -17,6 +17,4 @@
  * under the License.
  */
 
-USE test;
-
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+/connector?dataverseName=tpch2&datasetName=Orders
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.07.query.sqlpp
similarity index 69%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.07.query.sqlpp
index a271778586..a30c37441e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.07.query.sqlpp
@@ -17,15 +17,19 @@
  * under the License.
  */
 
-DROP DATAVERSE test if exists;
-CREATE DATAVERSE test;
-USE test;
 
-CREATE TYPE ColumnType AS {
-    id: int
-};
+WITH tmp AS
+(
+    SELECT DISTINCT l_orderkey
+    FROM  tpch1.LineItem
+    WHERE l_commitdate < l_receiptdate
+)
 
-CREATE DATASET ColumnDataset(ColumnType)
-PRIMARY KEY id WITH {
-    "storage-format": {"format" : "column"}
-};
\ No newline at end of file
+SELECT o.o_orderpriority AS order_priority, count(*) AS count
+FROM tpch2.Orders o
+JOIN tmp t
+ON t.l_orderkey = o.o_orderkey
+WHERE o.o_orderdate >= '1993-07-01' AND o.o_orderdate < '1993-10-01'
+GROUP BY o.o_orderpriority
+ORDER BY o.o_orderpriority
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.08.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.08.query.sqlpp
index 30d21cfd6c..257c273023 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.08.query.sqlpp
@@ -17,9 +17,6 @@
  * under the License.
  */
 
-USE test;
-
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT DatasetName, GroupName, rebalanceCount
+FROM Metadata.`Dataset`
+WHERE DatasetName = "LineItem";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.09.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.09.query.sqlpp
index 30d21cfd6c..af2085e0bd 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.09.query.sqlpp
@@ -17,9 +17,6 @@
  * under the License.
  */
 
-USE test;
-
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT DatasetName, GroupName, rebalanceCount
+FROM Metadata.`Dataset`
+WHERE DatasetName = "Orders";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.10.post.http
similarity index 91%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.10.post.http
index 075d204e2d..1606124423 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.10.post.http
@@ -17,6 +17,7 @@
  * under the License.
  */
 
-USE test;
+# param targetNode=asterix_nc1
+# param targetNode=asterix_nc2
 
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+/admin/rebalance
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.11.get.http
similarity index 93%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.11.get.http
index 075d204e2d..e5fe87301e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.11.get.http
@@ -17,6 +17,4 @@
  * under the License.
  */
 
-USE test;
-
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+/connector?dataverseName=tpch1&datasetName=LineItem
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.12.get.http
similarity index 94%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.12.get.http
index 075d204e2d..6e444efdf4 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.12.get.http
@@ -17,6 +17,4 @@
  * under the License.
  */
 
-USE test;
-
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+/connector?dataverseName=tpch2&datasetName=Orders
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.13.query.sqlpp
similarity index 69%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.13.query.sqlpp
index a271778586..a30c37441e 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.13.query.sqlpp
@@ -17,15 +17,19 @@
  * under the License.
  */
 
-DROP DATAVERSE test if exists;
-CREATE DATAVERSE test;
-USE test;
 
-CREATE TYPE ColumnType AS {
-    id: int
-};
+WITH tmp AS
+(
+    SELECT DISTINCT l_orderkey
+    FROM  tpch1.LineItem
+    WHERE l_commitdate < l_receiptdate
+)
 
-CREATE DATASET ColumnDataset(ColumnType)
-PRIMARY KEY id WITH {
-    "storage-format": {"format" : "column"}
-};
\ No newline at end of file
+SELECT o.o_orderpriority AS order_priority, count(*) AS count
+FROM tpch2.Orders o
+JOIN tmp t
+ON t.l_orderkey = o.o_orderkey
+WHERE o.o_orderdate >= '1993-07-01' AND o.o_orderdate < '1993-10-01'
+GROUP BY o.o_orderpriority
+ORDER BY o.o_orderpriority
+;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.14.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.14.query.sqlpp
index 30d21cfd6c..257c273023 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.14.query.sqlpp
@@ -17,9 +17,6 @@
  * under the License.
  */
 
-USE test;
-
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT DatasetName, GroupName, rebalanceCount
+FROM Metadata.`Dataset`
+WHERE DatasetName = "LineItem";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.15.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.15.query.sqlpp
index 30d21cfd6c..0505471887 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.15.query.sqlpp
@@ -17,9 +17,6 @@
  * under the License.
  */
 
-USE test;
-
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+select DatasetName, GroupName, rebalanceCount
+from Metadata.`Dataset`
+where DatasetName = "Orders";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.16.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.16.query.sqlpp
index 30d21cfd6c..2f3cc43331 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/rebalance/rebalance.16.query.sqlpp
@@ -17,9 +17,6 @@
  * under the License.
  */
 
-USE test;
-
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT DatasetName, GroupName, rebalanceCount
+FROM Metadata.`Dataset`
+WHERE DatasetName = "Dataset";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.01.ddl.sqlpp
similarity index 52%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.01.ddl.sqlpp
index a271778586..25e8290ab7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.01.ddl.sqlpp
@@ -17,15 +17,23 @@
  * under the License.
  */
 
-DROP DATAVERSE test if exists;
-CREATE DATAVERSE test;
-USE test;
+/*
+ * Description: Verify the following DML actions for an array->atomic index:
+ *     1) Insert into an empty index (non bulk-load operation), additionally with two records that have no array-index qualifying entries.
+ *     2) Delete all-but-one entry from the index.
+ *     3) Upsert all *original* (all records have qualifying array-index entries now) entries into the index.
+ */
+
+DROP DATAVERSE TestYelp IF EXISTS;
+CREATE DATAVERSE TestYelp;
+USE TestYelp;
+
+CREATE TYPE CheckinType AS {
+    business_id: string
+};
 
-CREATE TYPE ColumnType AS {
-    id: int
+CREATE DATASET YelpCheckin(CheckinType) PRIMARY KEY business_id WITH {
+    "storage-format" : {"format" : "column"}
 };
 
-CREATE DATASET ColumnDataset(ColumnType)
-PRIMARY KEY id WITH {
-    "storage-format": {"format" : "column"}
-};
\ No newline at end of file
+CREATE INDEX IdxYelpCheckinDates ON YelpCheckin (UNNEST dates : string ) EXCLUDE UNKNOWN KEY;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.02.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.02.update.sqlpp
new file mode 100644
index 0000000000..ba9a31bd4d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.02.update.sqlpp
@@ -0,0 +1,272 @@
+/*
+ * 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 TestYelp;
+
+INSERT INTO YelpCheckin (
+    [
+        {
+            "business_id": "--1UhMGODdWsrMastO9DZw",
+            "dates": [
+                "2016-04-26 19:49:16",
+                "2016-08-30 18:36:57",
+                "2016-10-15 02:45:18",
+                "2016-11-18 01:54:50",
+                "2017-04-20 18:39:06",
+                "2017-05-03 17:58:02",
+                "2019-03-19 22:04:48"
+            ]
+        },
+        {
+            "business_id": "--EF5N7P70J_UYBTPypYlA",
+            "dates": [
+                "2018-05-25 19:52:07",
+                "2018-09-18 16:09:44",
+                "2019-10-18 21:29:09"
+            ]
+        },
+        {
+            "business_id": "--Ni3oJ4VOqfOEu7Sj2Vzg",
+            "dates": [
+                "2019-06-07 17:54:58"
+            ]
+        },
+        {
+            "business_id": "--Y1Adl1YUWfYIRSd8vkmA",
+            "dates": [
+                "2011-05-03 20:54:05",
+                "2011-08-23 20:49:45",
+                "2014-12-04 06:13:01",
+                "2016-11-16 19:25:55"
+            ]
+        },
+        {
+            "business_id": "--YPwqIlRJrhHkJcjY3eiA",
+            "dates": [
+                "2016-06-18 21:35:45",
+                "2016-10-15 18:17:51"
+            ]
+        },
+        {
+            "business_id": "--e8PjCNhEz32pprnPhCwQ",
+            "dates": [
+                "2015-04-02 21:45:17"
+            ]
+        },
+        {
+            "business_id": "--kinfHwmtdjz03g8B8z8Q",
+            "dates": [
+                "2014-08-27 17:49:18",
+                "2015-12-19 21:30:31",
+                "2018-11-27 15:53:50"
+            ]
+        },
+        {
+            "business_id": "--q6datkI-f0EoVheXNEeQ",
+            "dates": [
+                "2014-01-28 20:56:04",
+                "2014-11-16 16:11:58",
+                "2015-11-15 19:21:53",
+                "2015-11-15 19:33:39"
+            ]
+        },
+        {
+            "business_id": "--qvQS4MigHPykD2GV0-zw",
+            "dates": [
+                "2019-04-11 18:30:12"
+            ]
+        },
+        {
+            "business_id": "--wIGbLEhlpl_UeAIyDmZQ",
+            "dates": [
+                "2015-06-06 20:01:06",
+                "2019-03-14 22:01:52"
+            ]
+        },
+        {
+            "business_id": "-0FA-Qdi3SPYIoJz9UQw-A",
+            "dates": [
+                "2018-09-29 18:55:17",
+                "2018-10-20 16:48:05",
+                "2018-10-20 22:20:24"
+            ]
+        },
+        {
+            "business_id": "-0Hj1hb_XW6ybWq2M7QhGA",
+            "dates": [
+                "2011-04-23 21:11:22",
+                "2014-05-04 19:42:48",
+                "2014-05-11 19:16:08",
+                "2014-06-04 19:14:18",
+                "2015-12-05 19:22:42",
+                "2017-05-15 23:19:00"
+            ]
+        },
+        {
+            "business_id": "-0KMvRFwDWdVBeTpT11iHw",
+            "dates": [
+                "2012-07-13 21:43:57",
+                "2016-12-24 02:27:31",
+                "2017-08-31 00:35:26"
+            ]
+        },
+        {
+            "business_id": "-0LPtgJC31FWMrMv317p0Q",
+            "dates": [
+                "2013-04-13 12:35:33",
+                "2013-08-19 23:35:49",
+                "2013-10-04 19:14:56"
+            ]
+        },
+        {
+            "business_id": "-0M3o2uWBnQZwd3hmfEwuw",
+            "dates": [
+                "2016-09-10 19:26:19",
+                "2018-09-08 14:15:37",
+                "2019-09-13 22:47:25"
+            ]
+        },
+        {
+            "business_id": "-0RRiWDtfnS16AKCtfvBZg",
+            "dates": [
+                "2017-05-19 14:30:16",
+                "2017-05-19 14:30:25",
+                "2017-08-28 15:49:37",
+                "2017-09-20 20:19:51",
+                "2017-10-01 16:31:05",
+                "2017-10-01 16:56:27",
+                "2017-12-27 23:33:20"
+            ]
+        },
+        {
+            "business_id": "-0Soj75v-XoRcf2ERr8Bmg",
+            "dates": [
+                "2019-06-05 18:22:49"
+            ]
+        },
+        {
+            "business_id": "-0ZumLlFjMh4ZW1z2nXGug",
+            "dates": [
+                "2011-09-24 21:37:32",
+                "2014-03-10 20:20:07",
+                "2015-05-27 00:40:24",
+                "2015-08-29 17:58:15",
+                "2018-03-16 15:03:26"
+            ]
+        },
+        {
+            "business_id": "-0aOudcaAyac0VJbMX-L1g",
+            "dates": [
+                "2015-03-16 23:51:16",
+                "2015-12-21 04:48:01",
+                "2016-10-28 20:22:42",
+                "2016-10-28 20:23:00"
+            ]
+        },
+        {
+            "business_id": "-0b86isaXMY0v4g-V8GZ9Q",
+            "dates": [
+                "2013-10-22 16:49:21",
+                "2014-11-21 17:39:24"
+            ]
+        },
+        {
+            "business_id": "-0d-BfFSU0bwLcnMaGRxYw",
+            "dates": [
+                "2014-08-07 18:30:48",
+                "2014-09-16 20:41:45",
+                "2014-10-12 23:22:27",
+                "2015-07-21 20:43:56",
+                "2015-07-21 20:45:07"
+            ]
+        },
+        {
+            "business_id": "-0jz6c3C6i7RG7Ag22K-Pg",
+            "dates": [
+                "2015-05-02 19:49:05",
+                "2015-05-06 03:52:18",
+                "2015-09-26 01:13:19"
+            ]
+        },
+        {
+            "business_id": "-0y3MZU2oYP8r1ruDP1bfQ",
+            "dates": [
+                "2015-04-11 13:14:14",
+                "2015-11-21 16:05:56",
+                "2016-05-06 14:10:04",
+                "2017-08-09 15:15:10",
+                "2017-10-21 15:12:56"
+            ]
+        },
+        {
+            "business_id": "-1BPe8UjF2_l3nVk-DFUjA",
+            "dates": [
+                "2015-12-03 18:44:00",
+                "2016-03-17 18:19:21",
+                "2016-11-02 15:58:38"
+            ]
+        },
+        {
+            "business_id": "-1E2CQu_38mkghvmZgCCRw",
+            "dates": []
+        },
+        {
+            "business_id": "-1wzk43IZ5D9Ysu6kzb5xA",
+            "dates": []
+        },
+        {
+            "business_id": "-23R9P2eG7VTc6DVLjFKzA",
+            "dates": [
+                "2011-12-21 19:02:51",
+                "2012-04-15 04:21:39",
+                "2012-04-15 14:23:56",
+                "2013-06-30 22:39:51",
+                "2013-10-04 20:34:13",
+                "2014-07-16 02:28:40"
+            ]
+        },
+        {
+            "business_id": "-26MGfikhJiTfCI-GqmzhQ",
+            "dates": [
+                "2018-06-13 20:16:07"
+            ]
+        },
+        {
+            "business_id": "-2bLuJsMZ0WhI9daurVQNQ",
+            "dates": [
+                "2015-05-29 16:46:17",
+                "2015-06-01 15:03:53"
+            ]
+        },
+        {
+            "business_id": "-2hDBMaza_ldqnZdiU06LQ",
+            "dates": [
+                "2011-10-08 12:02:23",
+                "2014-08-18 02:11:11",
+                "2016-01-07 05:27:51",
+                "2016-10-21 20:15:55",
+                "2016-12-01 03:57:10",
+                "2016-12-29 01:54:42",
+                "2018-07-22 19:55:31",
+                "2018-09-07 01:42:54",
+                "2019-03-08 03:41:06"
+            ]
+        }
+    ]
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.03.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.03.query.sqlpp
index 30d21cfd6c..69fe7cc0d2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.03.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.04.get.http
similarity index 93%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.04.get.http
index 57d830aed0..a55ce93039 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.04.get.http
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
+/connector?dataverseName=TestYelp&datasetName=YelpCheckin
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.05.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.05.query.sqlpp
index 30d21cfd6c..69fe7cc0d2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.05.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.06.update.sqlpp
similarity index 90%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.06.update.sqlpp
index 075d204e2d..ea1dba3af8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.06.update.sqlpp
@@ -17,6 +17,7 @@
  * under the License.
  */
 
-USE test;
+USE TestYelp;
 
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+DELETE FROM YelpCheckin C
+WHERE C.business_id != "--1UhMGODdWsrMastO9DZw";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.07.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.07.query.sqlpp
index 30d21cfd6c..69fe7cc0d2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.07.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.08.get.http
similarity index 93%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.08.get.http
index 57d830aed0..a55ce93039 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.08.get.http
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
+/connector?dataverseName=TestYelp&datasetName=YelpCheckin
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.09.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.09.query.sqlpp
index 30d21cfd6c..69fe7cc0d2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.09.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.10.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.10.update.sqlpp
new file mode 100644
index 0000000000..055fe8cf32
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.10.update.sqlpp
@@ -0,0 +1,276 @@
+/*
+ * 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 TestYelp;
+
+UPSERT INTO YelpCheckin (
+    [
+        {
+            "business_id": "--1UhMGODdWsrMastO9DZw",
+            "dates": [
+                "2016-04-26 19:49:16",
+                "2016-08-30 18:36:57",
+                "2016-10-15 02:45:18",
+                "2016-11-18 01:54:50",
+                "2017-04-20 18:39:06",
+                "2017-05-03 17:58:02",
+                "2019-03-19 22:04:48"
+            ]
+        },
+        {
+            "business_id": "--EF5N7P70J_UYBTPypYlA",
+            "dates": [
+                "2018-05-25 19:52:07",
+                "2018-09-18 16:09:44",
+                "2019-10-18 21:29:09"
+            ]
+        },
+        {
+            "business_id": "--Ni3oJ4VOqfOEu7Sj2Vzg",
+            "dates": [
+                "2019-06-07 17:54:58"
+            ]
+        },
+        {
+            "business_id": "--Y1Adl1YUWfYIRSd8vkmA",
+            "dates": [
+                "2011-05-03 20:54:05",
+                "2011-08-23 20:49:45",
+                "2014-12-04 06:13:01",
+                "2016-11-16 19:25:55"
+            ]
+        },
+        {
+            "business_id": "--YPwqIlRJrhHkJcjY3eiA",
+            "dates": [
+                "2016-06-18 21:35:45",
+                "2016-10-15 18:17:51"
+            ]
+        },
+        {
+            "business_id": "--e8PjCNhEz32pprnPhCwQ",
+            "dates": [
+                "2015-04-02 21:45:17"
+            ]
+        },
+        {
+            "business_id": "--kinfHwmtdjz03g8B8z8Q",
+            "dates": [
+                "2014-08-27 17:49:18",
+                "2015-12-19 21:30:31",
+                "2018-11-27 15:53:50"
+            ]
+        },
+        {
+            "business_id": "--q6datkI-f0EoVheXNEeQ",
+            "dates": [
+                "2014-01-28 20:56:04",
+                "2014-11-16 16:11:58",
+                "2015-11-15 19:21:53",
+                "2015-11-15 19:33:39"
+            ]
+        },
+        {
+            "business_id": "--qvQS4MigHPykD2GV0-zw",
+            "dates": [
+                "2019-04-11 18:30:12"
+            ]
+        },
+        {
+            "business_id": "--wIGbLEhlpl_UeAIyDmZQ",
+            "dates": [
+                "2015-06-06 20:01:06",
+                "2019-03-14 22:01:52"
+            ]
+        },
+        {
+            "business_id": "-0FA-Qdi3SPYIoJz9UQw-A",
+            "dates": [
+                "2018-09-29 18:55:17",
+                "2018-10-20 16:48:05",
+                "2018-10-20 22:20:24"
+            ]
+        },
+        {
+            "business_id": "-0Hj1hb_XW6ybWq2M7QhGA",
+            "dates": [
+                "2011-04-23 21:11:22",
+                "2014-05-04 19:42:48",
+                "2014-05-11 19:16:08",
+                "2014-06-04 19:14:18",
+                "2015-12-05 19:22:42",
+                "2017-05-15 23:19:00"
+            ]
+        },
+        {
+            "business_id": "-0KMvRFwDWdVBeTpT11iHw",
+            "dates": [
+                "2012-07-13 21:43:57",
+                "2016-12-24 02:27:31",
+                "2017-08-31 00:35:26"
+            ]
+        },
+        {
+            "business_id": "-0LPtgJC31FWMrMv317p0Q",
+            "dates": [
+                "2013-04-13 12:35:33",
+                "2013-08-19 23:35:49",
+                "2013-10-04 19:14:56"
+            ]
+        },
+        {
+            "business_id": "-0M3o2uWBnQZwd3hmfEwuw",
+            "dates": [
+                "2016-09-10 19:26:19",
+                "2018-09-08 14:15:37",
+                "2019-09-13 22:47:25"
+            ]
+        },
+        {
+            "business_id": "-0RRiWDtfnS16AKCtfvBZg",
+            "dates": [
+                "2017-05-19 14:30:16",
+                "2017-05-19 14:30:25",
+                "2017-08-28 15:49:37",
+                "2017-09-20 20:19:51",
+                "2017-10-01 16:31:05",
+                "2017-10-01 16:56:27",
+                "2017-12-27 23:33:20"
+            ]
+        },
+        {
+            "business_id": "-0Soj75v-XoRcf2ERr8Bmg",
+            "dates": [
+                "2019-06-05 18:22:49"
+            ]
+        },
+        {
+            "business_id": "-0ZumLlFjMh4ZW1z2nXGug",
+            "dates": [
+                "2011-09-24 21:37:32",
+                "2014-03-10 20:20:07",
+                "2015-05-27 00:40:24",
+                "2015-08-29 17:58:15",
+                "2018-03-16 15:03:26"
+            ]
+        },
+        {
+            "business_id": "-0aOudcaAyac0VJbMX-L1g",
+            "dates": [
+                "2015-03-16 23:51:16",
+                "2015-12-21 04:48:01",
+                "2016-10-28 20:22:42",
+                "2016-10-28 20:23:00"
+            ]
+        },
+        {
+            "business_id": "-0b86isaXMY0v4g-V8GZ9Q",
+            "dates": [
+                "2013-10-22 16:49:21",
+                "2014-11-21 17:39:24"
+            ]
+        },
+        {
+            "business_id": "-0d-BfFSU0bwLcnMaGRxYw",
+            "dates": [
+                "2014-08-07 18:30:48",
+                "2014-09-16 20:41:45",
+                "2014-10-12 23:22:27",
+                "2015-07-21 20:43:56",
+                "2015-07-21 20:45:07"
+            ]
+        },
+        {
+            "business_id": "-0jz6c3C6i7RG7Ag22K-Pg",
+            "dates": [
+                "2015-05-02 19:49:05",
+                "2015-05-06 03:52:18",
+                "2015-09-26 01:13:19"
+            ]
+        },
+        {
+            "business_id": "-0y3MZU2oYP8r1ruDP1bfQ",
+            "dates": [
+                "2015-04-11 13:14:14",
+                "2015-11-21 16:05:56",
+                "2016-05-06 14:10:04",
+                "2017-08-09 15:15:10",
+                "2017-10-21 15:12:56"
+            ]
+        },
+        {
+            "business_id": "-1BPe8UjF2_l3nVk-DFUjA",
+            "dates": [
+                "2015-12-03 18:44:00",
+                "2016-03-17 18:19:21",
+                "2016-11-02 15:58:38"
+            ]
+        },
+        {
+            "business_id": "-1E2CQu_38mkghvmZgCCRw",
+            "dates": [
+                "2019-04-04 22:02:37"
+            ]
+        },
+        {
+            "business_id": "-1wzk43IZ5D9Ysu6kzb5xA",
+            "dates": [
+                "2019-02-27 14:03:08"
+            ]
+        },
+        {
+            "business_id": "-23R9P2eG7VTc6DVLjFKzA",
+            "dates": [
+                "2011-12-21 19:02:51",
+                "2012-04-15 04:21:39",
+                "2012-04-15 14:23:56",
+                "2013-06-30 22:39:51",
+                "2013-10-04 20:34:13",
+                "2014-07-16 02:28:40"
+            ]
+        },
+        {
+            "business_id": "-26MGfikhJiTfCI-GqmzhQ",
+            "dates": [
+                "2018-06-13 20:16:07"
+            ]
+        },
+        {
+            "business_id": "-2bLuJsMZ0WhI9daurVQNQ",
+            "dates": [
+                "2015-05-29 16:46:17",
+                "2015-06-01 15:03:53"
+            ]
+        },
+        {
+            "business_id": "-2hDBMaza_ldqnZdiU06LQ",
+            "dates": [
+                "2011-10-08 12:02:23",
+                "2014-08-18 02:11:11",
+                "2016-01-07 05:27:51",
+                "2016-10-21 20:15:55",
+                "2016-12-01 03:57:10",
+                "2016-12-29 01:54:42",
+                "2018-07-22 19:55:31",
+                "2018-09-07 01:42:54",
+                "2019-03-08 03:41:06"
+            ]
+        }
+    ]
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.11.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.11.query.sqlpp
index 30d21cfd6c..69fe7cc0d2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.11.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.12.get.http
similarity index 93%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.12.get.http
index 57d830aed0..a55ce93039 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.12.get.http
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
+/connector?dataverseName=TestYelp&datasetName=YelpCheckin
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.13.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.13.query.sqlpp
index 30d21cfd6c..69fe7cc0d2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-1/use-case-1.13.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.01.ddl.sqlpp
similarity index 53%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.01.ddl.sqlpp
index a271778586..46715fb612 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.01.ddl.sqlpp
@@ -17,15 +17,24 @@
  * under the License.
  */
 
-DROP DATAVERSE test if exists;
-CREATE DATAVERSE test;
-USE test;
+/*
+ * Description: Verify the following DML actions for an array->atomic index:
+ *     1) Insert into an empty index (non bulk-load operation).
+ *     2) Delete all-but-one entry from the index.
+ *     3) Upsert all entries into the index.
+ */
+
+DROP DATAVERSE TestYelp IF EXISTS;
+CREATE DATAVERSE TestYelp;
+USE TestYelp;
+
+CREATE TYPE CheckinType AS {
+    business_id: string
+};
 
-CREATE TYPE ColumnType AS {
-    id: int
+CREATE DATASET YelpCheckin(CheckinType) PRIMARY KEY business_id WITH {
+    "storage-format" : {"format" : "column"}
 };
 
-CREATE DATASET ColumnDataset(ColumnType)
-PRIMARY KEY id WITH {
-    "storage-format": {"format" : "column"}
-};
\ No newline at end of file
+CREATE INDEX IdxYelpCheckinDates ON YelpCheckin (UNNEST checkin_times.dates : string ) EXCLUDE UNKNOWN KEY;
+CREATE INDEX IdxYelpCheckinTimes ON YelpCheckin (UNNEST checkin_times.times : string ) EXCLUDE UNKNOWN KEY;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.02.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.02.update.sqlpp
new file mode 100644
index 0000000000..2549e8f3a4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.02.update.sqlpp
@@ -0,0 +1,497 @@
+/*
+ * 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 TestYelp;
+
+INSERT INTO YelpCheckin (
+    [
+        {
+            "business_id": "--1UhMGODdWsrMastO9DZw",
+            "checkin_times": {
+                "dates": [
+                    "2016-04-26",
+                    "2016-08-30",
+                    "2016-10-15",
+                    "2016-11-18",
+                    "2017-04-20",
+                    "2017-05-03",
+                    "2019-03-19"
+                ],
+                "times": [
+                    "19:49:16",
+                    "18:36:57",
+                    "02:45:18",
+                    "01:54:50",
+                    "18:39:06",
+                    "17:58:02",
+                    "22:04:48"
+                ]
+            }
+        },
+        {
+            "business_id": "--EF5N7P70J_UYBTPypYlA",
+            "checkin_times": {
+                "dates": [
+                    "2018-05-25",
+                    "2018-09-18",
+                    "2019-10-18"
+                ],
+                "times": [
+                    "19:52:07",
+                    "16:09:44",
+                    "21:29:09"
+                ]
+            }
+        },
+        {
+            "business_id": "--Ni3oJ4VOqfOEu7Sj2Vzg",
+            "checkin_times": {
+                "dates": [
+                    "2019-06-07"
+                ],
+                "times": [
+                    "17:54:58"
+                ]
+            }
+        },
+        {
+            "business_id": "--Y1Adl1YUWfYIRSd8vkmA",
+            "checkin_times": {
+                "dates": [
+                    "2011-05-03",
+                    "2011-08-23",
+                    "2014-12-04",
+                    "2016-11-16"
+                ],
+                "times": [
+                    "20:54:05",
+                    "20:49:45",
+                    "06:13:01",
+                    "19:25:55"
+                ]
+            }
+        },
+        {
+            "business_id": "--YPwqIlRJrhHkJcjY3eiA",
+            "checkin_times": {
+                "dates": [
+                    "2016-06-18",
+                    "2016-10-15"
+                ],
+                "times": [
+                    "21:35:45",
+                    "18:17:51"
+                ]
+            }
+        },
+        {
+            "business_id": "--e8PjCNhEz32pprnPhCwQ",
+            "checkin_times": {
+                "dates": [
+                    "2015-04-02"
+                ],
+                "times": [
+                    "21:45:17"
+                ]
+            }
+        },
+        {
+            "business_id": "--kinfHwmtdjz03g8B8z8Q",
+            "checkin_times": {
+                "dates": [
+                    "2014-08-27",
+                    "2015-12-19",
+                    "2018-11-27"
+                ],
+                "times": [
+                    "17:49:18",
+                    "21:30:31",
+                    "15:53:50"
+                ]
+            }
+        },
+        {
+            "business_id": "--q6datkI-f0EoVheXNEeQ",
+            "checkin_times": {
+                "dates": [
+                    "2014-01-28",
+                    "2014-11-16",
+                    "2015-11-15",
+                    "2015-11-15"
+                ],
+                "times": [
+                    "20:56:04",
+                    "16:11:58",
+                    "19:21:53",
+                    "19:33:39"
+                ]
+            }
+        },
+        {
+            "business_id": "--qvQS4MigHPykD2GV0-zw",
+            "checkin_times": {
+                "dates": [
+                    "2019-04-11"
+                ],
+                "times": [
+                    "18:30:12"
+                ]
+            }
+        },
+        {
+            "business_id": "--wIGbLEhlpl_UeAIyDmZQ",
+            "checkin_times": {
+                "dates": [
+                    "2015-06-06",
+                    "2019-03-14"
+                ],
+                "times": [
+                    "20:01:06",
+                    "22:01:52"
+                ]
+            }
+        },
+        {
+            "business_id": "-0FA-Qdi3SPYIoJz9UQw-A",
+            "checkin_times": {
+                "dates": [
+                    "2018-09-29",
+                    "2018-10-20",
+                    "2018-10-20"
+                ],
+                "times": [
+                    "18:55:17",
+                    "16:48:05",
+                    "22:20:24"
+                ]
+            }
+        },
+        {
+            "business_id": "-0Hj1hb_XW6ybWq2M7QhGA",
+            "checkin_times": {
+                "dates": [
+                    "2011-04-23",
+                    "2014-05-04",
+                    "2014-05-11",
+                    "2014-06-04",
+                    "2015-12-05",
+                    "2017-05-15"
+                ],
+                "times": [
+                    "21:11:22",
+                    "19:42:48",
+                    "19:16:08",
+                    "19:14:18",
+                    "19:22:42",
+                    "23:19:00"
+                ]
+            }
+        },
+        {
+            "business_id": "-0KMvRFwDWdVBeTpT11iHw",
+            "checkin_times": {
+                "dates": [
+                    "2012-07-13",
+                    "2016-12-24",
+                    "2017-08-31"
+                ],
+                "times": [
+                    "21:43:57",
+                    "02:27:31",
+                    "00:35:26"
+                ]
+            }
+        },
+        {
+            "business_id": "-0LPtgJC31FWMrMv317p0Q",
+            "checkin_times": {
+                "dates": [
+                    "2013-04-13",
+                    "2013-08-19",
+                    "2013-10-04"
+                ],
+                "times": [
+                    "12:35:33",
+                    "23:35:49",
+                    "19:14:56"
+                ]
+            }
+        },
+        {
+            "business_id": "-0M3o2uWBnQZwd3hmfEwuw",
+            "checkin_times": {
+                "dates": [
+                    "2016-09-10",
+                    "2018-09-08",
+                    "2019-09-13"
+                ],
+                "times": [
+                    "19:26:19",
+                    "14:15:37",
+                    "22:47:25"
+                ]
+            }
+        },
+        {
+            "business_id": "-0RRiWDtfnS16AKCtfvBZg",
+            "checkin_times": {
+                "dates": [
+                    "2017-05-19",
+                    "2017-05-19",
+                    "2017-08-28",
+                    "2017-09-20",
+                    "2017-10-01",
+                    "2017-10-01",
+                    "2017-12-27"
+                ],
+                "times": [
+                    "14:30:16",
+                    "14:30:25",
+                    "15:49:37",
+                    "20:19:51",
+                    "16:31:05",
+                    "16:56:27",
+                    "23:33:20"
+                ]
+            }
+        },
+        {
+            "business_id": "-0Soj75v-XoRcf2ERr8Bmg",
+            "checkin_times": {
+                "dates": [
+                    "2019-06-05"
+                ],
+                "times": [
+                    "18:22:49"
+                ]
+            }
+        },
+        {
+            "business_id": "-0ZumLlFjMh4ZW1z2nXGug",
+            "checkin_times": {
+                "dates": [
+                    "2011-09-24",
+                    "2014-03-10",
+                    "2015-05-27",
+                    "2015-08-29",
+                    "2018-03-16"
+                ],
+                "times": [
+                    "21:37:32",
+                    "20:20:07",
+                    "00:40:24",
+                    "17:58:15",
+                    "15:03:26"
+                ]
+            }
+        },
+        {
+            "business_id": "-0aOudcaAyac0VJbMX-L1g",
+            "checkin_times": {
+                "dates": [
+                    "2015-03-16",
+                    "2015-12-21",
+                    "2016-10-28",
+                    "2016-10-28"
+                ],
+                "times": [
+                    "23:51:16",
+                    "04:48:01",
+                    "20:22:42",
+                    "20:23:00"
+                ]
+            }
+        },
+        {
+            "business_id": "-0b86isaXMY0v4g-V8GZ9Q",
+            "checkin_times": {
+                "dates": [
+                    "2013-10-22",
+                    "2014-11-21"
+                ],
+                "times": [
+                    "16:49:21",
+                    "17:39:24"
+                ]
+            }
+        },
+        {
+            "business_id": "-0d-BfFSU0bwLcnMaGRxYw",
+            "checkin_times": {
+                "dates": [
+                    "2014-08-07",
+                    "2014-09-16",
+                    "2014-10-12",
+                    "2015-07-21",
+                    "2015-07-21"
+                ],
+                "times": [
+                    "18:30:48",
+                    "20:41:45",
+                    "23:22:27",
+                    "20:43:56",
+                    "20:45:07"
+                ]
+            }
+        },
+        {
+            "business_id": "-0jz6c3C6i7RG7Ag22K-Pg",
+            "checkin_times": {
+                "dates": [
+                    "2015-05-02",
+                    "2015-05-06",
+                    "2015-09-26"
+                ],
+                "times": [
+                    "19:49:05",
+                    "03:52:18",
+                    "01:13:19"
+                ]
+            }
+        },
+        {
+            "business_id": "-0y3MZU2oYP8r1ruDP1bfQ",
+            "checkin_times": {
+                "dates": [
+                    "2015-04-11",
+                    "2015-11-21",
+                    "2016-05-06",
+                    "2017-08-09",
+                    "2017-10-21"
+                ],
+                "times": [
+                    "13:14:14",
+                    "16:05:56",
+                    "14:10:04",
+                    "15:15:10",
+                    "15:12:56"
+                ]
+            }
+        },
+        {
+            "business_id": "-1BPe8UjF2_l3nVk-DFUjA",
+            "checkin_times": {
+                "dates": [
+                    "2015-12-03",
+                    "2016-03-17",
+                    "2016-11-02"
+                ],
+                "times": [
+                    "18:44:00",
+                    "18:19:21",
+                    "15:58:38"
+                ]
+            }
+        },
+        {
+            "business_id": "-1E2CQu_38mkghvmZgCCRw",
+            "checkin_times": {
+                "dates": [
+                    "2019-04-04"
+                ],
+                "times": [
+                    "22:02:37"
+                ]
+            }
+        },
+        {
+            "business_id": "-1wzk43IZ5D9Ysu6kzb5xA",
+            "checkin_times": {
+                "dates": [
+                    "2019-02-27"
+                ],
+                "times": [
+                    "14:03:08"
+                ]
+            }
+        },
+        {
+            "business_id": "-23R9P2eG7VTc6DVLjFKzA",
+            "checkin_times": {
+                "dates": [
+                    "2011-12-21",
+                    "2012-04-15",
+                    "2012-04-15",
+                    "2013-06-30",
+                    "2013-10-04",
+                    "2014-07-16"
+                ],
+                "times": [
+                    "19:02:51",
+                    "04:21:39",
+                    "14:23:56",
+                    "22:39:51",
+                    "20:34:13",
+                    "02:28:40"
+                ]
+            }
+        },
+        {
+            "business_id": "-26MGfikhJiTfCI-GqmzhQ",
+            "checkin_times": {
+                "dates": [
+                    "2018-06-13"
+                ],
+                "times": [
+                    "20:16:07"
+                ]
+            }
+        },
+        {
+            "business_id": "-2bLuJsMZ0WhI9daurVQNQ",
+            "checkin_times": {
+                "dates": [
+                    "2015-05-29",
+                    "2015-06-01"
+                ],
+                "times": [
+                    "16:46:17",
+                    "15:03:53"
+                ]
+            }
+        },
+        {
+            "business_id": "-2hDBMaza_ldqnZdiU06LQ",
+            "checkin_times": {
+                "dates": [
+                    "2011-10-08",
+                    "2014-08-18",
+                    "2016-01-07",
+                    "2016-10-21",
+                    "2016-12-01",
+                    "2016-12-29",
+                    "2018-07-22",
+                    "2018-09-07",
+                    "2019-03-08"
+                ],
+                "times": [
+                    "12:02:23",
+                    "02:11:11",
+                    "05:27:51",
+                    "20:15:55",
+                    "03:57:10",
+                    "01:54:42",
+                    "19:55:31",
+                    "01:42:54",
+                    "03:41:06"
+                ]
+            }
+        }
+    ]
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.03.query.sqlpp
similarity index 86%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.03.query.sqlpp
index 30d21cfd6c..a44055090c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.03.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.04.get.http
similarity index 93%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.04.get.http
index 57d830aed0..a55ce93039 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.04.get.http
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
+/connector?dataverseName=TestYelp&datasetName=YelpCheckin
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.05.query.sqlpp
similarity index 86%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.05.query.sqlpp
index 30d21cfd6c..a44055090c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.05.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.06.update.sqlpp
similarity index 90%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.06.update.sqlpp
index 075d204e2d..ea1dba3af8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.06.update.sqlpp
@@ -17,6 +17,7 @@
  * under the License.
  */
 
-USE test;
+USE TestYelp;
 
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+DELETE FROM YelpCheckin C
+WHERE C.business_id != "--1UhMGODdWsrMastO9DZw";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.07.query.sqlpp
similarity index 86%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.07.query.sqlpp
index 30d21cfd6c..a44055090c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.07.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.08.get.http
similarity index 93%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.08.get.http
index 57d830aed0..a55ce93039 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.08.get.http
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
+/connector?dataverseName=TestYelp&datasetName=YelpCheckin
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.09.query.sqlpp
similarity index 86%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.09.query.sqlpp
index 30d21cfd6c..a44055090c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.09.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.10.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.10.update.sqlpp
new file mode 100644
index 0000000000..9467e0d000
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.10.update.sqlpp
@@ -0,0 +1,497 @@
+/*
+ * 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 TestYelp;
+
+UPSERT INTO YelpCheckin (
+    [
+        {
+            "business_id": "--1UhMGODdWsrMastO9DZw",
+            "checkin_times": {
+                "dates": [
+                    "2016-04-26",
+                    "2016-08-30",
+                    "2016-10-15",
+                    "2016-11-18",
+                    "2017-04-20",
+                    "2017-05-03",
+                    "2019-03-19"
+                ],
+                "times": [
+                    "19:49:16",
+                    "18:36:57",
+                    "02:45:18",
+                    "01:54:50",
+                    "18:39:06",
+                    "17:58:02",
+                    "22:04:48"
+                ]
+            }
+        },
+        {
+            "business_id": "--EF5N7P70J_UYBTPypYlA",
+            "checkin_times": {
+                "dates": [
+                    "2018-05-25",
+                    "2018-09-18",
+                    "2019-10-18"
+                ],
+                "times": [
+                    "19:52:07",
+                    "16:09:44",
+                    "21:29:09"
+                ]
+            }
+        },
+        {
+            "business_id": "--Ni3oJ4VOqfOEu7Sj2Vzg",
+            "checkin_times": {
+                "dates": [
+                    "2019-06-07"
+                ],
+                "times": [
+                    "17:54:58"
+                ]
+            }
+        },
+        {
+            "business_id": "--Y1Adl1YUWfYIRSd8vkmA",
+            "checkin_times": {
+                "dates": [
+                    "2011-05-03",
+                    "2011-08-23",
+                    "2014-12-04",
+                    "2016-11-16"
+                ],
+                "times": [
+                    "20:54:05",
+                    "20:49:45",
+                    "06:13:01",
+                    "19:25:55"
+                ]
+            }
+        },
+        {
+            "business_id": "--YPwqIlRJrhHkJcjY3eiA",
+            "checkin_times": {
+                "dates": [
+                    "2016-06-18",
+                    "2016-10-15"
+                ],
+                "times": [
+                    "21:35:45",
+                    "18:17:51"
+                ]
+            }
+        },
+        {
+            "business_id": "--e8PjCNhEz32pprnPhCwQ",
+            "checkin_times": {
+                "dates": [
+                    "2015-04-02"
+                ],
+                "times": [
+                    "21:45:17"
+                ]
+            }
+        },
+        {
+            "business_id": "--kinfHwmtdjz03g8B8z8Q",
+            "checkin_times": {
+                "dates": [
+                    "2014-08-27",
+                    "2015-12-19",
+                    "2018-11-27"
+                ],
+                "times": [
+                    "17:49:18",
+                    "21:30:31",
+                    "15:53:50"
+                ]
+            }
+        },
+        {
+            "business_id": "--q6datkI-f0EoVheXNEeQ",
+            "checkin_times": {
+                "dates": [
+                    "2014-01-28",
+                    "2014-11-16",
+                    "2015-11-15",
+                    "2015-11-15"
+                ],
+                "times": [
+                    "20:56:04",
+                    "16:11:58",
+                    "19:21:53",
+                    "19:33:39"
+                ]
+            }
+        },
+        {
+            "business_id": "--qvQS4MigHPykD2GV0-zw",
+            "checkin_times": {
+                "dates": [
+                    "2019-04-11"
+                ],
+                "times": [
+                    "18:30:12"
+                ]
+            }
+        },
+        {
+            "business_id": "--wIGbLEhlpl_UeAIyDmZQ",
+            "checkin_times": {
+                "dates": [
+                    "2015-06-06",
+                    "2019-03-14"
+                ],
+                "times": [
+                    "20:01:06",
+                    "22:01:52"
+                ]
+            }
+        },
+        {
+            "business_id": "-0FA-Qdi3SPYIoJz9UQw-A",
+            "checkin_times": {
+                "dates": [
+                    "2018-09-29",
+                    "2018-10-20",
+                    "2018-10-20"
+                ],
+                "times": [
+                    "18:55:17",
+                    "16:48:05",
+                    "22:20:24"
+                ]
+            }
+        },
+        {
+            "business_id": "-0Hj1hb_XW6ybWq2M7QhGA",
+            "checkin_times": {
+                "dates": [
+                    "2011-04-23",
+                    "2014-05-04",
+                    "2014-05-11",
+                    "2014-06-04",
+                    "2015-12-05",
+                    "2017-05-15"
+                ],
+                "times": [
+                    "21:11:22",
+                    "19:42:48",
+                    "19:16:08",
+                    "19:14:18",
+                    "19:22:42",
+                    "23:19:00"
+                ]
+            }
+        },
+        {
+            "business_id": "-0KMvRFwDWdVBeTpT11iHw",
+            "checkin_times": {
+                "dates": [
+                    "2012-07-13",
+                    "2016-12-24",
+                    "2017-08-31"
+                ],
+                "times": [
+                    "21:43:57",
+                    "02:27:31",
+                    "00:35:26"
+                ]
+            }
+        },
+        {
+            "business_id": "-0LPtgJC31FWMrMv317p0Q",
+            "checkin_times": {
+                "dates": [
+                    "2013-04-13",
+                    "2013-08-19",
+                    "2013-10-04"
+                ],
+                "times": [
+                    "12:35:33",
+                    "23:35:49",
+                    "19:14:56"
+                ]
+            }
+        },
+        {
+            "business_id": "-0M3o2uWBnQZwd3hmfEwuw",
+            "checkin_times": {
+                "dates": [
+                    "2016-09-10",
+                    "2018-09-08",
+                    "2019-09-13"
+                ],
+                "times": [
+                    "19:26:19",
+                    "14:15:37",
+                    "22:47:25"
+                ]
+            }
+        },
+        {
+            "business_id": "-0RRiWDtfnS16AKCtfvBZg",
+            "checkin_times": {
+                "dates": [
+                    "2017-05-19",
+                    "2017-05-19",
+                    "2017-08-28",
+                    "2017-09-20",
+                    "2017-10-01",
+                    "2017-10-01",
+                    "2017-12-27"
+                ],
+                "times": [
+                    "14:30:16",
+                    "14:30:25",
+                    "15:49:37",
+                    "20:19:51",
+                    "16:31:05",
+                    "16:56:27",
+                    "23:33:20"
+                ]
+            }
+        },
+        {
+            "business_id": "-0Soj75v-XoRcf2ERr8Bmg",
+            "checkin_times": {
+                "dates": [
+                    "2019-06-05"
+                ],
+                "times": [
+                    "18:22:49"
+                ]
+            }
+        },
+        {
+            "business_id": "-0ZumLlFjMh4ZW1z2nXGug",
+            "checkin_times": {
+                "dates": [
+                    "2011-09-24",
+                    "2014-03-10",
+                    "2015-05-27",
+                    "2015-08-29",
+                    "2018-03-16"
+                ],
+                "times": [
+                    "21:37:32",
+                    "20:20:07",
+                    "00:40:24",
+                    "17:58:15",
+                    "15:03:26"
+                ]
+            }
+        },
+        {
+            "business_id": "-0aOudcaAyac0VJbMX-L1g",
+            "checkin_times": {
+                "dates": [
+                    "2015-03-16",
+                    "2015-12-21",
+                    "2016-10-28",
+                    "2016-10-28"
+                ],
+                "times": [
+                    "23:51:16",
+                    "04:48:01",
+                    "20:22:42",
+                    "20:23:00"
+                ]
+            }
+        },
+        {
+            "business_id": "-0b86isaXMY0v4g-V8GZ9Q",
+            "checkin_times": {
+                "dates": [
+                    "2013-10-22",
+                    "2014-11-21"
+                ],
+                "times": [
+                    "16:49:21",
+                    "17:39:24"
+                ]
+            }
+        },
+        {
+            "business_id": "-0d-BfFSU0bwLcnMaGRxYw",
+            "checkin_times": {
+                "dates": [
+                    "2014-08-07",
+                    "2014-09-16",
+                    "2014-10-12",
+                    "2015-07-21",
+                    "2015-07-21"
+                ],
+                "times": [
+                    "18:30:48",
+                    "20:41:45",
+                    "23:22:27",
+                    "20:43:56",
+                    "20:45:07"
+                ]
+            }
+        },
+        {
+            "business_id": "-0jz6c3C6i7RG7Ag22K-Pg",
+            "checkin_times": {
+                "dates": [
+                    "2015-05-02",
+                    "2015-05-06",
+                    "2015-09-26"
+                ],
+                "times": [
+                    "19:49:05",
+                    "03:52:18",
+                    "01:13:19"
+                ]
+            }
+        },
+        {
+            "business_id": "-0y3MZU2oYP8r1ruDP1bfQ",
+            "checkin_times": {
+                "dates": [
+                    "2015-04-11",
+                    "2015-11-21",
+                    "2016-05-06",
+                    "2017-08-09",
+                    "2017-10-21"
+                ],
+                "times": [
+                    "13:14:14",
+                    "16:05:56",
+                    "14:10:04",
+                    "15:15:10",
+                    "15:12:56"
+                ]
+            }
+        },
+        {
+            "business_id": "-1BPe8UjF2_l3nVk-DFUjA",
+            "checkin_times": {
+                "dates": [
+                    "2015-12-03",
+                    "2016-03-17",
+                    "2016-11-02"
+                ],
+                "times": [
+                    "18:44:00",
+                    "18:19:21",
+                    "15:58:38"
+                ]
+            }
+        },
+        {
+            "business_id": "-1E2CQu_38mkghvmZgCCRw",
+            "checkin_times": {
+                "dates": [
+                    "2019-04-04"
+                ],
+                "times": [
+                    "22:02:37"
+                ]
+            }
+        },
+        {
+            "business_id": "-1wzk43IZ5D9Ysu6kzb5xA",
+            "checkin_times": {
+                "dates": [
+                    "2019-02-27"
+                ],
+                "times": [
+                    "14:03:08"
+                ]
+            }
+        },
+        {
+            "business_id": "-23R9P2eG7VTc6DVLjFKzA",
+            "checkin_times": {
+                "dates": [
+                    "2011-12-21",
+                    "2012-04-15",
+                    "2012-04-15",
+                    "2013-06-30",
+                    "2013-10-04",
+                    "2014-07-16"
+                ],
+                "times": [
+                    "19:02:51",
+                    "04:21:39",
+                    "14:23:56",
+                    "22:39:51",
+                    "20:34:13",
+                    "02:28:40"
+                ]
+            }
+        },
+        {
+            "business_id": "-26MGfikhJiTfCI-GqmzhQ",
+            "checkin_times": {
+                "dates": [
+                    "2018-06-13"
+                ],
+                "times": [
+                    "20:16:07"
+                ]
+            }
+        },
+        {
+            "business_id": "-2bLuJsMZ0WhI9daurVQNQ",
+            "checkin_times": {
+                "dates": [
+                    "2015-05-29",
+                    "2015-06-01"
+                ],
+                "times": [
+                    "16:46:17",
+                    "15:03:53"
+                ]
+            }
+        },
+        {
+            "business_id": "-2hDBMaza_ldqnZdiU06LQ",
+            "checkin_times": {
+                "dates": [
+                    "2011-10-08",
+                    "2014-08-18",
+                    "2016-01-07",
+                    "2016-10-21",
+                    "2016-12-01",
+                    "2016-12-29",
+                    "2018-07-22",
+                    "2018-09-07",
+                    "2019-03-08"
+                ],
+                "times": [
+                    "12:02:23",
+                    "02:11:11",
+                    "05:27:51",
+                    "20:15:55",
+                    "03:57:10",
+                    "01:54:42",
+                    "19:55:31",
+                    "01:42:54",
+                    "03:41:06"
+                ]
+            }
+        }
+    ]
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.11.query.sqlpp
similarity index 86%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.11.query.sqlpp
index 30d21cfd6c..a44055090c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.11.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.12.get.http
similarity index 93%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.12.get.http
index 57d830aed0..a55ce93039 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.12.get.http
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
+/connector?dataverseName=TestYelp&datasetName=YelpCheckin
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.13.query.sqlpp
similarity index 86%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.13.query.sqlpp
index 30d21cfd6c..a44055090c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-2/use-case-2.13.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.01.ddl.sqlpp
similarity index 52%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.01.ddl.sqlpp
index a271778586..559c09142f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.01.ddl.sqlpp
@@ -17,15 +17,24 @@
  * under the License.
  */
 
-DROP DATAVERSE test if exists;
-CREATE DATAVERSE test;
-USE test;
+/*
+ * Description: Verify the following DML actions for an array->record->atomic index:
+ *     1) Insert into an empty index (non bulk-load operation).
+ *     2) Delete all-but-one entry from the index.
+ *     3) Upsert all entries into the index.
+ */
+
+DROP DATAVERSE TestYelp IF EXISTS;
+CREATE DATAVERSE TestYelp;
+USE TestYelp;
+
+CREATE TYPE CheckinType AS {
+    business_id: string
+};
 
-CREATE TYPE ColumnType AS {
-    id: int
+CREATE DATASET YelpCheckin(CheckinType) PRIMARY KEY business_id WITH {
+    "storage-format" : {"format" : "column"}
 };
 
-CREATE DATASET ColumnDataset(ColumnType)
-PRIMARY KEY id WITH {
-    "storage-format": {"format" : "column"}
-};
\ No newline at end of file
+CREATE INDEX IdxYelpCheckinDates ON YelpCheckin (UNNEST checkin_times SELECT date : string ) EXCLUDE UNKNOWN KEY;
+CREATE INDEX IdxYelpCheckinTimes ON YelpCheckin (UNNEST checkin_times SELECT time : string ) EXCLUDE UNKNOWN KEY;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.02.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.02.update.sqlpp
new file mode 100644
index 0000000000..4fd7c64d6a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.02.update.sqlpp
@@ -0,0 +1,276 @@
+/*
+ * 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 TestYelp;
+
+INSERT INTO YelpCheckin (
+    [
+        {
+            "business_id": "--1UhMGODdWsrMastO9DZw",
+            "checkin_times": [
+                {"date": "2016-04-26", "time": "19:49:16"},
+                {"date": "2016-08-30", "time": "18:36:57"},
+                {"date": "2016-10-15", "time": "02:45:18"},
+                {"date": "2016-11-18", "time": "01:54:50"},
+                {"date": "2017-04-20", "time": "18:39:06"},
+                {"date": "2017-05-03", "time": "17:58:02"},
+                {"date": "2019-03-19", "time": "22:04:48"}
+             ]
+        },
+        {
+            "business_id": "--EF5N7P70J_UYBTPypYlA",
+            "checkin_times": [
+                {"date": "2018-05-25", "time": "19:52:07"},
+                {"date": "2018-09-18", "time": "16:09:44"},
+                {"date": "2019-10-18", "time": "21:29:09"}
+             ]
+        },
+        {
+            "business_id": "--Ni3oJ4VOqfOEu7Sj2Vzg",
+            "checkin_times": [
+                {"date": "2019-06-07", "time": "17:54:58"}
+             ]
+        },
+        {
+            "business_id": "--Y1Adl1YUWfYIRSd8vkmA",
+            "checkin_times": [
+                {"date": "2011-05-03", "time": "20:54:05"},
+                {"date": "2011-08-23", "time": "20:49:45"},
+                {"date": "2014-12-04", "time": "06:13:01"},
+                {"date": "2016-11-16", "time": "19:25:55"}
+             ]
+        },
+        {
+            "business_id": "--YPwqIlRJrhHkJcjY3eiA",
+            "checkin_times": [
+                {"date": "2016-06-18", "time": "21:35:45"},
+                {"date": "2016-10-15", "time": "18:17:51"}
+             ]
+        },
+        {
+            "business_id": "--e8PjCNhEz32pprnPhCwQ",
+            "checkin_times": [
+                {"date": "2015-04-02", "time": "21:45:17"}
+             ]
+        },
+        {
+            "business_id": "--kinfHwmtdjz03g8B8z8Q",
+            "checkin_times": [
+                {"date": "2014-08-27", "time": "17:49:18"},
+                {"date": "2015-12-19", "time": "21:30:31"},
+                {"date": "2018-11-27", "time": "15:53:50"}
+             ]
+        },
+        {
+            "business_id": "--q6datkI-f0EoVheXNEeQ",
+            "checkin_times": [
+                {"date": "2014-01-28", "time": "20:56:04"},
+                {"date": "2014-11-16", "time": "16:11:58"},
+                {"date": "2015-11-15", "time": "19:21:53"},
+                {"date": "2015-11-15", "time": "19:33:39"}
+             ]
+        },
+        {
+            "business_id": "--qvQS4MigHPykD2GV0-zw",
+            "checkin_times": [
+                {"date": "2019-04-11", "time": "18:30:12"}
+             ]
+        },
+        {
+            "business_id": "--wIGbLEhlpl_UeAIyDmZQ",
+            "checkin_times": [
+                {"date": "2015-06-06", "time": "20:01:06"},
+                {"date": "2019-03-14", "time": "22:01:52"}
+             ]
+        },
+        {
+            "business_id": "-0FA-Qdi3SPYIoJz9UQw-A",
+            "checkin_times": [
+                {"date": "2018-09-29", "time": "18:55:17"},
+                {"date": "2018-10-20", "time": "16:48:05"},
+                {"date": "2018-10-20", "time": "22:20:24"}
+             ]
+        },
+        {
+            "business_id": "-0Hj1hb_XW6ybWq2M7QhGA",
+            "checkin_times": [
+                {"date": "2011-04-23", "time": "21:11:22"},
+                {"date": "2014-05-04", "time": "19:42:48"},
+                {"date": "2014-05-11", "time": "19:16:08"},
+                {"date": "2014-06-04", "time": "19:14:18"},
+                {"date": "2015-12-05", "time": "19:22:42"},
+                {"date": "2017-05-15", "time": "23:19:00"}
+             ]
+        },
+        {
+            "business_id": "-0KMvRFwDWdVBeTpT11iHw",
+            "checkin_times": [
+                {"date": "2012-07-13", "time": "21:43:57"},
+                {"date": "2016-12-24", "time": "02:27:31"},
+                {"date": "2017-08-31", "time": "00:35:26"}
+             ]
+        },
+        {
+            "business_id": "-0LPtgJC31FWMrMv317p0Q",
+            "checkin_times": [
+                {"date": "2013-04-13", "time": "12:35:33"},
+                {"date": "2013-08-19", "time": "23:35:49"},
+                {"date": "2013-10-04", "time": "19:14:56"}
+             ]
+        },
+        {
+            "business_id": "-0M3o2uWBnQZwd3hmfEwuw",
+            "checkin_times": [
+                {"date": "2016-09-10", "time": "19:26:19"},
+                {"date": "2018-09-08", "time": "14:15:37"},
+                {"date": "2019-09-13", "time": "22:47:25"}
+             ]
+        },
+        {
+            "business_id": "-0RRiWDtfnS16AKCtfvBZg",
+            "checkin_times": [
+                {"date": "2017-05-19", "time": "14:30:16"},
+                {"date": "2017-05-19", "time": "14:30:25"},
+                {"date": "2017-08-28", "time": "15:49:37"},
+                {"date": "2017-09-20", "time": "20:19:51"},
+                {"date": "2017-10-01", "time": "16:31:05"},
+                {"date": "2017-10-01", "time": "16:56:27"},
+                {"date": "2017-12-27", "time": "23:33:20"}
+             ]
+        },
+        {
+            "business_id": "-0Soj75v-XoRcf2ERr8Bmg",
+            "checkin_times": [
+                {"date": "2019-06-05", "time": "18:22:49"}
+             ]
+        },
+        {
+            "business_id": "-0ZumLlFjMh4ZW1z2nXGug",
+            "checkin_times": [
+                {"date": "2011-09-24", "time": "21:37:32"},
+                {"date": "2014-03-10", "time": "20:20:07"},
+                {"date": "2015-05-27", "time": "00:40:24"},
+                {"date": "2015-08-29", "time": "17:58:15"},
+                {"date": "2018-03-16", "time": "15:03:26"}
+             ]
+        },
+        {
+            "business_id": "-0aOudcaAyac0VJbMX-L1g",
+            "checkin_times": [
+                {"date": "2015-03-16", "time": "23:51:16"},
+                {"date": "2015-12-21", "time": "04:48:01"},
+                {"date": "2016-10-28", "time": "20:22:42"},
+                {"date": "2016-10-28", "time": "20:23:00"}
+             ]
+        },
+        {
+            "business_id": "-0b86isaXMY0v4g-V8GZ9Q",
+            "checkin_times": [
+                {"date": "2013-10-22", "time": "16:49:21"},
+                {"date": "2014-11-21", "time": "17:39:24"}
+             ]
+        },
+        {
+            "business_id": "-0d-BfFSU0bwLcnMaGRxYw",
+            "checkin_times": [
+                {"date": "2014-08-07", "time": "18:30:48"},
+                {"date": "2014-09-16", "time": "20:41:45"},
+                {"date": "2014-10-12", "time": "23:22:27"},
+                {"date": "2015-07-21", "time": "20:43:56"},
+                {"date": "2015-07-21", "time": "20:45:07"}
+             ]
+        },
+        {
+            "business_id": "-0jz6c3C6i7RG7Ag22K-Pg",
+            "checkin_times": [
+                {"date": "2015-05-02", "time": "19:49:05"},
+                {"date": "2015-05-06", "time": "03:52:18"},
+                {"date": "2015-09-26", "time": "01:13:19"}
+             ]
+        },
+        {
+            "business_id": "-0y3MZU2oYP8r1ruDP1bfQ",
+            "checkin_times": [
+                {"date": "2015-04-11", "time": "13:14:14"},
+                {"date": "2015-11-21", "time": "16:05:56"},
+                {"date": "2016-05-06", "time": "14:10:04"},
+                {"date": "2017-08-09", "time": "15:15:10"},
+                {"date": "2017-10-21", "time": "15:12:56"}
+             ]
+        },
+        {
+            "business_id": "-1BPe8UjF2_l3nVk-DFUjA",
+            "checkin_times": [
+                {"date": "2015-12-03", "time": "18:44:00"},
+                {"date": "2016-03-17", "time": "18:19:21"},
+                {"date": "2016-11-02", "time": "15:58:38"}
+             ]
+        },
+        {
+            "business_id": "-1E2CQu_38mkghvmZgCCRw",
+            "checkin_times": [
+                {"date": "2019-04-04", "time": "22:02:37"}
+             ]
+        },
+        {
+            "business_id": "-1wzk43IZ5D9Ysu6kzb5xA",
+            "checkin_times": [
+                {"date": "2019-02-27", "time": "14:03:08"}
+             ]
+        },
+        {
+            "business_id": "-23R9P2eG7VTc6DVLjFKzA",
+            "checkin_times": [
+                {"date": "2011-12-21", "time": "19:02:51"},
+                {"date": "2012-04-15", "time": "04:21:39"},
+                {"date": "2012-04-15", "time": "14:23:56"},
+                {"date": "2013-06-30", "time": "22:39:51"},
+                {"date": "2013-10-04", "time": "20:34:13"},
+                {"date": "2014-07-16", "time": "02:28:40"}
+             ]
+        },
+        {
+            "business_id": "-26MGfikhJiTfCI-GqmzhQ",
+            "checkin_times": [
+                {"date": "2018-06-13", "time": "20:16:07"}
+             ]
+        },
+        {
+            "business_id": "-2bLuJsMZ0WhI9daurVQNQ",
+            "checkin_times": [
+                {"date": "2015-05-29", "time": "16:46:17"},
+                {"date": "2015-06-01", "time": "15:03:53"}
+             ]
+        },
+        {
+            "business_id": "-2hDBMaza_ldqnZdiU06LQ",
+            "checkin_times": [
+                {"date": "2011-10-08", "time": "12:02:23"},
+                {"date": "2014-08-18", "time": "02:11:11"},
+                {"date": "2016-01-07", "time": "05:27:51"},
+                {"date": "2016-10-21", "time": "20:15:55"},
+                {"date": "2016-12-01", "time": "03:57:10"},
+                {"date": "2016-12-29", "time": "01:54:42"},
+                {"date": "2018-07-22", "time": "19:55:31"},
+                {"date": "2018-09-07", "time": "01:42:54"},
+                {"date": "2019-03-08", "time": "03:41:06"}
+             ]
+        }
+    ]
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.03.query.sqlpp
similarity index 86%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.03.query.sqlpp
index 30d21cfd6c..2757b02bc3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.03.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times D
+WHERE D.date > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.04.get.http
similarity index 93%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.04.get.http
index 57d830aed0..a55ce93039 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.04.get.http
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
+/connector?dataverseName=TestYelp&datasetName=YelpCheckin
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.05.query.sqlpp
similarity index 86%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.05.query.sqlpp
index 30d21cfd6c..2757b02bc3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.05.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times D
+WHERE D.date > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.06.update.sqlpp
similarity index 90%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.06.update.sqlpp
index 075d204e2d..ea1dba3af8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.06.update.sqlpp
@@ -17,6 +17,7 @@
  * under the License.
  */
 
-USE test;
+USE TestYelp;
 
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+DELETE FROM YelpCheckin C
+WHERE C.business_id != "--1UhMGODdWsrMastO9DZw";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.07.query.sqlpp
similarity index 86%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.07.query.sqlpp
index 30d21cfd6c..2757b02bc3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.07.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times D
+WHERE D.date > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.08.get.http
similarity index 93%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.08.get.http
index 57d830aed0..a55ce93039 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.08.get.http
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
+/connector?dataverseName=TestYelp&datasetName=YelpCheckin
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.09.query.sqlpp
similarity index 86%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.09.query.sqlpp
index 30d21cfd6c..2757b02bc3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.09.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times D
+WHERE D.date > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.10.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.10.update.sqlpp
new file mode 100644
index 0000000000..b3f84663df
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.10.update.sqlpp
@@ -0,0 +1,276 @@
+/*
+ * 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 TestYelp;
+
+UPSERT INTO YelpCheckin (
+    [
+        {
+            "business_id": "--1UhMGODdWsrMastO9DZw",
+            "checkin_times": [
+                {"date": "2016-04-26", "time": "19:49:16"},
+                {"date": "2016-08-30", "time": "18:36:57"},
+                {"date": "2016-10-15", "time": "02:45:18"},
+                {"date": "2016-11-18", "time": "01:54:50"},
+                {"date": "2017-04-20", "time": "18:39:06"},
+                {"date": "2017-05-03", "time": "17:58:02"},
+                {"date": "2019-03-19", "time": "22:04:48"}
+             ]
+        },
+        {
+            "business_id": "--EF5N7P70J_UYBTPypYlA",
+            "checkin_times": [
+                {"date": "2018-05-25", "time": "19:52:07"},
+                {"date": "2018-09-18", "time": "16:09:44"},
+                {"date": "2019-10-18", "time": "21:29:09"}
+             ]
+        },
+        {
+            "business_id": "--Ni3oJ4VOqfOEu7Sj2Vzg",
+            "checkin_times": [
+                {"date": "2019-06-07", "time": "17:54:58"}
+             ]
+        },
+        {
+            "business_id": "--Y1Adl1YUWfYIRSd8vkmA",
+            "checkin_times": [
+                {"date": "2011-05-03", "time": "20:54:05"},
+                {"date": "2011-08-23", "time": "20:49:45"},
+                {"date": "2014-12-04", "time": "06:13:01"},
+                {"date": "2016-11-16", "time": "19:25:55"}
+             ]
+        },
+        {
+            "business_id": "--YPwqIlRJrhHkJcjY3eiA",
+            "checkin_times": [
+                {"date": "2016-06-18", "time": "21:35:45"},
+                {"date": "2016-10-15", "time": "18:17:51"}
+             ]
+        },
+        {
+            "business_id": "--e8PjCNhEz32pprnPhCwQ",
+            "checkin_times": [
+                {"date": "2015-04-02", "time": "21:45:17"}
+             ]
+        },
+        {
+            "business_id": "--kinfHwmtdjz03g8B8z8Q",
+            "checkin_times": [
+                {"date": "2014-08-27", "time": "17:49:18"},
+                {"date": "2015-12-19", "time": "21:30:31"},
+                {"date": "2018-11-27", "time": "15:53:50"}
+             ]
+        },
+        {
+            "business_id": "--q6datkI-f0EoVheXNEeQ",
+            "checkin_times": [
+                {"date": "2014-01-28", "time": "20:56:04"},
+                {"date": "2014-11-16", "time": "16:11:58"},
+                {"date": "2015-11-15", "time": "19:21:53"},
+                {"date": "2015-11-15", "time": "19:33:39"}
+             ]
+        },
+        {
+            "business_id": "--qvQS4MigHPykD2GV0-zw",
+            "checkin_times": [
+                {"date": "2019-04-11", "time": "18:30:12"}
+             ]
+        },
+        {
+            "business_id": "--wIGbLEhlpl_UeAIyDmZQ",
+            "checkin_times": [
+                {"date": "2015-06-06", "time": "20:01:06"},
+                {"date": "2019-03-14", "time": "22:01:52"}
+             ]
+        },
+        {
+            "business_id": "-0FA-Qdi3SPYIoJz9UQw-A",
+            "checkin_times": [
+                {"date": "2018-09-29", "time": "18:55:17"},
+                {"date": "2018-10-20", "time": "16:48:05"},
+                {"date": "2018-10-20", "time": "22:20:24"}
+             ]
+        },
+        {
+            "business_id": "-0Hj1hb_XW6ybWq2M7QhGA",
+            "checkin_times": [
+                {"date": "2011-04-23", "time": "21:11:22"},
+                {"date": "2014-05-04", "time": "19:42:48"},
+                {"date": "2014-05-11", "time": "19:16:08"},
+                {"date": "2014-06-04", "time": "19:14:18"},
+                {"date": "2015-12-05", "time": "19:22:42"},
+                {"date": "2017-05-15", "time": "23:19:00"}
+             ]
+        },
+        {
+            "business_id": "-0KMvRFwDWdVBeTpT11iHw",
+            "checkin_times": [
+                {"date": "2012-07-13", "time": "21:43:57"},
+                {"date": "2016-12-24", "time": "02:27:31"},
+                {"date": "2017-08-31", "time": "00:35:26"}
+             ]
+        },
+        {
+            "business_id": "-0LPtgJC31FWMrMv317p0Q",
+            "checkin_times": [
+                {"date": "2013-04-13", "time": "12:35:33"},
+                {"date": "2013-08-19", "time": "23:35:49"},
+                {"date": "2013-10-04", "time": "19:14:56"}
+             ]
+        },
+        {
+            "business_id": "-0M3o2uWBnQZwd3hmfEwuw",
+            "checkin_times": [
+                {"date": "2016-09-10", "time": "19:26:19"},
+                {"date": "2018-09-08", "time": "14:15:37"},
+                {"date": "2019-09-13", "time": "22:47:25"}
+             ]
+        },
+        {
+            "business_id": "-0RRiWDtfnS16AKCtfvBZg",
+            "checkin_times": [
+                {"date": "2017-05-19", "time": "14:30:16"},
+                {"date": "2017-05-19", "time": "14:30:25"},
+                {"date": "2017-08-28", "time": "15:49:37"},
+                {"date": "2017-09-20", "time": "20:19:51"},
+                {"date": "2017-10-01", "time": "16:31:05"},
+                {"date": "2017-10-01", "time": "16:56:27"},
+                {"date": "2017-12-27", "time": "23:33:20"}
+             ]
+        },
+        {
+            "business_id": "-0Soj75v-XoRcf2ERr8Bmg",
+            "checkin_times": [
+                {"date": "2019-06-05", "time": "18:22:49"}
+             ]
+        },
+        {
+            "business_id": "-0ZumLlFjMh4ZW1z2nXGug",
+            "checkin_times": [
+                {"date": "2011-09-24", "time": "21:37:32"},
+                {"date": "2014-03-10", "time": "20:20:07"},
+                {"date": "2015-05-27", "time": "00:40:24"},
+                {"date": "2015-08-29", "time": "17:58:15"},
+                {"date": "2018-03-16", "time": "15:03:26"}
+             ]
+        },
+        {
+            "business_id": "-0aOudcaAyac0VJbMX-L1g",
+            "checkin_times": [
+                {"date": "2015-03-16", "time": "23:51:16"},
+                {"date": "2015-12-21", "time": "04:48:01"},
+                {"date": "2016-10-28", "time": "20:22:42"},
+                {"date": "2016-10-28", "time": "20:23:00"}
+             ]
+        },
+        {
+            "business_id": "-0b86isaXMY0v4g-V8GZ9Q",
+            "checkin_times": [
+                {"date": "2013-10-22", "time": "16:49:21"},
+                {"date": "2014-11-21", "time": "17:39:24"}
+             ]
+        },
+        {
+            "business_id": "-0d-BfFSU0bwLcnMaGRxYw",
+            "checkin_times": [
+                {"date": "2014-08-07", "time": "18:30:48"},
+                {"date": "2014-09-16", "time": "20:41:45"},
+                {"date": "2014-10-12", "time": "23:22:27"},
+                {"date": "2015-07-21", "time": "20:43:56"},
+                {"date": "2015-07-21", "time": "20:45:07"}
+             ]
+        },
+        {
+            "business_id": "-0jz6c3C6i7RG7Ag22K-Pg",
+            "checkin_times": [
+                {"date": "2015-05-02", "time": "19:49:05"},
+                {"date": "2015-05-06", "time": "03:52:18"},
+                {"date": "2015-09-26", "time": "01:13:19"}
+             ]
+        },
+        {
+            "business_id": "-0y3MZU2oYP8r1ruDP1bfQ",
+            "checkin_times": [
+                {"date": "2015-04-11", "time": "13:14:14"},
+                {"date": "2015-11-21", "time": "16:05:56"},
+                {"date": "2016-05-06", "time": "14:10:04"},
+                {"date": "2017-08-09", "time": "15:15:10"},
+                {"date": "2017-10-21", "time": "15:12:56"}
+             ]
+        },
+        {
+            "business_id": "-1BPe8UjF2_l3nVk-DFUjA",
+            "checkin_times": [
+                {"date": "2015-12-03", "time": "18:44:00"},
+                {"date": "2016-03-17", "time": "18:19:21"},
+                {"date": "2016-11-02", "time": "15:58:38"}
+             ]
+        },
+        {
+            "business_id": "-1E2CQu_38mkghvmZgCCRw",
+            "checkin_times": [
+                {"date": "2019-04-04", "time": "22:02:37"}
+             ]
+        },
+        {
+            "business_id": "-1wzk43IZ5D9Ysu6kzb5xA",
+            "checkin_times": [
+                {"date": "2019-02-27", "time": "14:03:08"}
+             ]
+        },
+        {
+            "business_id": "-23R9P2eG7VTc6DVLjFKzA",
+            "checkin_times": [
+                {"date": "2011-12-21", "time": "19:02:51"},
+                {"date": "2012-04-15", "time": "04:21:39"},
+                {"date": "2012-04-15", "time": "14:23:56"},
+                {"date": "2013-06-30", "time": "22:39:51"},
+                {"date": "2013-10-04", "time": "20:34:13"},
+                {"date": "2014-07-16", "time": "02:28:40"}
+             ]
+        },
+        {
+            "business_id": "-26MGfikhJiTfCI-GqmzhQ",
+            "checkin_times": [
+                {"date": "2018-06-13", "time": "20:16:07"}
+             ]
+        },
+        {
+            "business_id": "-2bLuJsMZ0WhI9daurVQNQ",
+            "checkin_times": [
+                {"date": "2015-05-29", "time": "16:46:17"},
+                {"date": "2015-06-01", "time": "15:03:53"}
+             ]
+        },
+        {
+            "business_id": "-2hDBMaza_ldqnZdiU06LQ",
+            "checkin_times": [
+                {"date": "2011-10-08", "time": "12:02:23"},
+                {"date": "2014-08-18", "time": "02:11:11"},
+                {"date": "2016-01-07", "time": "05:27:51"},
+                {"date": "2016-10-21", "time": "20:15:55"},
+                {"date": "2016-12-01", "time": "03:57:10"},
+                {"date": "2016-12-29", "time": "01:54:42"},
+                {"date": "2018-07-22", "time": "19:55:31"},
+                {"date": "2018-09-07", "time": "01:42:54"},
+                {"date": "2019-03-08", "time": "03:41:06"}
+             ]
+        }
+    ]
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.11.query.sqlpp
similarity index 86%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.11.query.sqlpp
index 30d21cfd6c..2757b02bc3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.11.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times D
+WHERE D.date > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.12.get.http
similarity index 93%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.12.get.http
index 57d830aed0..a55ce93039 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.12.get.http
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
+/connector?dataverseName=TestYelp&datasetName=YelpCheckin
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.13.query.sqlpp
similarity index 86%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.13.query.sqlpp
index 30d21cfd6c..2757b02bc3 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-3/use-case-3.13.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times D
+WHERE D.date > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.01.ddl.sqlpp
similarity index 52%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.01.ddl.sqlpp
index a271778586..410225afe9 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.01.ddl.sqlpp
@@ -17,15 +17,24 @@
  * under the License.
  */
 
-DROP DATAVERSE test if exists;
-CREATE DATAVERSE test;
-USE test;
+/*
+ * Description: Verify the following DML actions for an array->record->array->atomic index:
+ *     1) Insert into an empty index (non bulk-load operation).
+ *     2) Delete all-but-one entry from the index.
+ *     3) Upsert all entries into the index.
+ */
+
+DROP DATAVERSE TestYelp IF EXISTS;
+CREATE DATAVERSE TestYelp;
+USE TestYelp;
+
+CREATE TYPE CheckinType AS {
+    business_id: string
+};
 
-CREATE TYPE ColumnType AS {
-    id: int
+CREATE DATASET YelpCheckin(CheckinType) PRIMARY KEY business_id WITH {
+    "storage-format" : {"format" : "column"}
 };
 
-CREATE DATASET ColumnDataset(ColumnType)
-PRIMARY KEY id WITH {
-    "storage-format": {"format" : "column"}
-};
\ No newline at end of file
+CREATE INDEX IdxYelpCheckinDates ON YelpCheckin (UNNEST checkin_times UNNEST dates : string ) EXCLUDE UNKNOWN KEY;
+CREATE INDEX IdxYelpCheckinTimes ON YelpCheckin (UNNEST checkin_times UNNEST times : string ) EXCLUDE UNKNOWN KEY;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.02.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.02.update.sqlpp
new file mode 100644
index 0000000000..0360912c15
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.02.update.sqlpp
@@ -0,0 +1,425 @@
+/*
+ * 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 TestYelp;
+
+INSERT INTO YelpCheckin (
+      [
+        {
+            "business_id": "--1UhMGODdWsrMastO9DZw",
+            "checkin_times": [
+                {
+                    "dates": ["2016-04-26", "2016-08-30", "2016-10-15", "2016-11-18"],
+                    "times": ["19:49:16", "18:36:57", "02:45:18", "01:54:50"]
+                },
+                {
+                    "dates": ["2017-04-20", "2017-05-03"],
+                    "times": ["18:39:06", "17:58:02"]
+                },
+                {
+                    "dates": ["2019-03-19"],
+                    "times": ["22:04:48"]
+                }
+             ]
+        },
+        {
+            "business_id": "--EF5N7P70J_UYBTPypYlA",
+            "checkin_times": [
+                {
+                    "dates": ["2018-05-25", "2018-09-18"],
+                    "times": ["19:52:07", "16:09:44"]
+                },
+                {
+                    "dates": ["2019-10-18"],
+                    "times": ["21:29:09"]
+                }
+             ]
+        },
+        {
+            "business_id": "--Ni3oJ4VOqfOEu7Sj2Vzg",
+            "checkin_times": [
+                {
+                    "dates": ["2019-06-07"],
+                    "times": ["17:54:58"]
+                }
+             ]
+        },
+        {
+            "business_id": "--Y1Adl1YUWfYIRSd8vkmA",
+            "checkin_times": [
+                {
+                    "dates": ["2011-05-03", "2011-08-23"],
+                    "times": ["20:54:05", "20:49:45"]
+                },
+                {
+                    "dates": ["2014-12-04"],
+                    "times": ["06:13:01"]
+                },
+                {
+                    "dates": ["2016-11-16"],
+                    "times": ["19:25:55"]
+                }
+             ]
+        },
+        {
+            "business_id": "--YPwqIlRJrhHkJcjY3eiA",
+            "checkin_times": [
+               {
+                    "dates": ["2016-06-18", "2016-10-15"],
+                    "times": ["21:35:45", "18:17:51"]
+                }
+             ]
+        },
+        {
+            "business_id": "--e8PjCNhEz32pprnPhCwQ",
+            "checkin_times": [
+                {
+                    "dates": ["2015-04-02"],
+                    "times": ["21:45:17"]
+                }
+             ]
+        },
+        {
+            "business_id": "--kinfHwmtdjz03g8B8z8Q",
+            "checkin_times": [
+                {
+                    "dates": ["2014-08-27"],
+                    "times": ["17:49:18"]
+                },
+                {
+                    "dates": ["2015-12-19"],
+                    "times": ["21:30:31"]
+                },
+                {
+                    "dates": ["2018-11-27"],
+                    "times": ["15:53:50"]
+                }
+             ]
+        },
+        {
+            "business_id": "--q6datkI-f0EoVheXNEeQ",
+            "checkin_times": [
+                {
+                    "dates": ["2014-01-28", "2014-11-16"],
+                    "times": ["20:56:04", "16:11:58"]
+                },
+                {
+                    "dates": ["2015-11-15", "2015-11-15"],
+                    "times": ["19:21:53", "19:33:39"]
+                }
+             ]
+        },
+        {
+            "business_id": "--qvQS4MigHPykD2GV0-zw",
+            "checkin_times": [
+                {
+                    "dates": ["2019-04-11"],
+                    "times": ["18:30:12"]
+                }
+             ]
+        },
+        {
+            "business_id": "--wIGbLEhlpl_UeAIyDmZQ",
+            "checkin_times": [
+                {
+                    "dates": ["2015-06-06"],
+                    "times": ["20:01:06"]
+                },
+                {
+                    "dates": ["2019-03-14"],
+                    "times": ["22:01:52"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0FA-Qdi3SPYIoJz9UQw-A",
+            "checkin_times": [
+                {
+                    "dates": ["2018-09-29", "2018-10-20", "2018-10-20"],
+                    "times": ["18:55:17", "16:48:05", "22:20:24"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0Hj1hb_XW6ybWq2M7QhGA",
+            "checkin_times": [
+                {
+                    "dates": ["2011-04-23"],
+                    "times": ["21:11:22"]
+                },
+                {
+                    "dates": ["2014-05-04", "2014-05-11", "2014-06-04"],
+                    "times": ["19:42:48", "19:16:08", "19:14:18"]
+                },
+                {
+                    "dates": ["2015-12-05"],
+                    "times": ["19:22:42"]
+                },
+                {
+                    "dates": ["2017-05-15"],
+                    "times": ["23:19:00"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0KMvRFwDWdVBeTpT11iHw",
+            "checkin_times": [
+                {
+                    "dates": ["2012-07-13"],
+                    "times": ["21:43:57"]
+                },
+                {
+                    "dates": ["2016-12-24"],
+                    "times": ["02:27:31"]
+                },
+                {
+                    "dates": ["2017-08-31"],
+                    "times": ["00:35:26"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0LPtgJC31FWMrMv317p0Q",
+            "checkin_times": [
+                {
+                    "dates": ["2013-04-13", "2013-08-19", "2013-10-04"],
+                    "times": ["12:35:33", "23:35:49", "19:14:56"]
+                }
+
+             ]
+        },
+        {
+            "business_id": "-0M3o2uWBnQZwd3hmfEwuw",
+            "checkin_times": [
+                {
+                    "dates": ["2016-09-10"],
+                    "times": ["19:26:19"]
+                },
+                {
+                    "dates": ["2018-09-08"],
+                    "times": ["14:15:37"]
+                },
+                {
+                    "dates": ["2019-09-13"],
+                    "times": ["22:47:25"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0RRiWDtfnS16AKCtfvBZg",
+            "checkin_times": [
+                 {
+                    "dates": ["2017-05-19", "2017-05-19", "2017-08-28", "2017-09-20", "2017-10-01", "2017-10-01", "2017-12-27"],
+                    "times": ["14:30:16", "14:30:25", "15:49:37", "20:19:51", "16:31:05", "16:56:27", "23:33:20"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0Soj75v-XoRcf2ERr8Bmg",
+            "checkin_times": [
+                {
+                    "dates": ["2019-06-05"],
+                    "times": ["18:22:49"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0ZumLlFjMh4ZW1z2nXGug",
+            "checkin_times": [
+                {
+                    "dates": ["2011-09-24"],
+                    "times": ["21:37:32"]
+                },
+                {
+                    "dates": ["2014-03-10"],
+                    "times": ["20:20:07"]
+                },
+                {
+                    "dates": ["2015-05-27", "2015-08-29"],
+                    "times": ["00:40:24", "17:58:15"]
+                },
+                {
+                    "dates": ["2018-03-16"],
+                    "times": ["15:03:26"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0aOudcaAyac0VJbMX-L1g",
+            "checkin_times": [
+                {
+                    "dates": ["2015-03-16", "2015-12-21"],
+                    "times": ["23:51:16", "04:48:01"]
+                },
+                {
+                    "dates": ["2016-10-28", "2016-10-28"],
+                    "times": ["20:22:42", "20:23:00"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0b86isaXMY0v4g-V8GZ9Q",
+            "checkin_times": [
+                {
+                    "dates": ["2013-10-22"],
+                    "times": ["16:49:21"]
+                },
+                {
+                    "dates": ["2014-11-21"],
+                    "times": ["17:39:24"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0d-BfFSU0bwLcnMaGRxYw",
+            "checkin_times": [
+                {
+                    "dates": ["2014-08-07", "2014-09-16", "2014-10-12"],
+                    "times": ["18:30:48", "20:41:45", "23:22:27"]
+                },
+                {
+                    "dates": ["2015-07-21", "2015-07-21"],
+                    "times": ["20:43:56", "20:45:07"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0jz6c3C6i7RG7Ag22K-Pg",
+            "checkin_times": [
+                {
+                    "dates": ["2015-05-02", "2015-05-06", "2015-09-26"],
+                    "times": ["19:49:05", "03:52:18", "01:13:19"]
+                }
+
+             ]
+        },
+        {
+            "business_id": "-0y3MZU2oYP8r1ruDP1bfQ",
+            "checkin_times": [
+                {
+                    "dates": ["2015-04-11", "2015-11-21"],
+                    "times": ["13:14:14", "16:05:56"]
+                },
+                {
+                    "dates": ["2016-05-06"],
+                    "times": ["14:10:04"]
+                },
+                {
+                    "dates": ["2017-08-09", "2017-10-21"],
+                    "times": ["15:15:10", "15:12:56"]
+                }
+             ]
+        },
+        {
+            "business_id": "-1BPe8UjF2_l3nVk-DFUjA",
+            "checkin_times": [
+                {
+                    "dates": ["2015-12-03"],
+                    "times": ["18:44:00"]
+                },
+                {
+                    "dates": ["2016-03-17", "2016-11-02"],
+                    "times": ["18:19:21", "15:58:38"]
+                }
+             ]
+        },
+        {
+            "business_id": "-1E2CQu_38mkghvmZgCCRw",
+            "checkin_times": [
+                {
+                    "dates": ["2019-04-04"],
+                    "times": ["22:02:37"]
+                }
+             ]
+        },
+        {
+            "business_id": "-1wzk43IZ5D9Ysu6kzb5xA",
+            "checkin_times": [
+                {
+                    "dates": ["2019-02-27"],
+                    "times": ["14:03:08"]
+                }
+             ]
+        },
+        {
+            "business_id": "-23R9P2eG7VTc6DVLjFKzA",
+            "checkin_times": [
+                {
+                    "dates": ["2011-12-21"],
+                    "times": ["19:02:51"]
+                },
+                {
+                    "dates": ["2012-04-15", "2012-04-15"],
+                    "times": ["04:21:39", "14:23:56"]
+                },
+                {
+                    "dates": ["2013-06-30", "2013-10-04"],
+                    "times": ["22:39:51", "20:34:13"]
+                },
+                {
+                    "dates": ["2014-07-16"],
+                    "times": ["02:28:40"]
+                }
+             ]
+        },
+        {
+            "business_id": "-26MGfikhJiTfCI-GqmzhQ",
+            "checkin_times": [
+                {
+                    "dates": ["2018-06-13"],
+                    "times": ["20:16:07"]
+                }
+             ]
+        },
+        {
+            "business_id": "-2bLuJsMZ0WhI9daurVQNQ",
+            "checkin_times": [
+                {
+                    "dates": ["2015-05-29", "2015-06-01"],
+                    "times": ["16:46:17", "15:03:53"]
+                }
+             ]
+        },
+        {
+            "business_id": "-2hDBMaza_ldqnZdiU06LQ",
+            "checkin_times": [
+                {
+                    "dates": ["2011-10-08"],
+                    "times": ["12:02:23"]
+                },
+                {
+                    "dates": ["2014-08-18"],
+                    "times": ["02:11:11"]
+                },
+                {
+                    "dates": ["2016-01-07", "2016-10-21", "2016-12-01", "2016-12-29"],
+                    "times": ["05:27:51", "20:15:55", "03:57:10", "01:54:42"]
+                },
+                {
+                    "dates": ["2018-07-22", "2018-09-07"],
+                    "times": ["19:55:31", "01:42:54"]
+                },
+                {
+                    "dates": ["2019-03-08"],
+                    "times": ["03:41:06"]
+                }
+             ]
+        }
+    ]
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.03.query.sqlpp
similarity index 86%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.03.query.sqlpp
index 30d21cfd6c..3406a35df0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.03.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times CT, CT.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.04.get.http
similarity index 93%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.04.get.http
index 57d830aed0..a55ce93039 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.04.get.http
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
+/connector?dataverseName=TestYelp&datasetName=YelpCheckin
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.05.query.sqlpp
similarity index 86%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.05.query.sqlpp
index 30d21cfd6c..3406a35df0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.05.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times CT, CT.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.06.update.sqlpp
similarity index 90%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.06.update.sqlpp
index 075d204e2d..ea1dba3af8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.06.update.sqlpp
@@ -17,6 +17,7 @@
  * under the License.
  */
 
-USE test;
+USE TestYelp;
 
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+DELETE FROM YelpCheckin C
+WHERE C.business_id != "--1UhMGODdWsrMastO9DZw";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.07.query.sqlpp
similarity index 86%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.07.query.sqlpp
index 30d21cfd6c..3406a35df0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.07.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times CT, CT.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.08.get.http
similarity index 93%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.08.get.http
index 57d830aed0..a55ce93039 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.08.get.http
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
+/connector?dataverseName=TestYelp&datasetName=YelpCheckin
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.09.query.sqlpp
similarity index 86%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.09.query.sqlpp
index 30d21cfd6c..3406a35df0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.09.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times CT, CT.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.10.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.10.update.sqlpp
new file mode 100644
index 0000000000..b5b6c72d7f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.10.update.sqlpp
@@ -0,0 +1,425 @@
+/*
+ * 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 TestYelp;
+
+UPSERT INTO YelpCheckin (
+      [
+        {
+            "business_id": "--1UhMGODdWsrMastO9DZw",
+            "checkin_times": [
+                {
+                    "dates": ["2016-04-26", "2016-08-30", "2016-10-15", "2016-11-18"],
+                    "times": ["19:49:16", "18:36:57", "02:45:18", "01:54:50"]
+                },
+                {
+                    "dates": ["2017-04-20", "2017-05-03"],
+                    "times": ["18:39:06", "17:58:02"]
+                },
+                {
+                    "dates": ["2019-03-19"],
+                    "times": ["22:04:48"]
+                }
+             ]
+        },
+        {
+            "business_id": "--EF5N7P70J_UYBTPypYlA",
+            "checkin_times": [
+                {
+                    "dates": ["2018-05-25", "2018-09-18"],
+                    "times": ["19:52:07", "16:09:44"]
+                },
+                {
+                    "dates": ["2019-10-18"],
+                    "times": ["21:29:09"]
+                }
+             ]
+        },
+        {
+            "business_id": "--Ni3oJ4VOqfOEu7Sj2Vzg",
+            "checkin_times": [
+                {
+                    "dates": ["2019-06-07"],
+                    "times": ["17:54:58"]
+                }
+             ]
+        },
+        {
+            "business_id": "--Y1Adl1YUWfYIRSd8vkmA",
+            "checkin_times": [
+                {
+                    "dates": ["2011-05-03", "2011-08-23"],
+                    "times": ["20:54:05", "20:49:45"]
+                },
+                {
+                    "dates": ["2014-12-04"],
+                    "times": ["06:13:01"]
+                },
+                {
+                    "dates": ["2016-11-16"],
+                    "times": ["19:25:55"]
+                }
+             ]
+        },
+        {
+            "business_id": "--YPwqIlRJrhHkJcjY3eiA",
+            "checkin_times": [
+               {
+                    "dates": ["2016-06-18", "2016-10-15"],
+                    "times": ["21:35:45", "18:17:51"]
+                }
+             ]
+        },
+        {
+            "business_id": "--e8PjCNhEz32pprnPhCwQ",
+            "checkin_times": [
+                {
+                    "dates": ["2015-04-02"],
+                    "times": ["21:45:17"]
+                }
+             ]
+        },
+        {
+            "business_id": "--kinfHwmtdjz03g8B8z8Q",
+            "checkin_times": [
+                {
+                    "dates": ["2014-08-27"],
+                    "times": ["17:49:18"]
+                },
+                {
+                    "dates": ["2015-12-19"],
+                    "times": ["21:30:31"]
+                },
+                {
+                    "dates": ["2018-11-27"],
+                    "times": ["15:53:50"]
+                }
+             ]
+        },
+        {
+            "business_id": "--q6datkI-f0EoVheXNEeQ",
+            "checkin_times": [
+                {
+                    "dates": ["2014-01-28", "2014-11-16"],
+                    "times": ["20:56:04", "16:11:58"]
+                },
+                {
+                    "dates": ["2015-11-15", "2015-11-15"],
+                    "times": ["19:21:53", "19:33:39"]
+                }
+             ]
+        },
+        {
+            "business_id": "--qvQS4MigHPykD2GV0-zw",
+            "checkin_times": [
+                {
+                    "dates": ["2019-04-11"],
+                    "times": ["18:30:12"]
+                }
+             ]
+        },
+        {
+            "business_id": "--wIGbLEhlpl_UeAIyDmZQ",
+            "checkin_times": [
+                {
+                    "dates": ["2015-06-06"],
+                    "times": ["20:01:06"]
+                },
+                {
+                    "dates": ["2019-03-14"],
+                    "times": ["22:01:52"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0FA-Qdi3SPYIoJz9UQw-A",
+            "checkin_times": [
+                {
+                    "dates": ["2018-09-29", "2018-10-20", "2018-10-20"],
+                    "times": ["18:55:17", "16:48:05", "22:20:24"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0Hj1hb_XW6ybWq2M7QhGA",
+            "checkin_times": [
+                {
+                    "dates": ["2011-04-23"],
+                    "times": ["21:11:22"]
+                },
+                {
+                    "dates": ["2014-05-04", "2014-05-11", "2014-06-04"],
+                    "times": ["19:42:48", "19:16:08", "19:14:18"]
+                },
+                {
+                    "dates": ["2015-12-05"],
+                    "times": ["19:22:42"]
+                },
+                {
+                    "dates": ["2017-05-15"],
+                    "times": ["23:19:00"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0KMvRFwDWdVBeTpT11iHw",
+            "checkin_times": [
+                {
+                    "dates": ["2012-07-13"],
+                    "times": ["21:43:57"]
+                },
+                {
+                    "dates": ["2016-12-24"],
+                    "times": ["02:27:31"]
+                },
+                {
+                    "dates": ["2017-08-31"],
+                    "times": ["00:35:26"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0LPtgJC31FWMrMv317p0Q",
+            "checkin_times": [
+                {
+                    "dates": ["2013-04-13", "2013-08-19", "2013-10-04"],
+                    "times": ["12:35:33", "23:35:49", "19:14:56"]
+                }
+
+             ]
+        },
+        {
+            "business_id": "-0M3o2uWBnQZwd3hmfEwuw",
+            "checkin_times": [
+                {
+                    "dates": ["2016-09-10"],
+                    "times": ["19:26:19"]
+                },
+                {
+                    "dates": ["2018-09-08"],
+                    "times": ["14:15:37"]
+                },
+                {
+                    "dates": ["2019-09-13"],
+                    "times": ["22:47:25"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0RRiWDtfnS16AKCtfvBZg",
+            "checkin_times": [
+                 {
+                    "dates": ["2017-05-19", "2017-05-19", "2017-08-28", "2017-09-20", "2017-10-01", "2017-10-01", "2017-12-27"],
+                    "times": ["14:30:16", "14:30:25", "15:49:37", "20:19:51", "16:31:05", "16:56:27", "23:33:20"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0Soj75v-XoRcf2ERr8Bmg",
+            "checkin_times": [
+                {
+                    "dates": ["2019-06-05"],
+                    "times": ["18:22:49"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0ZumLlFjMh4ZW1z2nXGug",
+            "checkin_times": [
+                {
+                    "dates": ["2011-09-24"],
+                    "times": ["21:37:32"]
+                },
+                {
+                    "dates": ["2014-03-10"],
+                    "times": ["20:20:07"]
+                },
+                {
+                    "dates": ["2015-05-27", "2015-08-29"],
+                    "times": ["00:40:24", "17:58:15"]
+                },
+                {
+                    "dates": ["2018-03-16"],
+                    "times": ["15:03:26"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0aOudcaAyac0VJbMX-L1g",
+            "checkin_times": [
+                {
+                    "dates": ["2015-03-16", "2015-12-21"],
+                    "times": ["23:51:16", "04:48:01"]
+                },
+                {
+                    "dates": ["2016-10-28", "2016-10-28"],
+                    "times": ["20:22:42", "20:23:00"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0b86isaXMY0v4g-V8GZ9Q",
+            "checkin_times": [
+                {
+                    "dates": ["2013-10-22"],
+                    "times": ["16:49:21"]
+                },
+                {
+                    "dates": ["2014-11-21"],
+                    "times": ["17:39:24"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0d-BfFSU0bwLcnMaGRxYw",
+            "checkin_times": [
+                {
+                    "dates": ["2014-08-07", "2014-09-16", "2014-10-12"],
+                    "times": ["18:30:48", "20:41:45", "23:22:27"]
+                },
+                {
+                    "dates": ["2015-07-21", "2015-07-21"],
+                    "times": ["20:43:56", "20:45:07"]
+                }
+             ]
+        },
+        {
+            "business_id": "-0jz6c3C6i7RG7Ag22K-Pg",
+            "checkin_times": [
+                {
+                    "dates": ["2015-05-02", "2015-05-06", "2015-09-26"],
+                    "times": ["19:49:05", "03:52:18", "01:13:19"]
+                }
+
+             ]
+        },
+        {
+            "business_id": "-0y3MZU2oYP8r1ruDP1bfQ",
+            "checkin_times": [
+                {
+                    "dates": ["2015-04-11", "2015-11-21"],
+                    "times": ["13:14:14", "16:05:56"]
+                },
+                {
+                    "dates": ["2016-05-06"],
+                    "times": ["14:10:04"]
+                },
+                {
+                    "dates": ["2017-08-09", "2017-10-21"],
+                    "times": ["15:15:10", "15:12:56"]
+                }
+             ]
+        },
+        {
+            "business_id": "-1BPe8UjF2_l3nVk-DFUjA",
+            "checkin_times": [
+                {
+                    "dates": ["2015-12-03"],
+                    "times": ["18:44:00"]
+                },
+                {
+                    "dates": ["2016-03-17", "2016-11-02"],
+                    "times": ["18:19:21", "15:58:38"]
+                }
+             ]
+        },
+        {
+            "business_id": "-1E2CQu_38mkghvmZgCCRw",
+            "checkin_times": [
+                {
+                    "dates": ["2019-04-04"],
+                    "times": ["22:02:37"]
+                }
+             ]
+        },
+        {
+            "business_id": "-1wzk43IZ5D9Ysu6kzb5xA",
+            "checkin_times": [
+                {
+                    "dates": ["2019-02-27"],
+                    "times": ["14:03:08"]
+                }
+             ]
+        },
+        {
+            "business_id": "-23R9P2eG7VTc6DVLjFKzA",
+            "checkin_times": [
+                {
+                    "dates": ["2011-12-21"],
+                    "times": ["19:02:51"]
+                },
+                {
+                    "dates": ["2012-04-15", "2012-04-15"],
+                    "times": ["04:21:39", "14:23:56"]
+                },
+                {
+                    "dates": ["2013-06-30", "2013-10-04"],
+                    "times": ["22:39:51", "20:34:13"]
+                },
+                {
+                    "dates": ["2014-07-16"],
+                    "times": ["02:28:40"]
+                }
+             ]
+        },
+        {
+            "business_id": "-26MGfikhJiTfCI-GqmzhQ",
+            "checkin_times": [
+                {
+                    "dates": ["2018-06-13"],
+                    "times": ["20:16:07"]
+                }
+             ]
+        },
+        {
+            "business_id": "-2bLuJsMZ0WhI9daurVQNQ",
+            "checkin_times": [
+                {
+                    "dates": ["2015-05-29", "2015-06-01"],
+                    "times": ["16:46:17", "15:03:53"]
+                }
+             ]
+        },
+        {
+            "business_id": "-2hDBMaza_ldqnZdiU06LQ",
+            "checkin_times": [
+                {
+                    "dates": ["2011-10-08"],
+                    "times": ["12:02:23"]
+                },
+                {
+                    "dates": ["2014-08-18"],
+                    "times": ["02:11:11"]
+                },
+                {
+                    "dates": ["2016-01-07", "2016-10-21", "2016-12-01", "2016-12-29"],
+                    "times": ["05:27:51", "20:15:55", "03:57:10", "01:54:42"]
+                },
+                {
+                    "dates": ["2018-07-22", "2018-09-07"],
+                    "times": ["19:55:31", "01:42:54"]
+                },
+                {
+                    "dates": ["2019-03-08"],
+                    "times": ["03:41:06"]
+                }
+             ]
+        }
+    ]
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.11.query.sqlpp
similarity index 86%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.11.query.sqlpp
index 30d21cfd6c..3406a35df0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.11.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times CT, CT.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.12.get.http
similarity index 93%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.12.get.http
index 57d830aed0..a55ce93039 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.12.get.http
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
+/connector?dataverseName=TestYelp&datasetName=YelpCheckin
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.13.query.sqlpp
similarity index 86%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.13.query.sqlpp
index 30d21cfd6c..3406a35df0 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/use-case-4/use-case-4.13.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times CT, CT.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.01.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.01.ddl.sqlpp
new file mode 100644
index 0000000000..6a0d41da06
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.01.ddl.sqlpp
@@ -0,0 +1,40 @@
+/*
+ * 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: Verify the following DML actions for an array->atomic index, with an additional atomic index:
+ *     1) Insert into an empty index (non bulk-load operation), additionally with two records that have no array-index qualifying entries.
+ *     2) Delete all-but-one entry from the index.
+ *     3) Upsert all *original* (all records have qualifying array-index entries now) entries into the index.
+ */
+
+DROP DATAVERSE TestYelp IF EXISTS;
+CREATE DATAVERSE TestYelp;
+USE TestYelp;
+
+CREATE TYPE CheckinType AS {
+    checkin_id: int
+};
+
+CREATE DATASET YelpCheckin(CheckinType) PRIMARY KEY checkin_id WITH {
+    "storage-format" : {"format" : "column"}
+};
+
+CREATE INDEX IdxYelpCheckinDates ON YelpCheckin (UNNEST dates : string ) EXCLUDE UNKNOWN KEY;
+CREATE INDEX IdxYelpCheckinBusinessID ON YelpCheckin (business_id : string ?);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.02.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.02.update.sqlpp
new file mode 100644
index 0000000000..8ee1570145
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.02.update.sqlpp
@@ -0,0 +1,302 @@
+/*
+ * 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 TestYelp;
+
+INSERT INTO YelpCheckin (
+    [
+        {
+            "checkin_id": 1,
+            "business_id": "--1UhMGODdWsrMastO9DZw",
+            "dates": [
+                "2016-04-26 19:49:16",
+                "2016-08-30 18:36:57",
+                "2016-10-15 02:45:18",
+                "2016-11-18 01:54:50",
+                "2017-04-20 18:39:06",
+                "2017-05-03 17:58:02",
+                "2019-03-19 22:04:48"
+            ]
+        },
+        {
+            "checkin_id": 2,
+            "business_id": "--EF5N7P70J_UYBTPypYlA",
+            "dates": [
+                "2018-05-25 19:52:07",
+                "2018-09-18 16:09:44",
+                "2019-10-18 21:29:09"
+            ]
+        },
+        {
+            "checkin_id": 3,
+            "business_id": "--Ni3oJ4VOqfOEu7Sj2Vzg",
+            "dates": [
+                "2019-06-07 17:54:58"
+            ]
+        },
+        {
+            "checkin_id": 4,
+            "business_id": "--Y1Adl1YUWfYIRSd8vkmA",
+            "dates": [
+                "2011-05-03 20:54:05",
+                "2011-08-23 20:49:45",
+                "2014-12-04 06:13:01",
+                "2016-11-16 19:25:55"
+            ]
+        },
+        {
+            "checkin_id": 5,
+            "business_id": "--YPwqIlRJrhHkJcjY3eiA",
+            "dates": [
+                "2016-06-18 21:35:45",
+                "2016-10-15 18:17:51"
+            ]
+        },
+        {
+            "checkin_id": 6,
+            "business_id": "--e8PjCNhEz32pprnPhCwQ",
+            "dates": [
+                "2015-04-02 21:45:17"
+            ]
+        },
+        {
+            "checkin_id": 7,
+            "business_id": "--kinfHwmtdjz03g8B8z8Q",
+            "dates": [
+                "2014-08-27 17:49:18",
+                "2015-12-19 21:30:31",
+                "2018-11-27 15:53:50"
+            ]
+        },
+        {
+            "checkin_id": 8,
+            "business_id": "--q6datkI-f0EoVheXNEeQ",
+            "dates": [
+                "2014-01-28 20:56:04",
+                "2014-11-16 16:11:58",
+                "2015-11-15 19:21:53",
+                "2015-11-15 19:33:39"
+            ]
+        },
+        {
+            "checkin_id": 9,
+            "business_id": "--qvQS4MigHPykD2GV0-zw",
+            "dates": [
+                "2019-04-11 18:30:12"
+            ]
+        },
+        {
+            "checkin_id": 10,
+            "business_id": "--wIGbLEhlpl_UeAIyDmZQ",
+            "dates": [
+                "2015-06-06 20:01:06",
+                "2019-03-14 22:01:52"
+            ]
+        },
+        {
+            "checkin_id": 11,
+            "business_id": "-0FA-Qdi3SPYIoJz9UQw-A",
+            "dates": [
+                "2018-09-29 18:55:17",
+                "2018-10-20 16:48:05",
+                "2018-10-20 22:20:24"
+            ]
+        },
+        {
+            "checkin_id": 12,
+            "business_id": "-0Hj1hb_XW6ybWq2M7QhGA",
+            "dates": [
+                "2011-04-23 21:11:22",
+                "2014-05-04 19:42:48",
+                "2014-05-11 19:16:08",
+                "2014-06-04 19:14:18",
+                "2015-12-05 19:22:42",
+                "2017-05-15 23:19:00"
+            ]
+        },
+        {
+            "checkin_id": 13,
+            "business_id": "-0KMvRFwDWdVBeTpT11iHw",
+            "dates": [
+                "2012-07-13 21:43:57",
+                "2016-12-24 02:27:31",
+                "2017-08-31 00:35:26"
+            ]
+        },
+        {
+            "checkin_id": 14,
+            "business_id": "-0LPtgJC31FWMrMv317p0Q",
+            "dates": [
+                "2013-04-13 12:35:33",
+                "2013-08-19 23:35:49",
+                "2013-10-04 19:14:56"
+            ]
+        },
+        {
+            "checkin_id": 15,
+            "business_id": "-0M3o2uWBnQZwd3hmfEwuw",
+            "dates": [
+                "2016-09-10 19:26:19",
+                "2018-09-08 14:15:37",
+                "2019-09-13 22:47:25"
+            ]
+        },
+        {
+            "checkin_id": 16,
+            "business_id": "-0RRiWDtfnS16AKCtfvBZg",
+            "dates": [
+                "2017-05-19 14:30:16",
+                "2017-05-19 14:30:25",
+                "2017-08-28 15:49:37",
+                "2017-09-20 20:19:51",
+                "2017-10-01 16:31:05",
+                "2017-10-01 16:56:27",
+                "2017-12-27 23:33:20"
+            ]
+        },
+        {
+            "checkin_id": 17,
+            "business_id": "-0Soj75v-XoRcf2ERr8Bmg",
+            "dates": [
+                "2019-06-05 18:22:49"
+            ]
+        },
+        {
+            "checkin_id": 18,
+            "business_id": "-0ZumLlFjMh4ZW1z2nXGug",
+            "dates": [
+                "2011-09-24 21:37:32",
+                "2014-03-10 20:20:07",
+                "2015-05-27 00:40:24",
+                "2015-08-29 17:58:15",
+                "2018-03-16 15:03:26"
+            ]
+        },
+        {
+            "checkin_id": 19,
+            "business_id": "-0aOudcaAyac0VJbMX-L1g",
+            "dates": [
+                "2015-03-16 23:51:16",
+                "2015-12-21 04:48:01",
+                "2016-10-28 20:22:42",
+                "2016-10-28 20:23:00"
+            ]
+        },
+        {
+            "checkin_id": 20,
+            "business_id": "-0b86isaXMY0v4g-V8GZ9Q",
+            "dates": [
+                "2013-10-22 16:49:21",
+                "2014-11-21 17:39:24"
+            ]
+        },
+        {
+            "checkin_id": 21,
+            "business_id": "-0d-BfFSU0bwLcnMaGRxYw",
+            "dates": [
+                "2014-08-07 18:30:48",
+                "2014-09-16 20:41:45",
+                "2014-10-12 23:22:27",
+                "2015-07-21 20:43:56",
+                "2015-07-21 20:45:07"
+            ]
+        },
+        {
+            "checkin_id": 22,
+            "business_id": "-0jz6c3C6i7RG7Ag22K-Pg",
+            "dates": [
+                "2015-05-02 19:49:05",
+                "2015-05-06 03:52:18",
+                "2015-09-26 01:13:19"
+            ]
+        },
+        {
+            "checkin_id": 23,
+            "business_id": "-0y3MZU2oYP8r1ruDP1bfQ",
+            "dates": [
+                "2015-04-11 13:14:14",
+                "2015-11-21 16:05:56",
+                "2016-05-06 14:10:04",
+                "2017-08-09 15:15:10",
+                "2017-10-21 15:12:56"
+            ]
+        },
+        {
+            "checkin_id": 24,
+            "business_id": "-1BPe8UjF2_l3nVk-DFUjA",
+            "dates": [
+                "2015-12-03 18:44:00",
+                "2016-03-17 18:19:21",
+                "2016-11-02 15:58:38"
+            ]
+        },
+        {
+            "checkin_id": 25,
+            "business_id": "-1E2CQu_38mkghvmZgCCRw",
+            "dates": []
+        },
+        {
+            "checkin_id": 26,
+            "business_id": "-1wzk43IZ5D9Ysu6kzb5xA",
+            "dates": []
+        },
+        {
+            "checkin_id": 27,
+            "business_id": "-23R9P2eG7VTc6DVLjFKzA",
+            "dates": [
+                "2011-12-21 19:02:51",
+                "2012-04-15 04:21:39",
+                "2012-04-15 14:23:56",
+                "2013-06-30 22:39:51",
+                "2013-10-04 20:34:13",
+                "2014-07-16 02:28:40"
+            ]
+        },
+        {
+            "checkin_id": 28,
+            "business_id": "-26MGfikhJiTfCI-GqmzhQ",
+            "dates": [
+                "2018-06-13 20:16:07"
+            ]
+        },
+        {
+            "checkin_id": 29,
+            "business_id": "-2bLuJsMZ0WhI9daurVQNQ",
+            "dates": [
+                "2015-05-29 16:46:17",
+                "2015-06-01 15:03:53"
+            ]
+        },
+        {
+            "checkin_id": 30,
+            "business_id": "-2hDBMaza_ldqnZdiU06LQ",
+            "dates": [
+                "2011-10-08 12:02:23",
+                "2014-08-18 02:11:11",
+                "2016-01-07 05:27:51",
+                "2016-10-21 20:15:55",
+                "2016-12-01 03:57:10",
+                "2016-12-29 01:54:42",
+                "2018-07-22 19:55:31",
+                "2018-09-07 01:42:54",
+                "2019-03-08 03:41:06"
+            ]
+        }
+    ]
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.03.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.03.query.sqlpp
index 30d21cfd6c..69fe7cc0d2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.03.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.04.get.http
similarity index 93%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.04.get.http
index 57d830aed0..a55ce93039 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.04.get.http
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
+/connector?dataverseName=TestYelp&datasetName=YelpCheckin
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.05.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.05.query.sqlpp
index 30d21cfd6c..69fe7cc0d2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.05.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.06.update.sqlpp
similarity index 90%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.06.update.sqlpp
index 075d204e2d..ea1dba3af8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.06.update.sqlpp
@@ -17,6 +17,7 @@
  * under the License.
  */
 
-USE test;
+USE TestYelp;
 
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+DELETE FROM YelpCheckin C
+WHERE C.business_id != "--1UhMGODdWsrMastO9DZw";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.07.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.07.query.sqlpp
index 30d21cfd6c..69fe7cc0d2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.07.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.08.get.http
similarity index 93%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.08.get.http
index 57d830aed0..a55ce93039 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.08.get.http
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
+/connector?dataverseName=TestYelp&datasetName=YelpCheckin
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.09.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.09.query.sqlpp
index 30d21cfd6c..69fe7cc0d2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.09.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.10.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.10.update.sqlpp
new file mode 100644
index 0000000000..965ccc821c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.10.update.sqlpp
@@ -0,0 +1,306 @@
+/*
+ * 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 TestYelp;
+
+UPSERT INTO YelpCheckin (
+    [
+        {
+            "checkin_id": 1,
+            "business_id": "--1UhMGODdWsrMastO9DZw",
+            "dates": [
+                "2016-04-26 19:49:16",
+                "2016-08-30 18:36:57",
+                "2016-10-15 02:45:18",
+                "2016-11-18 01:54:50",
+                "2017-04-20 18:39:06",
+                "2017-05-03 17:58:02",
+                "2019-03-19 22:04:48"
+            ]
+        },
+        {
+            "checkin_id": 2,
+            "business_id": "--EF5N7P70J_UYBTPypYlA",
+            "dates": [
+                "2018-05-25 19:52:07",
+                "2018-09-18 16:09:44",
+                "2019-10-18 21:29:09"
+            ]
+        },
+        {
+            "checkin_id": 3,
+            "business_id": "--Ni3oJ4VOqfOEu7Sj2Vzg",
+            "dates": [
+                "2019-06-07 17:54:58"
+            ]
+        },
+        {
+            "checkin_id": 4,
+            "business_id": "--Y1Adl1YUWfYIRSd8vkmA",
+            "dates": [
+                "2011-05-03 20:54:05",
+                "2011-08-23 20:49:45",
+                "2014-12-04 06:13:01",
+                "2016-11-16 19:25:55"
+            ]
+        },
+        {
+            "checkin_id": 5,
+            "business_id": "--YPwqIlRJrhHkJcjY3eiA",
+            "dates": [
+                "2016-06-18 21:35:45",
+                "2016-10-15 18:17:51"
+            ]
+        },
+        {
+            "checkin_id": 6,
+            "business_id": "--e8PjCNhEz32pprnPhCwQ",
+            "dates": [
+                "2015-04-02 21:45:17"
+            ]
+        },
+        {
+            "checkin_id": 7,
+            "business_id": "--kinfHwmtdjz03g8B8z8Q",
+            "dates": [
+                "2014-08-27 17:49:18",
+                "2015-12-19 21:30:31",
+                "2018-11-27 15:53:50"
+            ]
+        },
+        {
+            "checkin_id": 8,
+            "business_id": "--q6datkI-f0EoVheXNEeQ",
+            "dates": [
+                "2014-01-28 20:56:04",
+                "2014-11-16 16:11:58",
+                "2015-11-15 19:21:53",
+                "2015-11-15 19:33:39"
+            ]
+        },
+        {
+            "checkin_id": 9,
+            "business_id": "--qvQS4MigHPykD2GV0-zw",
+            "dates": [
+                "2019-04-11 18:30:12"
+            ]
+        },
+        {
+            "checkin_id": 10,
+            "business_id": "--wIGbLEhlpl_UeAIyDmZQ",
+            "dates": [
+                "2015-06-06 20:01:06",
+                "2019-03-14 22:01:52"
+            ]
+        },
+        {
+            "checkin_id": 11,
+            "business_id": "-0FA-Qdi3SPYIoJz9UQw-A",
+            "dates": [
+                "2018-09-29 18:55:17",
+                "2018-10-20 16:48:05",
+                "2018-10-20 22:20:24"
+            ]
+        },
+        {
+            "checkin_id": 12,
+            "business_id": "-0Hj1hb_XW6ybWq2M7QhGA",
+            "dates": [
+                "2011-04-23 21:11:22",
+                "2014-05-04 19:42:48",
+                "2014-05-11 19:16:08",
+                "2014-06-04 19:14:18",
+                "2015-12-05 19:22:42",
+                "2017-05-15 23:19:00"
+            ]
+        },
+        {
+            "checkin_id": 13,
+            "business_id": "-0KMvRFwDWdVBeTpT11iHw",
+            "dates": [
+                "2012-07-13 21:43:57",
+                "2016-12-24 02:27:31",
+                "2017-08-31 00:35:26"
+            ]
+        },
+        {
+            "checkin_id": 14,
+            "business_id": "-0LPtgJC31FWMrMv317p0Q",
+            "dates": [
+                "2013-04-13 12:35:33",
+                "2013-08-19 23:35:49",
+                "2013-10-04 19:14:56"
+            ]
+        },
+        {
+            "checkin_id": 15,
+            "business_id": "-0M3o2uWBnQZwd3hmfEwuw",
+            "dates": [
+                "2016-09-10 19:26:19",
+                "2018-09-08 14:15:37",
+                "2019-09-13 22:47:25"
+            ]
+        },
+        {
+            "checkin_id": 16,
+            "business_id": "-0RRiWDtfnS16AKCtfvBZg",
+            "dates": [
+                "2017-05-19 14:30:16",
+                "2017-05-19 14:30:25",
+                "2017-08-28 15:49:37",
+                "2017-09-20 20:19:51",
+                "2017-10-01 16:31:05",
+                "2017-10-01 16:56:27",
+                "2017-12-27 23:33:20"
+            ]
+        },
+        {
+            "checkin_id": 17,
+            "business_id": "-0Soj75v-XoRcf2ERr8Bmg",
+            "dates": [
+                "2019-06-05 18:22:49"
+            ]
+        },
+        {
+            "checkin_id": 18,
+            "business_id": "-0ZumLlFjMh4ZW1z2nXGug",
+            "dates": [
+                "2011-09-24 21:37:32",
+                "2014-03-10 20:20:07",
+                "2015-05-27 00:40:24",
+                "2015-08-29 17:58:15",
+                "2018-03-16 15:03:26"
+            ]
+        },
+        {
+            "checkin_id": 19,
+            "business_id": "-0aOudcaAyac0VJbMX-L1g",
+            "dates": [
+                "2015-03-16 23:51:16",
+                "2015-12-21 04:48:01",
+                "2016-10-28 20:22:42",
+                "2016-10-28 20:23:00"
+            ]
+        },
+        {
+            "checkin_id": 20,
+            "business_id": "-0b86isaXMY0v4g-V8GZ9Q",
+            "dates": [
+                "2013-10-22 16:49:21",
+                "2014-11-21 17:39:24"
+            ]
+        },
+        {
+            "checkin_id": 21,
+            "business_id": "-0d-BfFSU0bwLcnMaGRxYw",
+            "dates": [
+                "2014-08-07 18:30:48",
+                "2014-09-16 20:41:45",
+                "2014-10-12 23:22:27",
+                "2015-07-21 20:43:56",
+                "2015-07-21 20:45:07"
+            ]
+        },
+        {
+            "checkin_id": 22,
+            "business_id": "-0jz6c3C6i7RG7Ag22K-Pg",
+            "dates": [
+                "2015-05-02 19:49:05",
+                "2015-05-06 03:52:18",
+                "2015-09-26 01:13:19"
+            ]
+        },
+        {
+            "checkin_id": 23,
+            "business_id": "-0y3MZU2oYP8r1ruDP1bfQ",
+            "dates": [
+                "2015-04-11 13:14:14",
+                "2015-11-21 16:05:56",
+                "2016-05-06 14:10:04",
+                "2017-08-09 15:15:10",
+                "2017-10-21 15:12:56"
+            ]
+        },
+        {
+            "checkin_id": 24,
+            "business_id": "-1BPe8UjF2_l3nVk-DFUjA",
+            "dates": [
+                "2015-12-03 18:44:00",
+                "2016-03-17 18:19:21",
+                "2016-11-02 15:58:38"
+            ]
+        },
+        {
+            "checkin_id": 25,
+            "business_id": "-1E2CQu_38mkghvmZgCCRw",
+            "dates": [
+                "2019-04-04 22:02:37"
+            ]
+        },
+        {
+            "checkin_id": 26,
+            "business_id": "-1wzk43IZ5D9Ysu6kzb5xA",
+            "dates": [
+                "2019-02-27 14:03:08"
+            ]
+        },
+        {
+            "checkin_id": 27,
+            "business_id": "-23R9P2eG7VTc6DVLjFKzA",
+            "dates": [
+                "2011-12-21 19:02:51",
+                "2012-04-15 04:21:39",
+                "2012-04-15 14:23:56",
+                "2013-06-30 22:39:51",
+                "2013-10-04 20:34:13",
+                "2014-07-16 02:28:40"
+            ]
+        },
+        {
+            "checkin_id": 28,
+            "business_id": "-26MGfikhJiTfCI-GqmzhQ",
+            "dates": [
+                "2018-06-13 20:16:07"
+            ]
+        },
+        {
+            "checkin_id": 29,
+            "business_id": "-2bLuJsMZ0WhI9daurVQNQ",
+            "dates": [
+                "2015-05-29 16:46:17",
+                "2015-06-01 15:03:53"
+            ]
+        },
+        {
+            "checkin_id": 30,
+            "business_id": "-2hDBMaza_ldqnZdiU06LQ",
+            "dates": [
+                "2011-10-08 12:02:23",
+                "2014-08-18 02:11:11",
+                "2016-01-07 05:27:51",
+                "2016-10-21 20:15:55",
+                "2016-12-01 03:57:10",
+                "2016-12-29 01:54:42",
+                "2018-07-22 19:55:31",
+                "2018-09-07 01:42:54",
+                "2019-03-08 03:41:06"
+            ]
+        }
+    ]
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.11.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.11.query.sqlpp
index 30d21cfd6c..69fe7cc0d2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.11.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.12.get.http
similarity index 93%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.12.get.http
index 57d830aed0..a55ce93039 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.12.get.http
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
+/connector?dataverseName=TestYelp&datasetName=YelpCheckin
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.13.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.13.query.sqlpp
index 30d21cfd6c..69fe7cc0d2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.13.query.sqlpp
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.dates D
+WHERE D > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.01.ddl.sqlpp
similarity index 55%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.01.ddl.sqlpp
index a271778586..d0ae055859 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.01.ddl.sqlpp
@@ -17,15 +17,25 @@
  * under the License.
  */
 
-DROP DATAVERSE test if exists;
-CREATE DATAVERSE test;
-USE test;
+/*
+ * Description: Verify the following DML actions for a composite array->atomic index:
+ *     1) Insert into an empty index (non bulk-load operation).
+ *     2) Delete all-but-one entry from the index.
+ *     3) Upsert all entries into the index.
+ */
+
+DROP DATAVERSE TestYelp IF EXISTS;
+CREATE DATAVERSE TestYelp;
+USE TestYelp;
+
+CREATE TYPE CheckinType AS {
+    checkin_id: int
+};
 
-CREATE TYPE ColumnType AS {
-    id: int
+CREATE DATASET YelpCheckin(CheckinType) PRIMARY KEY checkin_id WITH {
+    "storage-format" : {"format" : "column"}
 };
 
-CREATE DATASET ColumnDataset(ColumnType)
-PRIMARY KEY id WITH {
-    "storage-format": {"format" : "column"}
-};
\ No newline at end of file
+CREATE INDEX  IdxYelpCheckinDates
+ON            YelpCheckin (UNNEST checkin_times SELECT date : string , time : string )
+EXCLUDE UNKNOWN KEY;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.02.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.02.update.sqlpp
new file mode 100644
index 0000000000..2f7a9fdca7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.02.update.sqlpp
@@ -0,0 +1,306 @@
+/*
+ * 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 TestYelp;
+
+INSERT INTO YelpCheckin (
+    [
+        {
+            "checkin_id": 1,
+            "business_id": "--1UhMGODdWsrMastO9DZw",
+            "checkin_times": [ 
+                {"date": "2016-04-26", "time": "19:49:16"},
+                {"date": "2016-08-30", "time": "18:36:57"},
+                {"date": "2016-10-15", "time": "02:45:18"},
+                {"date": "2016-11-18", "time": "01:54:50"},
+                {"date": "2017-04-20", "time": "18:39:06"},
+                {"date": "2017-05-03", "time": "17:58:02"},
+                {"date": "2019-03-19", "time": "22:04:48"}
+             ]
+        },
+        {
+            "checkin_id": 2,
+            "business_id": "--EF5N7P70J_UYBTPypYlA",
+            "checkin_times": [ 
+                {"date": "2018-05-25", "time": "19:52:07"},
+                {"date": "2018-09-18", "time": "16:09:44"},
+                {"date": "2019-10-18", "time": "21:29:09"}
+             ]
+        },
+        {
+            "checkin_id": 3,
+            "business_id": "--Ni3oJ4VOqfOEu7Sj2Vzg",
+            "checkin_times": [ 
+                {"date": "2019-06-07", "time": "17:54:58"}
+             ]
+        },
+        {
+            "checkin_id": 4,
+            "business_id": "--Y1Adl1YUWfYIRSd8vkmA",
+            "checkin_times": [ 
+                {"date": "2011-05-03", "time": "20:54:05"},
+                {"date": "2011-08-23", "time": "20:49:45"},
+                {"date": "2014-12-04", "time": "06:13:01"},
+                {"date": "2016-11-16", "time": "19:25:55"}
+             ]
+        },
+        {
+            "checkin_id": 5,
+            "business_id": "--YPwqIlRJrhHkJcjY3eiA",
+            "checkin_times": [ 
+                {"date": "2016-06-18", "time": "21:35:45"},
+                {"date": "2016-10-15", "time": "18:17:51"}
+             ]
+        },
+        {
+            "checkin_id": 6,
+            "business_id": "--e8PjCNhEz32pprnPhCwQ",
+            "checkin_times": [ 
+                {"date": "2015-04-02", "time": "21:45:17"}
+             ]
+        },
+        {
+            "checkin_id": 7,
+            "business_id": "--kinfHwmtdjz03g8B8z8Q",
+            "checkin_times": [ 
+                {"date": "2014-08-27", "time": "17:49:18"},
+                {"date": "2015-12-19", "time": "21:30:31"},
+                {"date": "2018-11-27", "time": "15:53:50"}
+             ]
+        },
+        {
+            "checkin_id": 8,
+            "business_id": "--q6datkI-f0EoVheXNEeQ",
+            "checkin_times": [ 
+                {"date": "2014-01-28", "time": "20:56:04"},
+                {"date": "2014-11-16", "time": "16:11:58"},
+                {"date": "2015-11-15", "time": "19:21:53"},
+                {"date": "2015-11-15", "time": "19:33:39"}
+             ]
+        },
+        {
+            "checkin_id": 9,
+            "business_id": "--qvQS4MigHPykD2GV0-zw",
+            "checkin_times": [ 
+                {"date": "2019-04-11", "time": "18:30:12"}
+             ]
+        },
+        {
+            "checkin_id": 10,
+            "business_id": "--wIGbLEhlpl_UeAIyDmZQ",
+            "checkin_times": [ 
+                {"date": "2015-06-06", "time": "20:01:06"},
+                {"date": "2019-03-14", "time": "22:01:52"}
+             ]
+        },
+        {
+            "checkin_id": 11,
+            "business_id": "-0FA-Qdi3SPYIoJz9UQw-A",
+            "checkin_times": [ 
+                {"date": "2018-09-29", "time": "18:55:17"},
+                {"date": "2018-10-20", "time": "16:48:05"},
+                {"date": "2018-10-20", "time": "22:20:24"}
+             ]
+        },
+        {
+            "checkin_id": 12,
+            "business_id": "-0Hj1hb_XW6ybWq2M7QhGA",
+            "checkin_times": [ 
+                {"date": "2011-04-23", "time": "21:11:22"},
+                {"date": "2014-05-04", "time": "19:42:48"},
+                {"date": "2014-05-11", "time": "19:16:08"},
+                {"date": "2014-06-04", "time": "19:14:18"},
+                {"date": "2015-12-05", "time": "19:22:42"},
+                {"date": "2017-05-15", "time": "23:19:00"}
+             ]
+        },
+        {
+            "checkin_id": 13,
+            "business_id": "-0KMvRFwDWdVBeTpT11iHw",
+            "checkin_times": [ 
+                {"date": "2012-07-13", "time": "21:43:57"},
+                {"date": "2016-12-24", "time": "02:27:31"},
+                {"date": "2017-08-31", "time": "00:35:26"}
+             ]
+        },
+        {
+            "checkin_id": 14,
+            "business_id": "-0LPtgJC31FWMrMv317p0Q",
+            "checkin_times": [ 
+                {"date": "2013-04-13", "time": "12:35:33"},
+                {"date": "2013-08-19", "time": "23:35:49"},
+                {"date": "2013-10-04", "time": "19:14:56"}
+             ]
+        },
+        {
+            "checkin_id": 15,
+            "business_id": "-0M3o2uWBnQZwd3hmfEwuw",
+            "checkin_times": [ 
+                {"date": "2016-09-10", "time": "19:26:19"},
+                {"date": "2018-09-08", "time": "14:15:37"},
+                {"date": "2019-09-13", "time": "22:47:25"}
+             ]
+        },
+        {
+            "checkin_id": 16,
+            "business_id": "-0RRiWDtfnS16AKCtfvBZg",
+            "checkin_times": [ 
+                {"date": "2017-05-19", "time": "14:30:16"},
+                {"date": "2017-05-19", "time": "14:30:25"},
+                {"date": "2017-08-28", "time": "15:49:37"},
+                {"date": "2017-09-20", "time": "20:19:51"},
+                {"date": "2017-10-01", "time": "16:31:05"},
+                {"date": "2017-10-01", "time": "16:56:27"},
+                {"date": "2017-12-27", "time": "23:33:20"}
+             ]
+        },
+        {
+            "checkin_id": 17,
+            "business_id": "-0Soj75v-XoRcf2ERr8Bmg",
+            "checkin_times": [ 
+                {"date": "2019-06-05", "time": "18:22:49"}
+             ]
+        },
+        {
+            "checkin_id": 18,
+            "business_id": "-0ZumLlFjMh4ZW1z2nXGug",
+            "checkin_times": [ 
+                {"date": "2011-09-24", "time": "21:37:32"},
+                {"date": "2014-03-10", "time": "20:20:07"},
+                {"date": "2015-05-27", "time": "00:40:24"},
+                {"date": "2015-08-29", "time": "17:58:15"},
+                {"date": "2018-03-16", "time": "15:03:26"}
+             ]
+        },
+        {
+            "checkin_id": 19,
+            "business_id": "-0aOudcaAyac0VJbMX-L1g",
+            "checkin_times": [ 
+                {"date": "2015-03-16", "time": "23:51:16"},
+                {"date": "2015-12-21", "time": "04:48:01"},
+                {"date": "2016-10-28", "time": "20:22:42"},
+                {"date": "2016-10-28", "time": "20:23:00"}
+             ]
+        },
+        {
+            "checkin_id": 20,
+            "business_id": "-0b86isaXMY0v4g-V8GZ9Q",
+            "checkin_times": [ 
+                {"date": "2013-10-22", "time": "16:49:21"},
+                {"date": "2014-11-21", "time": "17:39:24"}
+             ]
+        },
+        {
+            "checkin_id": 21,
+            "business_id": "-0d-BfFSU0bwLcnMaGRxYw",
+            "checkin_times": [ 
+                {"date": "2014-08-07", "time": "18:30:48"},
+                {"date": "2014-09-16", "time": "20:41:45"},
+                {"date": "2014-10-12", "time": "23:22:27"},
+                {"date": "2015-07-21", "time": "20:43:56"},
+                {"date": "2015-07-21", "time": "20:45:07"}
+             ]
+        },
+        {
+            "checkin_id": 22,
+            "business_id": "-0jz6c3C6i7RG7Ag22K-Pg",
+            "checkin_times": [ 
+                {"date": "2015-05-02", "time": "19:49:05"},
+                {"date": "2015-05-06", "time": "03:52:18"},
+                {"date": "2015-09-26", "time": "01:13:19"}
+             ]
+        },
+        {
+            "checkin_id": 23,
+            "business_id": "-0y3MZU2oYP8r1ruDP1bfQ",
+            "checkin_times": [ 
+                {"date": "2015-04-11", "time": "13:14:14"},
+                {"date": "2015-11-21", "time": "16:05:56"},
+                {"date": "2016-05-06", "time": "14:10:04"},
+                {"date": "2017-08-09", "time": "15:15:10"},
+                {"date": "2017-10-21", "time": "15:12:56"}
+             ]
+        },
+        {
+            "checkin_id": 24,
+            "business_id": "-1BPe8UjF2_l3nVk-DFUjA",
+            "checkin_times": [ 
+                {"date": "2015-12-03", "time": "18:44:00"},
+                {"date": "2016-03-17", "time": "18:19:21"},
+                {"date": "2016-11-02", "time": "15:58:38"}
+             ]
+        },
+        {
+            "checkin_id": 25,
+            "business_id": "-1E2CQu_38mkghvmZgCCRw",
+            "checkin_times": [ 
+                {"date": "2019-04-04", "time": "22:02:37"}
+             ]
+        },
+        {
+            "checkin_id": 26,
+            "business_id": "-1wzk43IZ5D9Ysu6kzb5xA",
+            "checkin_times": [ 
+                {"date": "2019-02-27", "time": "14:03:08"}
+             ]
+        },
+        {
+            "checkin_id": 27,
+            "business_id": "-23R9P2eG7VTc6DVLjFKzA",
+            "checkin_times": [ 
+                {"date": "2011-12-21", "time": "19:02:51"},
+                {"date": "2012-04-15", "time": "04:21:39"},
+                {"date": "2012-04-15", "time": "14:23:56"},
+                {"date": "2013-06-30", "time": "22:39:51"},
+                {"date": "2013-10-04", "time": "20:34:13"},
+                {"date": "2014-07-16", "time": "02:28:40"}
+             ]
+        },
+        {
+            "checkin_id": 28,
+            "business_id": "-26MGfikhJiTfCI-GqmzhQ",
+            "checkin_times": [ 
+                {"date": "2018-06-13", "time": "20:16:07"}
+             ]
+        },
+        {
+            "checkin_id": 29,
+            "business_id": "-2bLuJsMZ0WhI9daurVQNQ",
+            "checkin_times": [ 
+                {"date": "2015-05-29", "time": "16:46:17"},
+                {"date": "2015-06-01", "time": "15:03:53"}
+             ]
+        },
+        {
+            "checkin_id": 30,
+            "business_id": "-2hDBMaza_ldqnZdiU06LQ",
+            "checkin_times": [ 
+                {"date": "2011-10-08", "time": "12:02:23"},
+                {"date": "2014-08-18", "time": "02:11:11"},
+                {"date": "2016-01-07", "time": "05:27:51"},
+                {"date": "2016-10-21", "time": "20:15:55"},
+                {"date": "2016-12-01", "time": "03:57:10"},
+                {"date": "2016-12-29", "time": "01:54:42"},
+                {"date": "2018-07-22", "time": "19:55:31"},
+                {"date": "2018-09-07", "time": "01:42:54"},
+                {"date": "2019-03-08", "time": "03:41:06"}
+             ]
+        }
+    ]
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.03.query.sqlpp
similarity index 82%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.03.query.sqlpp
index 30d21cfd6c..baf548c748 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.03.query.sqlpp
@@ -16,10 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times D
+WHERE D.date > " " AND 
+      D.time > " " AND 
+      C.business_id > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.04.get.http
similarity index 93%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.04.get.http
index 57d830aed0..a55ce93039 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.04.get.http
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
+/connector?dataverseName=TestYelp&datasetName=YelpCheckin
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.05.query.sqlpp
similarity index 82%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.05.query.sqlpp
index 30d21cfd6c..baf548c748 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.05.query.sqlpp
@@ -16,10 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times D
+WHERE D.date > " " AND 
+      D.time > " " AND 
+      C.business_id > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.06.update.sqlpp
similarity index 90%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.06.update.sqlpp
index 075d204e2d..ea1dba3af8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.06.update.sqlpp
@@ -17,6 +17,7 @@
  * under the License.
  */
 
-USE test;
+USE TestYelp;
 
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+DELETE FROM YelpCheckin C
+WHERE C.business_id != "--1UhMGODdWsrMastO9DZw";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.07.query.sqlpp
similarity index 82%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.07.query.sqlpp
index 30d21cfd6c..baf548c748 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.07.query.sqlpp
@@ -16,10 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times D
+WHERE D.date > " " AND 
+      D.time > " " AND 
+      C.business_id > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.08.get.http
similarity index 93%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.08.get.http
index 57d830aed0..a55ce93039 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.08.get.http
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
+/connector?dataverseName=TestYelp&datasetName=YelpCheckin
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.09.query.sqlpp
similarity index 82%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.09.query.sqlpp
index 30d21cfd6c..baf548c748 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.09.query.sqlpp
@@ -16,10 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times D
+WHERE D.date > " " AND 
+      D.time > " " AND 
+      C.business_id > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.10.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.10.update.sqlpp
new file mode 100644
index 0000000000..5ec78798dc
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.10.update.sqlpp
@@ -0,0 +1,306 @@
+/*
+ * 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 TestYelp;
+
+UPSERT INTO YelpCheckin (
+    [
+        {
+            "checkin_id": 1,
+            "business_id": "--1UhMGODdWsrMastO9DZw",
+            "checkin_times": [ 
+                {"date": "2016-04-26", "time": "19:49:16"},
+                {"date": "2016-08-30", "time": "18:36:57"},
+                {"date": "2016-10-15", "time": "02:45:18"},
+                {"date": "2016-11-18", "time": "01:54:50"},
+                {"date": "2017-04-20", "time": "18:39:06"},
+                {"date": "2017-05-03", "time": "17:58:02"},
+                {"date": "2019-03-19", "time": "22:04:48"}
+             ]
+        },
+        {
+            "checkin_id": 2,
+            "business_id": "--EF5N7P70J_UYBTPypYlA",
+            "checkin_times": [ 
+                {"date": "2018-05-25", "time": "19:52:07"},
+                {"date": "2018-09-18", "time": "16:09:44"},
+                {"date": "2019-10-18", "time": "21:29:09"}
+             ]
+        },
+        {
+            "checkin_id": 3,
+            "business_id": "--Ni3oJ4VOqfOEu7Sj2Vzg",
+            "checkin_times": [ 
+                {"date": "2019-06-07", "time": "17:54:58"}
+             ]
+        },
+        {
+            "checkin_id": 4,
+            "business_id": "--Y1Adl1YUWfYIRSd8vkmA",
+            "checkin_times": [ 
+                {"date": "2011-05-03", "time": "20:54:05"},
+                {"date": "2011-08-23", "time": "20:49:45"},
+                {"date": "2014-12-04", "time": "06:13:01"},
+                {"date": "2016-11-16", "time": "19:25:55"}
+             ]
+        },
+        {
+            "checkin_id": 5,
+            "business_id": "--YPwqIlRJrhHkJcjY3eiA",
+            "checkin_times": [ 
+                {"date": "2016-06-18", "time": "21:35:45"},
+                {"date": "2016-10-15", "time": "18:17:51"}
+             ]
+        },
+        {
+            "checkin_id": 6,
+            "business_id": "--e8PjCNhEz32pprnPhCwQ",
+            "checkin_times": [ 
+                {"date": "2015-04-02", "time": "21:45:17"}
+             ]
+        },
+        {
+            "checkin_id": 7,
+            "business_id": "--kinfHwmtdjz03g8B8z8Q",
+            "checkin_times": [ 
+                {"date": "2014-08-27", "time": "17:49:18"},
+                {"date": "2015-12-19", "time": "21:30:31"},
+                {"date": "2018-11-27", "time": "15:53:50"}
+             ]
+        },
+        {
+            "checkin_id": 8,
+            "business_id": "--q6datkI-f0EoVheXNEeQ",
+            "checkin_times": [ 
+                {"date": "2014-01-28", "time": "20:56:04"},
+                {"date": "2014-11-16", "time": "16:11:58"},
+                {"date": "2015-11-15", "time": "19:21:53"},
+                {"date": "2015-11-15", "time": "19:33:39"}
+             ]
+        },
+        {
+            "checkin_id": 9,
+            "business_id": "--qvQS4MigHPykD2GV0-zw",
+            "checkin_times": [ 
+                {"date": "2019-04-11", "time": "18:30:12"}
+             ]
+        },
+        {
+            "checkin_id": 10,
+            "business_id": "--wIGbLEhlpl_UeAIyDmZQ",
+            "checkin_times": [ 
+                {"date": "2015-06-06", "time": "20:01:06"},
+                {"date": "2019-03-14", "time": "22:01:52"}
+             ]
+        },
+        {
+            "checkin_id": 11,
+            "business_id": "-0FA-Qdi3SPYIoJz9UQw-A",
+            "checkin_times": [ 
+                {"date": "2018-09-29", "time": "18:55:17"},
+                {"date": "2018-10-20", "time": "16:48:05"},
+                {"date": "2018-10-20", "time": "22:20:24"}
+             ]
+        },
+        {
+            "checkin_id": 12,
+            "business_id": "-0Hj1hb_XW6ybWq2M7QhGA",
+            "checkin_times": [ 
+                {"date": "2011-04-23", "time": "21:11:22"},
+                {"date": "2014-05-04", "time": "19:42:48"},
+                {"date": "2014-05-11", "time": "19:16:08"},
+                {"date": "2014-06-04", "time": "19:14:18"},
+                {"date": "2015-12-05", "time": "19:22:42"},
+                {"date": "2017-05-15", "time": "23:19:00"}
+             ]
+        },
+        {
+            "checkin_id": 13,
+            "business_id": "-0KMvRFwDWdVBeTpT11iHw",
+            "checkin_times": [ 
+                {"date": "2012-07-13", "time": "21:43:57"},
+                {"date": "2016-12-24", "time": "02:27:31"},
+                {"date": "2017-08-31", "time": "00:35:26"}
+             ]
+        },
+        {
+            "checkin_id": 14,
+            "business_id": "-0LPtgJC31FWMrMv317p0Q",
+            "checkin_times": [ 
+                {"date": "2013-04-13", "time": "12:35:33"},
+                {"date": "2013-08-19", "time": "23:35:49"},
+                {"date": "2013-10-04", "time": "19:14:56"}
+             ]
+        },
+        {
+            "checkin_id": 15,
+            "business_id": "-0M3o2uWBnQZwd3hmfEwuw",
+            "checkin_times": [ 
+                {"date": "2016-09-10", "time": "19:26:19"},
+                {"date": "2018-09-08", "time": "14:15:37"},
+                {"date": "2019-09-13", "time": "22:47:25"}
+             ]
+        },
+        {
+            "checkin_id": 16,
+            "business_id": "-0RRiWDtfnS16AKCtfvBZg",
+            "checkin_times": [ 
+                {"date": "2017-05-19", "time": "14:30:16"},
+                {"date": "2017-05-19", "time": "14:30:25"},
+                {"date": "2017-08-28", "time": "15:49:37"},
+                {"date": "2017-09-20", "time": "20:19:51"},
+                {"date": "2017-10-01", "time": "16:31:05"},
+                {"date": "2017-10-01", "time": "16:56:27"},
+                {"date": "2017-12-27", "time": "23:33:20"}
+             ]
+        },
+        {
+            "checkin_id": 17,
+            "business_id": "-0Soj75v-XoRcf2ERr8Bmg",
+            "checkin_times": [ 
+                {"date": "2019-06-05", "time": "18:22:49"}
+             ]
+        },
+        {
+            "checkin_id": 18,
+            "business_id": "-0ZumLlFjMh4ZW1z2nXGug",
+            "checkin_times": [ 
+                {"date": "2011-09-24", "time": "21:37:32"},
+                {"date": "2014-03-10", "time": "20:20:07"},
+                {"date": "2015-05-27", "time": "00:40:24"},
+                {"date": "2015-08-29", "time": "17:58:15"},
+                {"date": "2018-03-16", "time": "15:03:26"}
+             ]
+        },
+        {
+            "checkin_id": 19,
+            "business_id": "-0aOudcaAyac0VJbMX-L1g",
+            "checkin_times": [ 
+                {"date": "2015-03-16", "time": "23:51:16"},
+                {"date": "2015-12-21", "time": "04:48:01"},
+                {"date": "2016-10-28", "time": "20:22:42"},
+                {"date": "2016-10-28", "time": "20:23:00"}
+             ]
+        },
+        {
+            "checkin_id": 20,
+            "business_id": "-0b86isaXMY0v4g-V8GZ9Q",
+            "checkin_times": [ 
+                {"date": "2013-10-22", "time": "16:49:21"},
+                {"date": "2014-11-21", "time": "17:39:24"}
+             ]
+        },
+        {
+            "checkin_id": 21,
+            "business_id": "-0d-BfFSU0bwLcnMaGRxYw",
+            "checkin_times": [ 
+                {"date": "2014-08-07", "time": "18:30:48"},
+                {"date": "2014-09-16", "time": "20:41:45"},
+                {"date": "2014-10-12", "time": "23:22:27"},
+                {"date": "2015-07-21", "time": "20:43:56"},
+                {"date": "2015-07-21", "time": "20:45:07"}
+             ]
+        },
+        {
+            "checkin_id": 22,
+            "business_id": "-0jz6c3C6i7RG7Ag22K-Pg",
+            "checkin_times": [ 
+                {"date": "2015-05-02", "time": "19:49:05"},
+                {"date": "2015-05-06", "time": "03:52:18"},
+                {"date": "2015-09-26", "time": "01:13:19"}
+             ]
+        },
+        {
+            "checkin_id": 23,
+            "business_id": "-0y3MZU2oYP8r1ruDP1bfQ",
+            "checkin_times": [ 
+                {"date": "2015-04-11", "time": "13:14:14"},
+                {"date": "2015-11-21", "time": "16:05:56"},
+                {"date": "2016-05-06", "time": "14:10:04"},
+                {"date": "2017-08-09", "time": "15:15:10"},
+                {"date": "2017-10-21", "time": "15:12:56"}
+             ]
+        },
+        {
+            "checkin_id": 24,
+            "business_id": "-1BPe8UjF2_l3nVk-DFUjA",
+            "checkin_times": [ 
+                {"date": "2015-12-03", "time": "18:44:00"},
+                {"date": "2016-03-17", "time": "18:19:21"},
+                {"date": "2016-11-02", "time": "15:58:38"}
+             ]
+        },
+        {
+            "checkin_id": 25,
+            "business_id": "-1E2CQu_38mkghvmZgCCRw",
+            "checkin_times": [ 
+                {"date": "2019-04-04", "time": "22:02:37"}
+             ]
+        },
+        {
+            "checkin_id": 26,
+            "business_id": "-1wzk43IZ5D9Ysu6kzb5xA",
+            "checkin_times": [ 
+                {"date": "2019-02-27", "time": "14:03:08"}
+             ]
+        },
+        {
+            "checkin_id": 27,
+            "business_id": "-23R9P2eG7VTc6DVLjFKzA",
+            "checkin_times": [ 
+                {"date": "2011-12-21", "time": "19:02:51"},
+                {"date": "2012-04-15", "time": "04:21:39"},
+                {"date": "2012-04-15", "time": "14:23:56"},
+                {"date": "2013-06-30", "time": "22:39:51"},
+                {"date": "2013-10-04", "time": "20:34:13"},
+                {"date": "2014-07-16", "time": "02:28:40"}
+             ]
+        },
+        {
+            "checkin_id": 28,
+            "business_id": "-26MGfikhJiTfCI-GqmzhQ",
+            "checkin_times": [ 
+                {"date": "2018-06-13", "time": "20:16:07"}
+             ]
+        },
+        {
+            "checkin_id": 29,
+            "business_id": "-2bLuJsMZ0WhI9daurVQNQ",
+            "checkin_times": [ 
+                {"date": "2015-05-29", "time": "16:46:17"},
+                {"date": "2015-06-01", "time": "15:03:53"}
+             ]
+        },
+        {
+            "checkin_id": 30,
+            "business_id": "-2hDBMaza_ldqnZdiU06LQ",
+            "checkin_times": [ 
+                {"date": "2011-10-08", "time": "12:02:23"},
+                {"date": "2014-08-18", "time": "02:11:11"},
+                {"date": "2016-01-07", "time": "05:27:51"},
+                {"date": "2016-10-21", "time": "20:15:55"},
+                {"date": "2016-12-01", "time": "03:57:10"},
+                {"date": "2016-12-29", "time": "01:54:42"},
+                {"date": "2018-07-22", "time": "19:55:31"},
+                {"date": "2018-09-07", "time": "01:42:54"},
+                {"date": "2019-03-08", "time": "03:41:06"}
+             ]
+        }
+    ]
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.11.query.sqlpp
similarity index 82%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.11.query.sqlpp
index 30d21cfd6c..baf548c748 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.11.query.sqlpp
@@ -16,10 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times D
+WHERE D.date > " " AND 
+      D.time > " " AND 
+      C.business_id > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.12.get.http
similarity index 93%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.12.get.http
index 57d830aed0..a55ce93039 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.12.get.http
@@ -16,4 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
+/connector?dataverseName=TestYelp&datasetName=YelpCheckin
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.13.query.sqlpp
similarity index 82%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.13.query.sqlpp
index 30d21cfd6c..baf548c748 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/array-index/with-composite-sk/with-composite-sk.13.query.sqlpp
@@ -16,10 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
+SET `compiler.arrayindex` "true";
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT COUNT(*)
+FROM YelpCheckin C, C.checkin_times D
+WHERE D.date > " " AND 
+      D.time > " " AND 
+      C.business_id > " ";
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.001.ddl.sqlpp
similarity index 76%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.001.ddl.sqlpp
index a271778586..c25e7c2a4b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.001.ddl.sqlpp
@@ -17,15 +17,15 @@
  * under the License.
  */
 
-DROP DATAVERSE test if exists;
-CREATE DATAVERSE test;
-USE test;
+DROP DATAVERSE TestYelp IF EXISTS;
+CREATE DATAVERSE TestYelp;
+USE TestYelp;
 
-CREATE TYPE ColumnType AS {
-    id: int
+CREATE TYPE CheckinType AS {
+    checkin_id: uuid
 };
 
-CREATE DATASET ColumnDataset(ColumnType)
-PRIMARY KEY id WITH {
-    "storage-format": {"format" : "column"}
+CREATE DATASET YelpCheckin(CheckinType)
+PRIMARY KEY checkin_id AUTOGENERATED WITH {
+    "storage-format" : {"format" : "column"}
 };
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.002.update.sqlpp
similarity index 84%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.002.update.sqlpp
index 30d21cfd6c..88a354ac3a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.002.update.sqlpp
@@ -17,9 +17,8 @@
  * under the License.
  */
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+LOAD DATASET YelpCheckin
+USING localfs (("path"="asterix_nc1://data/yelp-checkin/use-case-1.json"),
+                ("format"="json"));
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.003.query.sqlpp
similarity index 85%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.003.query.sqlpp
index 30d21cfd6c..5560372db5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.003.query.sqlpp
@@ -17,9 +17,10 @@
  * under the License.
  */
 
-USE test;
+SET `compiler.arrayindex` "true";
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+USE TestYelp;
+
+SELECT C.business_id
+FROM YelpCheckin C, C.dates D
+WHERE "2016-04-26 19:49:16" = D;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.004.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.004.query.sqlpp
index 30d21cfd6c..bc53b2aa52 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.004.query.sqlpp
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+USE TestYelp;
+
+SELECT VALUE C.dates
+FROM YelpCheckin C
+WHERE "-0y3MZU2oYP8r1ruDP1bfQ" = C.business_id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.005.ddl.sqlpp
similarity index 81%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.005.ddl.sqlpp
index 30d21cfd6c..0ef51a172f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.005.ddl.sqlpp
@@ -17,9 +17,7 @@
  * under the License.
  */
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+CREATE INDEX IdxYelpCheckinDates ON YelpCheckin (UNNEST dates:string) EXCLUDE UNKNOWN KEY;
+CREATE INDEX IdxYelpCheckinBusinessId ON YelpCheckin (business_id:string);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.006.query.sqlpp
similarity index 85%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.006.query.sqlpp
index 30d21cfd6c..5560372db5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.006.query.sqlpp
@@ -17,9 +17,10 @@
  * under the License.
  */
 
-USE test;
+SET `compiler.arrayindex` "true";
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+USE TestYelp;
+
+SELECT C.business_id
+FROM YelpCheckin C, C.dates D
+WHERE "2016-04-26 19:49:16" = D;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.007.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.007.query.sqlpp
index 30d21cfd6c..bc53b2aa52 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-bulkload/after-bulkload.007.query.sqlpp
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+USE TestYelp;
+
+SELECT VALUE C.dates
+FROM YelpCheckin C
+WHERE "-0y3MZU2oYP8r1ruDP1bfQ" = C.business_id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.001.ddl.sqlpp
similarity index 76%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.001.ddl.sqlpp
index a271778586..1dd2d6f56d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.001.ddl.sqlpp
@@ -17,15 +17,14 @@
  * under the License.
  */
 
-DROP DATAVERSE test if exists;
-CREATE DATAVERSE test;
-USE test;
+DROP DATAVERSE TestYelp IF EXISTS;
+CREATE DATAVERSE TestYelp;
+USE TestYelp;
 
-CREATE TYPE ColumnType AS {
-    id: int
+CREATE TYPE CheckinType AS {
+    checkin_id: uuid
 };
 
-CREATE DATASET ColumnDataset(ColumnType)
-PRIMARY KEY id WITH {
-    "storage-format": {"format" : "column"}
+CREATE DATASET YelpCheckin(CheckinType) PRIMARY KEY checkin_id AUTOGENERATED WITH {
+    "storage-format" : {"format" : "column"}
 };
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.002.update.sqlpp
new file mode 100644
index 0000000000..ba9a31bd4d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.002.update.sqlpp
@@ -0,0 +1,272 @@
+/*
+ * 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 TestYelp;
+
+INSERT INTO YelpCheckin (
+    [
+        {
+            "business_id": "--1UhMGODdWsrMastO9DZw",
+            "dates": [
+                "2016-04-26 19:49:16",
+                "2016-08-30 18:36:57",
+                "2016-10-15 02:45:18",
+                "2016-11-18 01:54:50",
+                "2017-04-20 18:39:06",
+                "2017-05-03 17:58:02",
+                "2019-03-19 22:04:48"
+            ]
+        },
+        {
+            "business_id": "--EF5N7P70J_UYBTPypYlA",
+            "dates": [
+                "2018-05-25 19:52:07",
+                "2018-09-18 16:09:44",
+                "2019-10-18 21:29:09"
+            ]
+        },
+        {
+            "business_id": "--Ni3oJ4VOqfOEu7Sj2Vzg",
+            "dates": [
+                "2019-06-07 17:54:58"
+            ]
+        },
+        {
+            "business_id": "--Y1Adl1YUWfYIRSd8vkmA",
+            "dates": [
+                "2011-05-03 20:54:05",
+                "2011-08-23 20:49:45",
+                "2014-12-04 06:13:01",
+                "2016-11-16 19:25:55"
+            ]
+        },
+        {
+            "business_id": "--YPwqIlRJrhHkJcjY3eiA",
+            "dates": [
+                "2016-06-18 21:35:45",
+                "2016-10-15 18:17:51"
+            ]
+        },
+        {
+            "business_id": "--e8PjCNhEz32pprnPhCwQ",
+            "dates": [
+                "2015-04-02 21:45:17"
+            ]
+        },
+        {
+            "business_id": "--kinfHwmtdjz03g8B8z8Q",
+            "dates": [
+                "2014-08-27 17:49:18",
+                "2015-12-19 21:30:31",
+                "2018-11-27 15:53:50"
+            ]
+        },
+        {
+            "business_id": "--q6datkI-f0EoVheXNEeQ",
+            "dates": [
+                "2014-01-28 20:56:04",
+                "2014-11-16 16:11:58",
+                "2015-11-15 19:21:53",
+                "2015-11-15 19:33:39"
+            ]
+        },
+        {
+            "business_id": "--qvQS4MigHPykD2GV0-zw",
+            "dates": [
+                "2019-04-11 18:30:12"
+            ]
+        },
+        {
+            "business_id": "--wIGbLEhlpl_UeAIyDmZQ",
+            "dates": [
+                "2015-06-06 20:01:06",
+                "2019-03-14 22:01:52"
+            ]
+        },
+        {
+            "business_id": "-0FA-Qdi3SPYIoJz9UQw-A",
+            "dates": [
+                "2018-09-29 18:55:17",
+                "2018-10-20 16:48:05",
+                "2018-10-20 22:20:24"
+            ]
+        },
+        {
+            "business_id": "-0Hj1hb_XW6ybWq2M7QhGA",
+            "dates": [
+                "2011-04-23 21:11:22",
+                "2014-05-04 19:42:48",
+                "2014-05-11 19:16:08",
+                "2014-06-04 19:14:18",
+                "2015-12-05 19:22:42",
+                "2017-05-15 23:19:00"
+            ]
+        },
+        {
+            "business_id": "-0KMvRFwDWdVBeTpT11iHw",
+            "dates": [
+                "2012-07-13 21:43:57",
+                "2016-12-24 02:27:31",
+                "2017-08-31 00:35:26"
+            ]
+        },
+        {
+            "business_id": "-0LPtgJC31FWMrMv317p0Q",
+            "dates": [
+                "2013-04-13 12:35:33",
+                "2013-08-19 23:35:49",
+                "2013-10-04 19:14:56"
+            ]
+        },
+        {
+            "business_id": "-0M3o2uWBnQZwd3hmfEwuw",
+            "dates": [
+                "2016-09-10 19:26:19",
+                "2018-09-08 14:15:37",
+                "2019-09-13 22:47:25"
+            ]
+        },
+        {
+            "business_id": "-0RRiWDtfnS16AKCtfvBZg",
+            "dates": [
+                "2017-05-19 14:30:16",
+                "2017-05-19 14:30:25",
+                "2017-08-28 15:49:37",
+                "2017-09-20 20:19:51",
+                "2017-10-01 16:31:05",
+                "2017-10-01 16:56:27",
+                "2017-12-27 23:33:20"
+            ]
+        },
+        {
+            "business_id": "-0Soj75v-XoRcf2ERr8Bmg",
+            "dates": [
+                "2019-06-05 18:22:49"
+            ]
+        },
+        {
+            "business_id": "-0ZumLlFjMh4ZW1z2nXGug",
+            "dates": [
+                "2011-09-24 21:37:32",
+                "2014-03-10 20:20:07",
+                "2015-05-27 00:40:24",
+                "2015-08-29 17:58:15",
+                "2018-03-16 15:03:26"
+            ]
+        },
+        {
+            "business_id": "-0aOudcaAyac0VJbMX-L1g",
+            "dates": [
+                "2015-03-16 23:51:16",
+                "2015-12-21 04:48:01",
+                "2016-10-28 20:22:42",
+                "2016-10-28 20:23:00"
+            ]
+        },
+        {
+            "business_id": "-0b86isaXMY0v4g-V8GZ9Q",
+            "dates": [
+                "2013-10-22 16:49:21",
+                "2014-11-21 17:39:24"
+            ]
+        },
+        {
+            "business_id": "-0d-BfFSU0bwLcnMaGRxYw",
+            "dates": [
+                "2014-08-07 18:30:48",
+                "2014-09-16 20:41:45",
+                "2014-10-12 23:22:27",
+                "2015-07-21 20:43:56",
+                "2015-07-21 20:45:07"
+            ]
+        },
+        {
+            "business_id": "-0jz6c3C6i7RG7Ag22K-Pg",
+            "dates": [
+                "2015-05-02 19:49:05",
+                "2015-05-06 03:52:18",
+                "2015-09-26 01:13:19"
+            ]
+        },
+        {
+            "business_id": "-0y3MZU2oYP8r1ruDP1bfQ",
+            "dates": [
+                "2015-04-11 13:14:14",
+                "2015-11-21 16:05:56",
+                "2016-05-06 14:10:04",
+                "2017-08-09 15:15:10",
+                "2017-10-21 15:12:56"
+            ]
+        },
+        {
+            "business_id": "-1BPe8UjF2_l3nVk-DFUjA",
+            "dates": [
+                "2015-12-03 18:44:00",
+                "2016-03-17 18:19:21",
+                "2016-11-02 15:58:38"
+            ]
+        },
+        {
+            "business_id": "-1E2CQu_38mkghvmZgCCRw",
+            "dates": []
+        },
+        {
+            "business_id": "-1wzk43IZ5D9Ysu6kzb5xA",
+            "dates": []
+        },
+        {
+            "business_id": "-23R9P2eG7VTc6DVLjFKzA",
+            "dates": [
+                "2011-12-21 19:02:51",
+                "2012-04-15 04:21:39",
+                "2012-04-15 14:23:56",
+                "2013-06-30 22:39:51",
+                "2013-10-04 20:34:13",
+                "2014-07-16 02:28:40"
+            ]
+        },
+        {
+            "business_id": "-26MGfikhJiTfCI-GqmzhQ",
+            "dates": [
+                "2018-06-13 20:16:07"
+            ]
+        },
+        {
+            "business_id": "-2bLuJsMZ0WhI9daurVQNQ",
+            "dates": [
+                "2015-05-29 16:46:17",
+                "2015-06-01 15:03:53"
+            ]
+        },
+        {
+            "business_id": "-2hDBMaza_ldqnZdiU06LQ",
+            "dates": [
+                "2011-10-08 12:02:23",
+                "2014-08-18 02:11:11",
+                "2016-01-07 05:27:51",
+                "2016-10-21 20:15:55",
+                "2016-12-01 03:57:10",
+                "2016-12-29 01:54:42",
+                "2018-07-22 19:55:31",
+                "2018-09-07 01:42:54",
+                "2019-03-08 03:41:06"
+            ]
+        }
+    ]
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.003.query.sqlpp
similarity index 85%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.003.query.sqlpp
index 30d21cfd6c..5560372db5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.003.query.sqlpp
@@ -17,9 +17,10 @@
  * under the License.
  */
 
-USE test;
+SET `compiler.arrayindex` "true";
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+USE TestYelp;
+
+SELECT C.business_id
+FROM YelpCheckin C, C.dates D
+WHERE "2016-04-26 19:49:16" = D;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.004.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.004.query.sqlpp
index 30d21cfd6c..bc53b2aa52 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.004.query.sqlpp
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+USE TestYelp;
+
+SELECT VALUE C.dates
+FROM YelpCheckin C
+WHERE "-0y3MZU2oYP8r1ruDP1bfQ" = C.business_id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.005.ddl.sqlpp
similarity index 81%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.005.ddl.sqlpp
index 30d21cfd6c..0ef51a172f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.005.ddl.sqlpp
@@ -17,9 +17,7 @@
  * under the License.
  */
 
-USE test;
+USE TestYelp;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+CREATE INDEX IdxYelpCheckinDates ON YelpCheckin (UNNEST dates:string) EXCLUDE UNKNOWN KEY;
+CREATE INDEX IdxYelpCheckinBusinessId ON YelpCheckin (business_id:string);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.006.query.sqlpp
similarity index 85%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.006.query.sqlpp
index 30d21cfd6c..5560372db5 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.006.query.sqlpp
@@ -17,9 +17,10 @@
  * under the License.
  */
 
-USE test;
+SET `compiler.arrayindex` "true";
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+USE TestYelp;
+
+SELECT C.business_id
+FROM YelpCheckin C, C.dates D
+WHERE "2016-04-26 19:49:16" = D;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.007.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.007.query.sqlpp
index 30d21cfd6c..bc53b2aa52 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-insert/after-insert.007.query.sqlpp
@@ -17,9 +17,9 @@
  * under the License.
  */
 
-USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+USE TestYelp;
+
+SELECT VALUE C.dates
+FROM YelpCheckin C
+WHERE "-0y3MZU2oYP8r1ruDP1bfQ" = C.business_id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-insert-with-meta.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-insert-with-meta.001.ddl.sqlpp
new file mode 100644
index 0000000000..ccaea7e8fe
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-insert-with-meta.001.ddl.sqlpp
@@ -0,0 +1,69 @@
+/*
+ * 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 DataType AS {
+    name:string,
+    age:int,
+    hobby:string
+};
+
+CREATE TYPE MetaType AS {
+    id:int
+};
+
+CREATE DATASET DS(DataType) WITH META(MetaType)
+PRIMARY KEY META().id WITH {
+  "storage-format": {"format" : "column"}
+};
+
+CREATE FEED DsStream WITH {
+ "adapter-name" : "localfs",
+ "reader" : "localfs",
+ "parser" : "record-with-metadata",
+ "type-name" : "DataType",
+ "meta-type-name" : "MetaType",
+ "path" : "asterix_nc1://data/csv/people.csv",
+ "format" : "csv",
+ "delimiter" : ",",
+ "record-format" : "adm",
+ "record-index" : "1",
+ "key-indexes" : "0",
+ "key-indicators" : "1",
+ "header" : "false"
+};
+
+CREATE FEED DsStream2 WITH {
+ "adapter-name" : "localfs",
+ "reader" : "localfs",
+ "parser" : "record-with-metadata",
+ "type-name" : "DataType",
+ "meta-type-name" : "MetaType",
+ "path" : "asterix_nc1://data/csv/people3.csv",
+ "format" : "csv",
+ "delimiter" : ",",
+ "record-format" : "adm",
+ "record-index" : "1",
+ "key-indexes" : "0",
+ "key-indicators" : "1",
+ "header" : "false"
+};
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.002.update.sqlpp
similarity index 89%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.002.update.sqlpp
index 30d21cfd6c..55e842cf7f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.002.update.sqlpp
@@ -19,7 +19,6 @@
 
 USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SET `wait-for-completion-feed` "true";
+CONNECT FEED DsStream TO DATASET DS;
+START FEED DsStream;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.003.get.http
similarity index 94%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.003.get.http
index 075d204e2d..e6efaa03d7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.003.get.http
@@ -16,7 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
-USE test;
-
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+/connector?dataverseName=test&datasetName=DS
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.004.ddl.sqlpp
similarity index 91%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.004.ddl.sqlpp
index 075d204e2d..369f3ab7f8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.004.ddl.sqlpp
@@ -19,4 +19,5 @@
 
 USE test;
 
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+CREATE INDEX age_idx ON DS(age);
+CREATE INDEX hobby_age_idx ON DS(name, age);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.005.query.sqlpp
similarity index 90%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.005.query.sqlpp
index 30d21cfd6c..9e6b11fe9b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.005.query.sqlpp
@@ -19,7 +19,7 @@
 
 USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.age BETWEEN 20 AND 30
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.006.query.sqlpp
similarity index 90%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.006.query.sqlpp
index 30d21cfd6c..a6b1153d97 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.006.query.sqlpp
@@ -19,7 +19,7 @@
 
 USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.hobby = "basketball"
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.007.update.sqlpp
similarity index 89%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.007.update.sqlpp
index 30d21cfd6c..08652aa070 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.007.update.sqlpp
@@ -19,7 +19,6 @@
 
 USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SET `wait-for-completion-feed` "true";
+CONNECT FEED DsStream2 TO DATASET DS;
+START FEED DsStream2;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.008.get.http
similarity index 94%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.008.get.http
index 075d204e2d..e6efaa03d7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.008.get.http
@@ -16,7 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
-USE test;
-
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+/connector?dataverseName=test&datasetName=DS
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.009.query.sqlpp
similarity index 90%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.009.query.sqlpp
index 30d21cfd6c..9e6b11fe9b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.009.query.sqlpp
@@ -19,7 +19,7 @@
 
 USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.age BETWEEN 20 AND 30
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.010.query.sqlpp
similarity index 90%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.010.query.sqlpp
index 30d21cfd6c..a6b1153d97 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.010.query.sqlpp
@@ -19,7 +19,7 @@
 
 USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.hobby = "basketball"
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.011.update.sqlpp
similarity index 96%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.011.update.sqlpp
index 075d204e2d..1ab4c1cce2 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.011.update.sqlpp
@@ -19,4 +19,4 @@
 
 USE test;
 
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+COMPACT DATASET DS;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.012.get.http
similarity index 94%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.012.get.http
index 075d204e2d..e6efaa03d7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.012.get.http
@@ -16,7 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
-USE test;
-
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+/connector?dataverseName=test&datasetName=DS
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.013.query.sqlpp
similarity index 90%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.013.query.sqlpp
index 30d21cfd6c..9e6b11fe9b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.013.query.sqlpp
@@ -19,7 +19,7 @@
 
 USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.age BETWEEN 20 AND 30
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.014.query.sqlpp
similarity index 90%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.014.query.sqlpp
index 30d21cfd6c..a6b1153d97 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.014.query.sqlpp
@@ -19,7 +19,7 @@
 
 USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.hobby = "basketball"
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.001.ddl.sqlpp
new file mode 100644
index 0000000000..178040273a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.001.ddl.sqlpp
@@ -0,0 +1,72 @@
+/*
+ * 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 DataType AS {
+    name:string,
+    age:int,
+    hobby:string
+};
+
+CREATE TYPE MetaType AS {
+    id:int
+};
+
+CREATE DATASET DS(DataType) WITH META(MetaType)
+PRIMARY KEY META().id WITH {
+  "storage-format": {"format" : "column"}
+};
+
+CREATE FEED DsStream WITH {
+ "adapter-name" : "localfs",
+ "reader" : "localfs",
+ "parser" : "record-with-metadata",
+ "type-name" : "DataType",
+ "meta-type-name" : "MetaType",
+ "path" : "asterix_nc1://data/csv/people.csv",
+ "format" : "csv",
+ "delimiter" : ",",
+ "record-format" : "adm",
+ "record-index" : "1",
+ "key-indexes" : "0",
+ "key-indicators" : "1",
+ "header" : "false"
+};
+
+CREATE FEED DsStream2 WITH {
+ "adapter-name" : "localfs",
+ "reader" : "localfs",
+ "parser" : "record-with-metadata",
+ "type-name" : "DataType",
+ "meta-type-name" : "MetaType",
+ "path" : "asterix_nc1://data/csv/people3.csv",
+ "format" : "csv",
+ "delimiter" : ",",
+ "record-format" : "adm",
+ "record-index" : "1",
+ "key-indexes" : "0",
+ "key-indicators" : "1",
+ "header" : "false"
+};
+
+CREATE INDEX age_idx ON DS(age);
+CREATE INDEX hobby_age_idx ON DS(name, age);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.002.update.sqlpp
similarity index 89%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.002.update.sqlpp
index 30d21cfd6c..55e842cf7f 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.002.update.sqlpp
@@ -19,7 +19,6 @@
 
 USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SET `wait-for-completion-feed` "true";
+CONNECT FEED DsStream TO DATASET DS;
+START FEED DsStream;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.003.query.sqlpp
similarity index 90%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.003.query.sqlpp
index 30d21cfd6c..9e6b11fe9b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.003.query.sqlpp
@@ -19,7 +19,7 @@
 
 USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.age BETWEEN 20 AND 30
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.004.query.sqlpp
similarity index 91%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.004.query.sqlpp
index 075d204e2d..d5b902ab7a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.004.query.sqlpp
@@ -19,4 +19,7 @@
 
 USE test;
 
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.age > 29
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.005.query.sqlpp
similarity index 91%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.005.query.sqlpp
index 075d204e2d..6a585ca544 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.005.query.sqlpp
@@ -19,4 +19,7 @@
 
 USE test;
 
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.age >= 29
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.006.query.sqlpp
similarity index 91%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.006.query.sqlpp
index 075d204e2d..eaff1ad577 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.006.query.sqlpp
@@ -19,4 +19,7 @@
 
 USE test;
 
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.age < 29
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.007.query.sqlpp
similarity index 91%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.007.query.sqlpp
index 075d204e2d..d6a6c08d32 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.007.query.sqlpp
@@ -19,4 +19,7 @@
 
 USE test;
 
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.age <= 29
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.008.query.sqlpp
similarity index 90%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.008.query.sqlpp
index 30d21cfd6c..69be129609 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.008.query.sqlpp
@@ -19,7 +19,7 @@
 
 USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.hobby = "reading"
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.009.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.009.query.sqlpp
index 30d21cfd6c..961ac70614 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.009.query.sqlpp
@@ -19,7 +19,8 @@
 
 USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.hobby = "reading"
+  AND d.age = 29
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.010.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.010.query.sqlpp
index 30d21cfd6c..327e345bab 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.010.query.sqlpp
@@ -19,7 +19,8 @@
 
 USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.hobby = "reading"
+  AND d.age > 29
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.011.get.http
similarity index 94%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.011.get.http
index 075d204e2d..e6efaa03d7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.011.get.http
@@ -16,7 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
-USE test;
-
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+/connector?dataverseName=test&datasetName=DS
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.012.query.sqlpp
similarity index 90%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.012.query.sqlpp
index 30d21cfd6c..9e6b11fe9b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.012.query.sqlpp
@@ -19,7 +19,7 @@
 
 USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.age BETWEEN 20 AND 30
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.013.query.sqlpp
similarity index 91%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.013.query.sqlpp
index 075d204e2d..d5b902ab7a 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.013.query.sqlpp
@@ -19,4 +19,7 @@
 
 USE test;
 
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.age > 29
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.014.query.sqlpp
similarity index 91%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.014.query.sqlpp
index 075d204e2d..6a585ca544 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.014.query.sqlpp
@@ -19,4 +19,7 @@
 
 USE test;
 
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.age >= 29
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.015.query.sqlpp
similarity index 91%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.015.query.sqlpp
index 075d204e2d..eaff1ad577 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.015.query.sqlpp
@@ -19,4 +19,7 @@
 
 USE test;
 
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.age < 29
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.016.query.sqlpp
similarity index 91%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.016.query.sqlpp
index 075d204e2d..d6a6c08d32 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.016.query.sqlpp
@@ -19,4 +19,7 @@
 
 USE test;
 
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.age <= 29
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.017.query.sqlpp
similarity index 90%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.017.query.sqlpp
index 30d21cfd6c..69be129609 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.017.query.sqlpp
@@ -19,7 +19,7 @@
 
 USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.hobby = "reading"
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.018.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.018.query.sqlpp
index 30d21cfd6c..961ac70614 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.018.query.sqlpp
@@ -19,7 +19,8 @@
 
 USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.hobby = "reading"
+  AND d.age = 29
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.019.query.sqlpp
similarity index 88%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.019.query.sqlpp
index 30d21cfd6c..327e345bab 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.019.query.sqlpp
@@ -19,7 +19,8 @@
 
 USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.hobby = "reading"
+  AND d.age > 29
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.020.update.sqlpp
similarity index 89%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.020.update.sqlpp
index 30d21cfd6c..08652aa070 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.020.update.sqlpp
@@ -19,7 +19,6 @@
 
 USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SET `wait-for-completion-feed` "true";
+CONNECT FEED DsStream2 TO DATASET DS;
+START FEED DsStream2;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.021.query.sqlpp
similarity index 91%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.021.query.sqlpp
index 075d204e2d..7ff4f8ca56 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.021.query.sqlpp
@@ -19,4 +19,7 @@
 
 USE test;
 
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.age = 35
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.022.query.sqlpp
similarity index 90%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.022.query.sqlpp
index 30d21cfd6c..ee52cb902c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.022.query.sqlpp
@@ -19,7 +19,7 @@
 
 USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.hobby = "soccer"
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.023.get.http
similarity index 94%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.023.get.http
index 075d204e2d..e6efaa03d7 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.023.get.http
@@ -16,7 +16,4 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
-USE test;
-
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+/connector?dataverseName=test&datasetName=DS
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.024.query.sqlpp
similarity index 91%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.024.query.sqlpp
index 075d204e2d..7ff4f8ca56 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.024.query.sqlpp
@@ -19,4 +19,7 @@
 
 USE test;
 
-COMPACT DATASET ColumnDataset;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.age = 35
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.025.query.sqlpp
similarity index 90%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.025.query.sqlpp
index 30d21cfd6c..ee52cb902c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/secondary-index/index-with-meta/index-with-meta.025.query.sqlpp
@@ -19,7 +19,7 @@
 
 USE test;
 
--- Records are on disk as columns
-SELECT VALUE d
-FROM ColumnDataset d
-ORDER BY d.id;
\ No newline at end of file
+SELECT META().id, d.age, d.name
+FROM DS d
+WHERE d.hobby = "soccer"
+ORDER BY META().id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.001.ddl.sqlpp
similarity index 100%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.001.ddl.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.002.update.sqlpp
similarity index 100%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.002.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.002.update.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.003.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.003.query.sqlpp
similarity index 100%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.003.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.003.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.004.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.004.get.http
similarity index 100%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.004.get.http
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.004.get.http
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.005.query.sqlpp
similarity index 100%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.005.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.006.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.006.update.sqlpp
similarity index 100%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.006.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.006.update.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.007.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.007.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.007.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.007.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.008.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.008.get.http
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.008.get.http
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.008.get.http
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.009.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.009.query.sqlpp
similarity index 100%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.009.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.009.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.010.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.010.update.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.010.update.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.010.update.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.011.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.011.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.011.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.011.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.012.get.http
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.012.get.http
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.013.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.013.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.013.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.013.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.014.update.sqlpp
similarity index 100%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.014.update.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.015.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.015.get.http
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.015.get.http
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.015.get.http
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.016.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.016.query.sqlpp
similarity index 100%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.016.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/001/001.016.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.001.ddl.sqlpp
similarity index 100%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.001.ddl.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.002.update.sqlpp
similarity index 84%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.002.update.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.002.update.sqlpp
index a078d7fe70..976ff3d5d8 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.002.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.002.update.sqlpp
@@ -20,7 +20,9 @@
 USE test;
 
 INSERT INTO ColumnDataset (
-    {"id": 1, "val": "1", "array": [10, 20, 30]},
-    {"id": 2, "val": "2", "array": [40, 50, 60]},
-    {"id": 3, "val": "3", "array": [70, 80, 90]}
+    {"id":10, "a":[1, 2]},
+    {"id":20, "a":[3, 4]},
+    {"id":30, "a":[5, 6]},
+    {"id":40, "a":[7, 8]},
+    {"id":50, "a":[9, 10]}
 );
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.003.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.003.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.003.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.003.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.004.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.004.get.http
similarity index 100%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.004.get.http
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.004.get.http
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.005.query.sqlpp
similarity index 100%
copy from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
copy to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.005.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.006.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.006.update.sqlpp
similarity index 87%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.006.update.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.006.update.sqlpp
index 6e6f4d499c..6ac2ae6b0b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.006.update.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.006.update.sqlpp
@@ -19,7 +19,7 @@
 
 USE test;
 
--- Upsert the record with id = 2
+-- Upsert the record with id = 10, the length of the arrays are not the same
 UPSERT INTO ColumnDataset (
-    {"id": 2, "val": "2000", "array": [400, 500, 600]}
+    {"id":10, "a":[100, 100, 100, 100]}
 );
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.007.query.sqlpp
similarity index 88%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.007.query.sqlpp
index 30d21cfd6c..6bdb5fa9f6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.007.query.sqlpp
@@ -19,7 +19,7 @@
 
 USE test;
 
--- Records are on disk as columns
+-- a newer record with id = 10 is in memory and should replace the older record with the same id
 SELECT VALUE d
 FROM ColumnDataset d
 ORDER BY d.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.004.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.008.get.http
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.004.get.http
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.008.get.http
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.009.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.009.query.sqlpp
similarity index 93%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.009.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.009.query.sqlpp
index 36002c28ec..e1f485dc0c 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.009.query.sqlpp
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.009.query.sqlpp
@@ -19,7 +19,7 @@
 
 USE test;
 
--- Now, we have two on-disk components and both have records with id = 2. The new record should be returned
+-- Now, we have two on-disk components and both have records with id = 10. The new record should be returned
 SELECT VALUE d
 FROM ColumnDataset d
 ORDER BY d.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.010.update.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.010.update.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.016.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.011.query.sqlpp
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.016.query.sqlpp
rename to asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/002/002.011.query.sqlpp
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.03.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.03.adm
new file mode 100644
index 0000000000..5e38c96e7d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.03.adm
@@ -0,0 +1,5 @@
+{ "order_priority": "1-URGENT", "count": 9 }
+{ "order_priority": "2-HIGH", "count": 7 }
+{ "order_priority": "3-MEDIUM", "count": 9 }
+{ "order_priority": "4-NOT SPECIFIED", "count": 8 }
+{ "order_priority": "5-LOW", "count": 12 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.04.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.04.adm
new file mode 100644
index 0000000000..4b9eb7d214
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.04.adm
@@ -0,0 +1 @@
+{"results":"successful"}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.05.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.05.adm
new file mode 100644
index 0000000000..af9759bf16
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.05.adm
@@ -0,0 +1 @@
+{"keys":"l_orderkey,l_linenumber","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"LineItemType","open":false,"fields":[{"l_orderkey":{"type":"AInt64"}},{"l_partkey":{"type":"AInt64"}},{"l_suppkey":{"type":"AInt64"}},{"l_linenumber":{"type":"AInt64"}},{"l_quantity":{"type":"ADouble"}},{"l_extendedprice":{"type":"ADouble"}},{"l_discount":{"type":"ADouble"}},{"l_tax":{"type":"ADouble"}},{"l_returnflag":{"type":"AString"}},{"l_linestatus":{"type":"AString"}},{"l_shipdate":{" [...]
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.06.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.06.adm
new file mode 100644
index 0000000000..00031012c9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.06.adm
@@ -0,0 +1 @@
+{"keys":"o_orderkey","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"OrderType","open":false,"fields":[{"o_orderkey":{"type":"AInt64"}},{"o_custkey":{"type":"AInt64"}},{"o_orderstatus":{"type":"AString"}},{"o_totalprice":{"type":"ADouble"}},{"o_orderdate":{"type":"AString"}},{"o_orderpriority":{"type":"AString"}},{"o_clerk":{"type":"AString"}},{"o_shippriority":{"type":"AInt64"}},{"o_comment":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/t [...]
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.07.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.07.adm
new file mode 100644
index 0000000000..5e38c96e7d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.07.adm
@@ -0,0 +1,5 @@
+{ "order_priority": "1-URGENT", "count": 9 }
+{ "order_priority": "2-HIGH", "count": 7 }
+{ "order_priority": "3-MEDIUM", "count": 9 }
+{ "order_priority": "4-NOT SPECIFIED", "count": 8 }
+{ "order_priority": "5-LOW", "count": 12 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.08.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.08.adm
new file mode 100644
index 0000000000..356deeb7bd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.08.adm
@@ -0,0 +1 @@
+{ "DatasetName": "LineItem", "GroupName": "tpch1.LineItem_1", "rebalanceCount": 1 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.09.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.09.adm
new file mode 100644
index 0000000000..0f829fa74a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.09.adm
@@ -0,0 +1 @@
+{ "DatasetName": "Orders", "GroupName": "tpch2.Orders_1", "rebalanceCount": 1 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.10.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.10.adm
new file mode 100644
index 0000000000..4b9eb7d214
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.10.adm
@@ -0,0 +1 @@
+{"results":"successful"}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.11.adm
new file mode 100644
index 0000000000..d970119b99
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.11.adm
@@ -0,0 +1 @@
+{"keys":"l_orderkey,l_linenumber","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"LineItemType","open":false,"fields":[{"l_orderkey":{"type":"AInt64"}},{"l_partkey":{"type":"AInt64"}},{"l_suppkey":{"type":"AInt64"}},{"l_linenumber":{"type":"AInt64"}},{"l_quantity":{"type":"ADouble"}},{"l_extendedprice":{"type":"ADouble"}},{"l_discount":{"type":"ADouble"}},{"l_tax":{"type":"ADouble"}},{"l_returnflag":{"type":"AString"}},{"l_linestatus":{"type":"AString"}},{"l_shipdate":{" [...]
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.12.adm
new file mode 100644
index 0000000000..38d2eac356
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.12.adm
@@ -0,0 +1 @@
+{"keys":"o_orderkey","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"OrderType","open":false,"fields":[{"o_orderkey":{"type":"AInt64"}},{"o_custkey":{"type":"AInt64"}},{"o_orderstatus":{"type":"AString"}},{"o_totalprice":{"type":"ADouble"}},{"o_orderdate":{"type":"AString"}},{"o_orderpriority":{"type":"AString"}},{"o_clerk":{"type":"AString"}},{"o_shippriority":{"type":"AInt64"}},{"o_comment":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/t [...]
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.13.adm
new file mode 100644
index 0000000000..4405aa047e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.13.adm
@@ -0,0 +1,5 @@
+{ "order_priority": "1-URGENT", "count": 9 }
+{ "order_priority": "2-HIGH", "count": 7 }
+{ "order_priority": "3-MEDIUM", "count": 9 }
+{ "order_priority": "4-NOT SPECIFIED", "count": 8 }
+{ "order_priority": "5-LOW", "count": 12 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.14.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.14.adm
new file mode 100644
index 0000000000..3c8a3de183
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.14.adm
@@ -0,0 +1 @@
+{ "DatasetName": "LineItem", "GroupName": "tpch1.LineItem_2", "rebalanceCount": 2 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.15.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.15.adm
new file mode 100644
index 0000000000..06a2a13d44
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.15.adm
@@ -0,0 +1 @@
+{ "DatasetName": "Orders", "GroupName": "tpch2.Orders_2", "rebalanceCount": 2 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.16.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.16.adm
new file mode 100644
index 0000000000..608357572a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/rebalance/rebalance.16.adm
@@ -0,0 +1 @@
+{ "DatasetName": "Dataset", "GroupName": "MetadataGroup" }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.03.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.03.adm
new file mode 100644
index 0000000000..fcc26c80d7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.03.adm
@@ -0,0 +1 @@
+{ "$1": 99 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.04.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.04.adm
new file mode 100644
index 0000000000..f9dd3d2cdd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.04.adm
@@ -0,0 +1 @@
+{"keys":"business_id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"CheckinType","open":true,"fields":[{"business_id":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_1/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_2/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_3/TestYelp/YelpCheckin/0/YelpC [...]
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.05.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.05.adm
new file mode 100644
index 0000000000..fcc26c80d7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.05.adm
@@ -0,0 +1 @@
+{ "$1": 99 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.07.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.07.adm
new file mode 100644
index 0000000000..3e1a84774d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.07.adm
@@ -0,0 +1 @@
+{ "$1": 7 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.08.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.08.adm
new file mode 100644
index 0000000000..f9dd3d2cdd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.08.adm
@@ -0,0 +1 @@
+{"keys":"business_id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"CheckinType","open":true,"fields":[{"business_id":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_1/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_2/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_3/TestYelp/YelpCheckin/0/YelpC [...]
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.09.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.09.adm
new file mode 100644
index 0000000000..3e1a84774d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.09.adm
@@ -0,0 +1 @@
+{ "$1": 7 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.11.adm
new file mode 100644
index 0000000000..dc7ba8bd2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.11.adm
@@ -0,0 +1 @@
+{ "$1": 101 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.12.adm
new file mode 100644
index 0000000000..f9dd3d2cdd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.12.adm
@@ -0,0 +1 @@
+{"keys":"business_id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"CheckinType","open":true,"fields":[{"business_id":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_1/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_2/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_3/TestYelp/YelpCheckin/0/YelpC [...]
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.13.adm
new file mode 100644
index 0000000000..dc7ba8bd2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-1/use-case-1.13.adm
@@ -0,0 +1 @@
+{ "$1": 101 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.03.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.03.adm
new file mode 100644
index 0000000000..dc7ba8bd2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.03.adm
@@ -0,0 +1 @@
+{ "$1": 101 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.04.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.04.adm
new file mode 100644
index 0000000000..f9dd3d2cdd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.04.adm
@@ -0,0 +1 @@
+{"keys":"business_id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"CheckinType","open":true,"fields":[{"business_id":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_1/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_2/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_3/TestYelp/YelpCheckin/0/YelpC [...]
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.05.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.05.adm
new file mode 100644
index 0000000000..dc7ba8bd2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.05.adm
@@ -0,0 +1 @@
+{ "$1": 101 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.07.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.07.adm
new file mode 100644
index 0000000000..3e1a84774d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.07.adm
@@ -0,0 +1 @@
+{ "$1": 7 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.08.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.08.adm
new file mode 100644
index 0000000000..f9dd3d2cdd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.08.adm
@@ -0,0 +1 @@
+{"keys":"business_id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"CheckinType","open":true,"fields":[{"business_id":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_1/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_2/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_3/TestYelp/YelpCheckin/0/YelpC [...]
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.09.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.09.adm
new file mode 100644
index 0000000000..3e1a84774d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.09.adm
@@ -0,0 +1 @@
+{ "$1": 7 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.11.adm
new file mode 100644
index 0000000000..dc7ba8bd2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.11.adm
@@ -0,0 +1 @@
+{ "$1": 101 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.12.adm
new file mode 100644
index 0000000000..f9dd3d2cdd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.12.adm
@@ -0,0 +1 @@
+{"keys":"business_id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"CheckinType","open":true,"fields":[{"business_id":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_1/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_2/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_3/TestYelp/YelpCheckin/0/YelpC [...]
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.13.adm
new file mode 100644
index 0000000000..dc7ba8bd2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-2/use-case-2.13.adm
@@ -0,0 +1 @@
+{ "$1": 101 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.03.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.03.adm
new file mode 100644
index 0000000000..dc7ba8bd2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.03.adm
@@ -0,0 +1 @@
+{ "$1": 101 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.04.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.04.adm
new file mode 100644
index 0000000000..f9dd3d2cdd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.04.adm
@@ -0,0 +1 @@
+{"keys":"business_id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"CheckinType","open":true,"fields":[{"business_id":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_1/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_2/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_3/TestYelp/YelpCheckin/0/YelpC [...]
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.05.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.05.adm
new file mode 100644
index 0000000000..dc7ba8bd2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.05.adm
@@ -0,0 +1 @@
+{ "$1": 101 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.07.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.07.adm
new file mode 100644
index 0000000000..3e1a84774d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.07.adm
@@ -0,0 +1 @@
+{ "$1": 7 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.08.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.08.adm
new file mode 100644
index 0000000000..f9dd3d2cdd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.08.adm
@@ -0,0 +1 @@
+{"keys":"business_id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"CheckinType","open":true,"fields":[{"business_id":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_1/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_2/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_3/TestYelp/YelpCheckin/0/YelpC [...]
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.09.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.09.adm
new file mode 100644
index 0000000000..3e1a84774d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.09.adm
@@ -0,0 +1 @@
+{ "$1": 7 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.11.adm
new file mode 100644
index 0000000000..dc7ba8bd2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.11.adm
@@ -0,0 +1 @@
+{ "$1": 101 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.12.adm
new file mode 100644
index 0000000000..f9dd3d2cdd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.12.adm
@@ -0,0 +1 @@
+{"keys":"business_id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"CheckinType","open":true,"fields":[{"business_id":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_1/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_2/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_3/TestYelp/YelpCheckin/0/YelpC [...]
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.13.adm
new file mode 100644
index 0000000000..dc7ba8bd2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-3/use-case-3.13.adm
@@ -0,0 +1 @@
+{ "$1": 101 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.03.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.03.adm
new file mode 100644
index 0000000000..dc7ba8bd2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.03.adm
@@ -0,0 +1 @@
+{ "$1": 101 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.04.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.04.adm
new file mode 100644
index 0000000000..f9dd3d2cdd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.04.adm
@@ -0,0 +1 @@
+{"keys":"business_id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"CheckinType","open":true,"fields":[{"business_id":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_1/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_2/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_3/TestYelp/YelpCheckin/0/YelpC [...]
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.05.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.05.adm
new file mode 100644
index 0000000000..dc7ba8bd2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.05.adm
@@ -0,0 +1 @@
+{ "$1": 101 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.07.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.07.adm
new file mode 100644
index 0000000000..3e1a84774d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.07.adm
@@ -0,0 +1 @@
+{ "$1": 7 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.08.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.08.adm
new file mode 100644
index 0000000000..f9dd3d2cdd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.08.adm
@@ -0,0 +1 @@
+{"keys":"business_id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"CheckinType","open":true,"fields":[{"business_id":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_1/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_2/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_3/TestYelp/YelpCheckin/0/YelpC [...]
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.09.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.09.adm
new file mode 100644
index 0000000000..3e1a84774d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.09.adm
@@ -0,0 +1 @@
+{ "$1": 7 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.11.adm
new file mode 100644
index 0000000000..dc7ba8bd2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.11.adm
@@ -0,0 +1 @@
+{ "$1": 101 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.12.adm
new file mode 100644
index 0000000000..f9dd3d2cdd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.12.adm
@@ -0,0 +1 @@
+{"keys":"business_id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"CheckinType","open":true,"fields":[{"business_id":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_1/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_2/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_3/TestYelp/YelpCheckin/0/YelpC [...]
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.13.adm
new file mode 100644
index 0000000000..dc7ba8bd2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/use-case-4/use-case-4.13.adm
@@ -0,0 +1 @@
+{ "$1": 101 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.03.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.03.adm
new file mode 100644
index 0000000000..fcc26c80d7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.03.adm
@@ -0,0 +1 @@
+{ "$1": 99 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.04.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.04.adm
new file mode 100644
index 0000000000..e9774d473c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.04.adm
@@ -0,0 +1 @@
+{"keys":"checkin_id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"CheckinType","open":true,"fields":[{"checkin_id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_1/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_2/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_3/TestYelp/YelpCheckin/0/YelpCheckin"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.05.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.05.adm
new file mode 100644
index 0000000000..fcc26c80d7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.05.adm
@@ -0,0 +1 @@
+{ "$1": 99 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.07.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.07.adm
new file mode 100644
index 0000000000..3e1a84774d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.07.adm
@@ -0,0 +1 @@
+{ "$1": 7 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.08.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.08.adm
new file mode 100644
index 0000000000..e9774d473c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.08.adm
@@ -0,0 +1 @@
+{"keys":"checkin_id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"CheckinType","open":true,"fields":[{"checkin_id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_1/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_2/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_3/TestYelp/YelpCheckin/0/YelpCheckin"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.09.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.09.adm
new file mode 100644
index 0000000000..3e1a84774d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.09.adm
@@ -0,0 +1 @@
+{ "$1": 7 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.11.adm
new file mode 100644
index 0000000000..dc7ba8bd2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.11.adm
@@ -0,0 +1 @@
+{ "$1": 101 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.12.adm
new file mode 100644
index 0000000000..e9774d473c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.12.adm
@@ -0,0 +1 @@
+{"keys":"checkin_id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"CheckinType","open":true,"fields":[{"checkin_id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_1/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_2/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_3/TestYelp/YelpCheckin/0/YelpCheckin"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.13.adm
new file mode 100644
index 0000000000..dc7ba8bd2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-additional-atomic-index/with-additional-atomic-index.13.adm
@@ -0,0 +1 @@
+{ "$1": 101 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.03.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.03.adm
new file mode 100644
index 0000000000..dc7ba8bd2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.03.adm
@@ -0,0 +1 @@
+{ "$1": 101 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.04.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.04.adm
new file mode 100644
index 0000000000..e9774d473c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.04.adm
@@ -0,0 +1 @@
+{"keys":"checkin_id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"CheckinType","open":true,"fields":[{"checkin_id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_1/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_2/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_3/TestYelp/YelpCheckin/0/YelpCheckin"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.05.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.05.adm
new file mode 100644
index 0000000000..dc7ba8bd2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.05.adm
@@ -0,0 +1 @@
+{ "$1": 101 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.07.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.07.adm
new file mode 100644
index 0000000000..3e1a84774d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.07.adm
@@ -0,0 +1 @@
+{ "$1": 7 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.08.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.08.adm
new file mode 100644
index 0000000000..e9774d473c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.08.adm
@@ -0,0 +1 @@
+{"keys":"checkin_id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"CheckinType","open":true,"fields":[{"checkin_id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_1/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_2/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_3/TestYelp/YelpCheckin/0/YelpCheckin"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.09.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.09.adm
new file mode 100644
index 0000000000..3e1a84774d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.09.adm
@@ -0,0 +1 @@
+{ "$1": 7 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.11.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.11.adm
new file mode 100644
index 0000000000..dc7ba8bd2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.11.adm
@@ -0,0 +1 @@
+{ "$1": 101 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.12.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.12.adm
new file mode 100644
index 0000000000..e9774d473c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.12.adm
@@ -0,0 +1 @@
+{"keys":"checkin_id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"CheckinType","open":true,"fields":[{"checkin_id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_1/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_2/TestYelp/YelpCheckin/0/YelpCheckin"},{"ip":"127.0.0.1","path":"storage/partition_3/TestYelp/YelpCheckin/0/YelpCheckin"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.13.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.13.adm
new file mode 100644
index 0000000000..dc7ba8bd2b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/array-index/with-composite-sk/with-composite-sk.13.adm
@@ -0,0 +1 @@
+{ "$1": 101 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-bulkload/after-bulkload.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-bulkload/after-bulkload.003.adm
new file mode 100644
index 0000000000..6fa1293b94
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-bulkload/after-bulkload.003.adm
@@ -0,0 +1 @@
+{ "business_id": "--1UhMGODdWsrMastO9DZw" }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-bulkload/after-bulkload.004.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-bulkload/after-bulkload.004.adm
new file mode 100644
index 0000000000..062a3591fb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-bulkload/after-bulkload.004.adm
@@ -0,0 +1 @@
+[ "2015-04-11 13:14:14", "2015-11-21 16:05:56", "2016-05-06 14:10:04", "2017-08-09 15:15:10", "2017-10-21 15:12:56" ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-bulkload/after-bulkload.006.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-bulkload/after-bulkload.006.adm
new file mode 100644
index 0000000000..6fa1293b94
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-bulkload/after-bulkload.006.adm
@@ -0,0 +1 @@
+{ "business_id": "--1UhMGODdWsrMastO9DZw" }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-bulkload/after-bulkload.007.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-bulkload/after-bulkload.007.adm
new file mode 100644
index 0000000000..062a3591fb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-bulkload/after-bulkload.007.adm
@@ -0,0 +1 @@
+[ "2015-04-11 13:14:14", "2015-11-21 16:05:56", "2016-05-06 14:10:04", "2017-08-09 15:15:10", "2017-10-21 15:12:56" ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-insert/after-insert.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-insert/after-insert.003.adm
new file mode 100644
index 0000000000..6fa1293b94
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-insert/after-insert.003.adm
@@ -0,0 +1 @@
+{ "business_id": "--1UhMGODdWsrMastO9DZw" }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-insert/after-insert.004.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-insert/after-insert.004.adm
new file mode 100644
index 0000000000..062a3591fb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-insert/after-insert.004.adm
@@ -0,0 +1 @@
+[ "2015-04-11 13:14:14", "2015-11-21 16:05:56", "2016-05-06 14:10:04", "2017-08-09 15:15:10", "2017-10-21 15:12:56" ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-insert/after-insert.006.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-insert/after-insert.006.adm
new file mode 100644
index 0000000000..6fa1293b94
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-insert/after-insert.006.adm
@@ -0,0 +1 @@
+{ "business_id": "--1UhMGODdWsrMastO9DZw" }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-insert/after-insert.007.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-insert/after-insert.007.adm
new file mode 100644
index 0000000000..062a3591fb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-insert/after-insert.007.adm
@@ -0,0 +1 @@
+[ "2015-04-11 13:14:14", "2015-11-21 16:05:56", "2016-05-06 14:10:04", "2017-08-09 15:15:10", "2017-10-21 15:12:56" ]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.003.adm
new file mode 100644
index 0000000000..c7dc23c7fb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.003.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"DataType","open":true,"fields":[{"name":{"type":"AString"}},{"age":{"type":"AInt64"}},{"hobby":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/DS/0/DS"},{"ip":"127.0.0.1","path":"storage/partition_1/test/DS/0/DS"},{"ip":"127.0.0.1","path":"storage/partition_2/test/DS/0/DS"},{"ip":"127.0.0.1","path":"storage/partition_3/test/DS/0/DS"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.005.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.005.adm
new file mode 100644
index 0000000000..707fae0df4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.005.adm
@@ -0,0 +1,4 @@
+{ "id": 13071782, "age": 24, "name": "Joe Dana" }
+{ "id": 26237702, "age": 28, "name": "Watson Jordon" }
+{ "id": 52037425, "age": 30, "name": "Scott Scott" }
+{ "id": 76041664, "age": 29, "name": "John Mad" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.006.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.006.adm
new file mode 100644
index 0000000000..7f83f16dc3
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.006.adm
@@ -0,0 +1 @@
+{ "id": 26237702, "age": 28, "name": "Watson Jordon" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.008.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.008.adm
new file mode 100644
index 0000000000..c7dc23c7fb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.008.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"DataType","open":true,"fields":[{"name":{"type":"AString"}},{"age":{"type":"AInt64"}},{"hobby":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/DS/0/DS"},{"ip":"127.0.0.1","path":"storage/partition_1/test/DS/0/DS"},{"ip":"127.0.0.1","path":"storage/partition_2/test/DS/0/DS"},{"ip":"127.0.0.1","path":"storage/partition_3/test/DS/0/DS"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.009.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.009.adm
new file mode 100644
index 0000000000..870dbf0397
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.009.adm
@@ -0,0 +1,5 @@
+{ "id": 5, "age": 28, "name": "Watson Jordon" }
+{ "id": 13071782, "age": 24, "name": "Joe Dana" }
+{ "id": 26237702, "age": 28, "name": "Watson Jordon" }
+{ "id": 52037425, "age": 30, "name": "Scott Scott" }
+{ "id": 76041664, "age": 29, "name": "John Mad" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.010.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.010.adm
new file mode 100644
index 0000000000..a47f9db6eb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.010.adm
@@ -0,0 +1,2 @@
+{ "id": 5, "age": 28, "name": "Watson Jordon" }
+{ "id": 26237702, "age": 28, "name": "Watson Jordon" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.012.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.012.adm
new file mode 100644
index 0000000000..c7dc23c7fb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.012.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"DataType","open":true,"fields":[{"name":{"type":"AString"}},{"age":{"type":"AInt64"}},{"hobby":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/DS/0/DS"},{"ip":"127.0.0.1","path":"storage/partition_1/test/DS/0/DS"},{"ip":"127.0.0.1","path":"storage/partition_2/test/DS/0/DS"},{"ip":"127.0.0.1","path":"storage/partition_3/test/DS/0/DS"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.013.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.013.adm
new file mode 100644
index 0000000000..870dbf0397
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.013.adm
@@ -0,0 +1,5 @@
+{ "id": 5, "age": 28, "name": "Watson Jordon" }
+{ "id": 13071782, "age": 24, "name": "Joe Dana" }
+{ "id": 26237702, "age": 28, "name": "Watson Jordon" }
+{ "id": 52037425, "age": 30, "name": "Scott Scott" }
+{ "id": 76041664, "age": 29, "name": "John Mad" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.014.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.014.adm
new file mode 100644
index 0000000000..a47f9db6eb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/create-index/after-upsert-with-meta/after-upsert-with-meta.014.adm
@@ -0,0 +1,2 @@
+{ "id": 5, "age": 28, "name": "Watson Jordon" }
+{ "id": 26237702, "age": 28, "name": "Watson Jordon" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.003.adm
new file mode 100644
index 0000000000..707fae0df4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.003.adm
@@ -0,0 +1,4 @@
+{ "id": 13071782, "age": 24, "name": "Joe Dana" }
+{ "id": 26237702, "age": 28, "name": "Watson Jordon" }
+{ "id": 52037425, "age": 30, "name": "Scott Scott" }
+{ "id": 76041664, "age": 29, "name": "John Mad" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.004.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.004.adm
new file mode 100644
index 0000000000..5fd0ed4938
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.004.adm
@@ -0,0 +1,6 @@
+{ "id": 32571888, "age": 45, "name": "Mat Steve" }
+{ "id": 39225791, "age": 35, "name": "Sandy Donald" }
+{ "id": 45962603, "age": 40, "name": "Dan David" }
+{ "id": 51041435, "age": 32, "name": "Robert Moore" }
+{ "id": 52037425, "age": 30, "name": "Scott Scott" }
+{ "id": 86897761, "age": 36, "name": "Sandra Pec" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.005.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.005.adm
new file mode 100644
index 0000000000..69955d6aa9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.005.adm
@@ -0,0 +1,7 @@
+{ "id": 32571888, "age": 45, "name": "Mat Steve" }
+{ "id": 39225791, "age": 35, "name": "Sandy Donald" }
+{ "id": 45962603, "age": 40, "name": "Dan David" }
+{ "id": 51041435, "age": 32, "name": "Robert Moore" }
+{ "id": 52037425, "age": 30, "name": "Scott Scott" }
+{ "id": 76041664, "age": 29, "name": "John Mad" }
+{ "id": 86897761, "age": 36, "name": "Sandra Pec" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.006.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.006.adm
new file mode 100644
index 0000000000..ae312198f0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.006.adm
@@ -0,0 +1,2 @@
+{ "id": 13071782, "age": 24, "name": "Joe Dana" }
+{ "id": 26237702, "age": 28, "name": "Watson Jordon" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.007.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.007.adm
new file mode 100644
index 0000000000..49002dc9c8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.007.adm
@@ -0,0 +1,3 @@
+{ "id": 13071782, "age": 24, "name": "Joe Dana" }
+{ "id": 26237702, "age": 28, "name": "Watson Jordon" }
+{ "id": 76041664, "age": 29, "name": "John Mad" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.008.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.008.adm
new file mode 100644
index 0000000000..14874eddf1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.008.adm
@@ -0,0 +1,2 @@
+{ "id": 51041435, "age": 32, "name": "Robert Moore" }
+{ "id": 76041664, "age": 29, "name": "John Mad" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.009.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.009.adm
new file mode 100644
index 0000000000..84eebd989c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.009.adm
@@ -0,0 +1 @@
+{ "id": 76041664, "age": 29, "name": "John Mad" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.010.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.010.adm
new file mode 100644
index 0000000000..999526978e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.010.adm
@@ -0,0 +1 @@
+{ "id": 51041435, "age": 32, "name": "Robert Moore" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.011.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.011.adm
new file mode 100644
index 0000000000..c7dc23c7fb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.011.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"DataType","open":true,"fields":[{"name":{"type":"AString"}},{"age":{"type":"AInt64"}},{"hobby":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/DS/0/DS"},{"ip":"127.0.0.1","path":"storage/partition_1/test/DS/0/DS"},{"ip":"127.0.0.1","path":"storage/partition_2/test/DS/0/DS"},{"ip":"127.0.0.1","path":"storage/partition_3/test/DS/0/DS"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.012.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.012.adm
new file mode 100644
index 0000000000..707fae0df4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.012.adm
@@ -0,0 +1,4 @@
+{ "id": 13071782, "age": 24, "name": "Joe Dana" }
+{ "id": 26237702, "age": 28, "name": "Watson Jordon" }
+{ "id": 52037425, "age": 30, "name": "Scott Scott" }
+{ "id": 76041664, "age": 29, "name": "John Mad" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.013.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.013.adm
new file mode 100644
index 0000000000..5fd0ed4938
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.013.adm
@@ -0,0 +1,6 @@
+{ "id": 32571888, "age": 45, "name": "Mat Steve" }
+{ "id": 39225791, "age": 35, "name": "Sandy Donald" }
+{ "id": 45962603, "age": 40, "name": "Dan David" }
+{ "id": 51041435, "age": 32, "name": "Robert Moore" }
+{ "id": 52037425, "age": 30, "name": "Scott Scott" }
+{ "id": 86897761, "age": 36, "name": "Sandra Pec" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.014.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.014.adm
new file mode 100644
index 0000000000..69955d6aa9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.014.adm
@@ -0,0 +1,7 @@
+{ "id": 32571888, "age": 45, "name": "Mat Steve" }
+{ "id": 39225791, "age": 35, "name": "Sandy Donald" }
+{ "id": 45962603, "age": 40, "name": "Dan David" }
+{ "id": 51041435, "age": 32, "name": "Robert Moore" }
+{ "id": 52037425, "age": 30, "name": "Scott Scott" }
+{ "id": 76041664, "age": 29, "name": "John Mad" }
+{ "id": 86897761, "age": 36, "name": "Sandra Pec" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.015.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.015.adm
new file mode 100644
index 0000000000..ae312198f0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.015.adm
@@ -0,0 +1,2 @@
+{ "id": 13071782, "age": 24, "name": "Joe Dana" }
+{ "id": 26237702, "age": 28, "name": "Watson Jordon" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.016.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.016.adm
new file mode 100644
index 0000000000..49002dc9c8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.016.adm
@@ -0,0 +1,3 @@
+{ "id": 13071782, "age": 24, "name": "Joe Dana" }
+{ "id": 26237702, "age": 28, "name": "Watson Jordon" }
+{ "id": 76041664, "age": 29, "name": "John Mad" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.017.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.017.adm
new file mode 100644
index 0000000000..14874eddf1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.017.adm
@@ -0,0 +1,2 @@
+{ "id": 51041435, "age": 32, "name": "Robert Moore" }
+{ "id": 76041664, "age": 29, "name": "John Mad" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.018.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.018.adm
new file mode 100644
index 0000000000..84eebd989c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.018.adm
@@ -0,0 +1 @@
+{ "id": 76041664, "age": 29, "name": "John Mad" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.019.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.019.adm
new file mode 100644
index 0000000000..999526978e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.019.adm
@@ -0,0 +1 @@
+{ "id": 51041435, "age": 32, "name": "Robert Moore" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.021.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.021.adm
new file mode 100644
index 0000000000..ee1749d510
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.021.adm
@@ -0,0 +1,2 @@
+{ "id": 7, "age": 35, "name": "Sandy Donald" }
+{ "id": 39225791, "age": 35, "name": "Sandy Donald" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.022.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.022.adm
new file mode 100644
index 0000000000..ee1749d510
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.022.adm
@@ -0,0 +1,2 @@
+{ "id": 7, "age": 35, "name": "Sandy Donald" }
+{ "id": 39225791, "age": 35, "name": "Sandy Donald" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.023.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.023.adm
new file mode 100644
index 0000000000..c7dc23c7fb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.023.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"DataType","open":true,"fields":[{"name":{"type":"AString"}},{"age":{"type":"AInt64"}},{"hobby":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/DS/0/DS"},{"ip":"127.0.0.1","path":"storage/partition_1/test/DS/0/DS"},{"ip":"127.0.0.1","path":"storage/partition_2/test/DS/0/DS"},{"ip":"127.0.0.1","path":"storage/partition_3/test/DS/0/DS"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.024.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.024.adm
new file mode 100644
index 0000000000..ee1749d510
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.024.adm
@@ -0,0 +1,2 @@
+{ "id": 7, "age": 35, "name": "Sandy Donald" }
+{ "id": 39225791, "age": 35, "name": "Sandy Donald" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.025.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.025.adm
new file mode 100644
index 0000000000..ee1749d510
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/secondary-index/index-with-meta/index-with-meta.025.adm
@@ -0,0 +1,2 @@
+{ "id": 7, "age": 35, "name": "Sandy Donald" }
+{ "id": 39225791, "age": 35, "name": "Sandy Donald" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.003.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.003.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.003.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.004.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.004.adm
similarity index 100%
copy from asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.004.adm
copy to asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.004.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.005.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.005.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.005.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.005.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.007.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.007.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.007.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.007.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.008.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.008.adm
similarity index 100%
copy from asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.008.adm
copy to asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.008.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.009.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.009.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.009.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.009.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.011.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.011.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.011.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.011.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.012.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.012.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.012.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.012.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.013.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.013.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.013.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.013.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.015.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.015.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.015.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.015.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.016.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.016.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.016.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/001/upsert.016.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.003.adm
new file mode 100644
index 0000000000..cd33c4d376
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.003.adm
@@ -0,0 +1,5 @@
+{ "id": 10, "a": [ 1, 2 ] }
+{ "id": 20, "a": [ 3, 4 ] }
+{ "id": 30, "a": [ 5, 6 ] }
+{ "id": 40, "a": [ 7, 8 ] }
+{ "id": 50, "a": [ 9, 10 ] }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.004.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.004.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.004.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.004.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.005.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.005.adm
new file mode 100644
index 0000000000..cd33c4d376
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.005.adm
@@ -0,0 +1,5 @@
+{ "id": 10, "a": [ 1, 2 ] }
+{ "id": 20, "a": [ 3, 4 ] }
+{ "id": 30, "a": [ 5, 6 ] }
+{ "id": 40, "a": [ 7, 8 ] }
+{ "id": 50, "a": [ 9, 10 ] }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.007.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.007.adm
new file mode 100644
index 0000000000..606b98a9b4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.007.adm
@@ -0,0 +1,5 @@
+{ "id": 10, "a": [ 100, 100, 100, 100 ] }
+{ "id": 20, "a": [ 3, 4 ] }
+{ "id": 30, "a": [ 5, 6 ] }
+{ "id": 40, "a": [ 7, 8 ] }
+{ "id": 50, "a": [ 9, 10 ] }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.008.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.008.adm
similarity index 100%
rename from asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.008.adm
rename to asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.008.adm
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.009.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.009.adm
new file mode 100644
index 0000000000..606b98a9b4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.009.adm
@@ -0,0 +1,5 @@
+{ "id": 10, "a": [ 100, 100, 100, 100 ] }
+{ "id": 20, "a": [ 3, 4 ] }
+{ "id": 30, "a": [ 5, 6 ] }
+{ "id": 40, "a": [ 7, 8 ] }
+{ "id": 50, "a": [ 9, 10 ] }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.011.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.011.adm
new file mode 100644
index 0000000000..606b98a9b4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/002/upsert.011.adm
@@ -0,0 +1,5 @@
+{ "id": 10, "a": [ 100, 100, 100, 100 ] }
+{ "id": 20, "a": [ 3, 4 ] }
+{ "id": 30, "a": [ 5, 6 ] }
+{ "id": 40, "a": [ 7, 8 ] }
+{ "id": 50, "a": [ 9, 10 ] }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
index 241e65e935..fc121ad08d 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
@@ -16134,8 +16134,13 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="column">
-      <compilation-unit name="upsert">
-        <output-dir compare="Text">upsert</output-dir>
+      <compilation-unit name="upsert/001">
+        <output-dir compare="Text">upsert/001</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="upsert/002">
+        <output-dir compare="Text">upsert/002</output-dir>
       </compilation-unit>
     </test-case>
     <test-case FilePath="column" check-warnings="true">
@@ -16161,5 +16166,60 @@
         <output-dir compare="Text">big-object</output-dir>
       </compilation-unit>
     </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="secondary-index/array-index/use-case-1">
+        <output-dir compare="Text">secondary-index/array-index/use-case-1</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="secondary-index/array-index/use-case-2">
+        <output-dir compare="Text">secondary-index/array-index/use-case-2</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="secondary-index/array-index/use-case-3">
+        <output-dir compare="Text">secondary-index/array-index/use-case-3</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="secondary-index/array-index/use-case-4">
+        <output-dir compare="Text">secondary-index/array-index/use-case-4</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="secondary-index/array-index/with-additional-atomic-index">
+        <output-dir compare="Text">secondary-index/array-index/with-additional-atomic-index</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="secondary-index/array-index/with-composite-sk">
+        <output-dir compare="Text">secondary-index/array-index/with-composite-sk</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="secondary-index/index-with-meta">
+        <output-dir compare="Text">secondary-index/index-with-meta</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="secondary-index/create-index/after-bulkload">
+        <output-dir compare="Text">secondary-index/create-index/after-bulkload</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="secondary-index/create-index/after-insert">
+        <output-dir compare="Text">secondary-index/create-index/after-insert</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="secondary-index/create-index/after-upsert-with-meta">
+        <output-dir compare="Text">secondary-index/create-index/after-upsert-with-meta</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="rebalance">
+        <output-dir compare="Text">rebalance</output-dir>
+      </compilation-unit>
+    </test-case>
   </test-group>
 </test-suite>
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/ColumnManagerFactory.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/ColumnManagerFactory.java
index 8e35416b0a..0b76216cd4 100644
--- a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/ColumnManagerFactory.java
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/ColumnManagerFactory.java
@@ -20,6 +20,7 @@ package org.apache.asterix.column;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 import org.apache.asterix.column.operation.lsm.flush.FlushColumnTupleReaderWriterFactory;
 import org.apache.asterix.column.operation.lsm.load.LoadColumnTupleReaderWriterFactory;
@@ -53,7 +54,7 @@ public final class ColumnManagerFactory implements IColumnManagerFactory {
         this.tolerance = tolerance;
 
         this.datasetType = datasetType;
-        if (keySourceIndicator.size() != 1) {
+        if (containsSplitKeys(keySourceIndicator)) {
             throw new UnsupportedOperationException(
                     "Primary keys split between meta-type and datasetType is not supported");
         }
@@ -128,7 +129,7 @@ public final class ColumnManagerFactory implements IColumnManagerFactory {
             List<String> primaryKey = new ArrayList<>();
             ArrayNode primaryKeyNode = (ArrayNode) primaryKeysNode.get(i);
             for (int j = 0; j < primaryKeyNode.size(); j++) {
-                primaryKey.add(primaryKeyNode.get(i).asText());
+                primaryKey.add(primaryKeyNode.get(j).asText());
             }
             primaryKeys.add(primaryKey);
         }
@@ -143,4 +144,17 @@ public final class ColumnManagerFactory implements IColumnManagerFactory {
                 tolerance);
     }
 
+    private static boolean containsSplitKeys(List<Integer> keySourceIndicator) {
+        if (keySourceIndicator.size() == 1) {
+            return false;
+        }
+        Integer value = keySourceIndicator.get(0);
+        for (int i = 1; i < keySourceIndicator.size(); i++) {
+            if (!Objects.equals(value, keySourceIndicator.get(i))) {
+                return true;
+            }
+        }
+        return false;
+    }
+
 }
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/create/PrimaryScanColumnTupleProjector.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/create/PrimaryScanColumnTupleProjector.java
new file mode 100644
index 0000000000..b9935821f5
--- /dev/null
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/create/PrimaryScanColumnTupleProjector.java
@@ -0,0 +1,54 @@
+/*
+ * 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.
+ */
+package org.apache.asterix.column.operation.lsm.secondary.create;
+
+import java.io.DataOutput;
+import java.io.IOException;
+import java.util.Collections;
+
+import org.apache.asterix.column.operation.query.QueryColumnTupleProjector;
+import org.apache.asterix.column.values.reader.filter.evaluator.NoOpColumnFilterEvaluatorFactory;
+import org.apache.asterix.common.exceptions.NoOpWarningCollector;
+import org.apache.asterix.om.types.ARecordType;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IValueReference;
+import org.apache.hyracks.dataflow.common.comm.io.ArrayTupleBuilder;
+import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
+import org.apache.hyracks.storage.am.lsm.btree.column.api.projection.IColumnProjectionInfo;
+import org.apache.hyracks.storage.am.lsm.btree.column.api.projection.IColumnTupleProjector;
+
+final class PrimaryScanColumnTupleProjector implements IColumnTupleProjector {
+    private final QueryColumnTupleProjector projector;
+
+    public PrimaryScanColumnTupleProjector(ARecordType datasetType, int numberOfPrimaryKeys,
+            ARecordType requestedType) {
+        projector = new QueryColumnTupleProjector(datasetType, numberOfPrimaryKeys, requestedType,
+                Collections.emptyMap(), NoOpColumnFilterEvaluatorFactory.INSTANCE, NoOpWarningCollector.INSTANCE);
+    }
+
+    @Override
+    public IColumnProjectionInfo createProjectionInfo(IValueReference serializedMetadata) throws HyracksDataException {
+        return projector.createProjectionInfo(serializedMetadata);
+    }
+
+    @Override
+    public ITupleReference project(ITupleReference tuple, DataOutput dos, ArrayTupleBuilder tb) throws IOException {
+        return projector.project(tuple, dos, tb);
+    }
+}
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/create/PrimaryScanColumnTupleProjectorFactory.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/create/PrimaryScanColumnTupleProjectorFactory.java
new file mode 100644
index 0000000000..91c3616f09
--- /dev/null
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/create/PrimaryScanColumnTupleProjectorFactory.java
@@ -0,0 +1,50 @@
+/*
+ * 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.
+ */
+package org.apache.asterix.column.operation.lsm.secondary.create;
+
+import org.apache.asterix.om.types.ARecordType;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.common.projection.ITupleProjector;
+import org.apache.hyracks.storage.common.projection.ITupleProjectorFactory;
+
+public class PrimaryScanColumnTupleProjectorFactory implements ITupleProjectorFactory {
+    private static final long serialVersionUID = -2320917202024130839L;
+    private final ARecordType datasetType;
+    private final ARecordType metaType;
+    private final int numberOfPrimaryKeys;
+    private final ARecordType requestedType;
+
+    public PrimaryScanColumnTupleProjectorFactory(ARecordType datasetType, ARecordType metaType,
+            int numberOfPrimaryKeys, ARecordType requestedType) {
+        this.datasetType = datasetType;
+        this.metaType = metaType;
+        this.numberOfPrimaryKeys = numberOfPrimaryKeys;
+        this.requestedType = requestedType;
+    }
+
+    @Override
+    public ITupleProjector createTupleProjector(IHyracksTaskContext context) throws HyracksDataException {
+        if (metaType != null) {
+            return new PrimaryScanColumnTupleWithMetaProjector(datasetType, metaType, numberOfPrimaryKeys,
+                    requestedType);
+        }
+        return new PrimaryScanColumnTupleProjector(datasetType, numberOfPrimaryKeys, requestedType);
+    }
+}
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/create/PrimaryScanColumnTupleWithMetaProjector.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/create/PrimaryScanColumnTupleWithMetaProjector.java
new file mode 100644
index 0000000000..0933049e4b
--- /dev/null
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/create/PrimaryScanColumnTupleWithMetaProjector.java
@@ -0,0 +1,55 @@
+/*
+ * 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.
+ */
+package org.apache.asterix.column.operation.lsm.secondary.create;
+
+import java.io.DataOutput;
+import java.io.IOException;
+import java.util.Collections;
+
+import org.apache.asterix.column.operation.query.QueryColumnWithMetaTupleProjector;
+import org.apache.asterix.column.values.reader.filter.evaluator.NoOpColumnFilterEvaluatorFactory;
+import org.apache.asterix.common.exceptions.NoOpWarningCollector;
+import org.apache.asterix.om.types.ARecordType;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IValueReference;
+import org.apache.hyracks.dataflow.common.comm.io.ArrayTupleBuilder;
+import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
+import org.apache.hyracks.storage.am.lsm.btree.column.api.projection.IColumnProjectionInfo;
+import org.apache.hyracks.storage.am.lsm.btree.column.api.projection.IColumnTupleProjector;
+
+final class PrimaryScanColumnTupleWithMetaProjector implements IColumnTupleProjector {
+    private final QueryColumnWithMetaTupleProjector projector;
+
+    public PrimaryScanColumnTupleWithMetaProjector(ARecordType datasetType, ARecordType metaType,
+            int numberOfPrimaryKeys, ARecordType requestedType) {
+        projector = new QueryColumnWithMetaTupleProjector(datasetType, metaType, numberOfPrimaryKeys, requestedType,
+                Collections.emptyMap(), metaType, Collections.emptyMap(), NoOpColumnFilterEvaluatorFactory.INSTANCE,
+                NoOpWarningCollector.INSTANCE);
+    }
+
+    @Override
+    public IColumnProjectionInfo createProjectionInfo(IValueReference serializedMetadata) throws HyracksDataException {
+        return projector.createProjectionInfo(serializedMetadata);
+    }
+
+    @Override
+    public ITupleReference project(ITupleReference tuple, DataOutput dos, ArrayTupleBuilder tb) throws IOException {
+        return projector.project(tuple, dos, tb);
+    }
+}
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/upsert/UpsertPreviousColumnTupleProjector.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/upsert/UpsertPreviousColumnTupleProjector.java
new file mode 100644
index 0000000000..b245785831
--- /dev/null
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/upsert/UpsertPreviousColumnTupleProjector.java
@@ -0,0 +1,57 @@
+/*
+ * 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.
+ */
+package org.apache.asterix.column.operation.lsm.secondary.upsert;
+
+import java.io.DataOutput;
+import java.io.IOException;
+import java.util.Collections;
+
+import org.apache.asterix.column.operation.query.QueryColumnTupleProjector;
+import org.apache.asterix.column.values.reader.filter.evaluator.NoOpColumnFilterEvaluatorFactory;
+import org.apache.asterix.common.exceptions.NoOpWarningCollector;
+import org.apache.asterix.om.types.ARecordType;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IValueReference;
+import org.apache.hyracks.dataflow.common.comm.io.ArrayTupleBuilder;
+import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
+import org.apache.hyracks.storage.am.lsm.btree.column.api.projection.IColumnProjectionInfo;
+import org.apache.hyracks.storage.am.lsm.btree.column.api.projection.IColumnTupleProjector;
+
+final class UpsertPreviousColumnTupleProjector implements IColumnTupleProjector {
+    private final ArrayTupleBuilder builder;
+    private final QueryColumnTupleProjector projector;
+
+    public UpsertPreviousColumnTupleProjector(ARecordType datasetType, int numberOfPrimaryKeys,
+            ARecordType requestedType) {
+        builder = new ArrayTupleBuilder(numberOfPrimaryKeys + 1);
+        projector = new QueryColumnTupleProjector(datasetType, numberOfPrimaryKeys, requestedType,
+                Collections.emptyMap(), NoOpColumnFilterEvaluatorFactory.INSTANCE, NoOpWarningCollector.INSTANCE);
+    }
+
+    @Override
+    public IColumnProjectionInfo createProjectionInfo(IValueReference serializedMetadata) throws HyracksDataException {
+        return projector.createProjectionInfo(serializedMetadata);
+    }
+
+    @Override
+    public ITupleReference project(ITupleReference tuple, DataOutput dos, ArrayTupleBuilder tb) throws IOException {
+        builder.reset();
+        return projector.project(tuple, builder.getDataOutput(), builder);
+    }
+}
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/upsert/UpsertPreviousColumnTupleProjectorFactory.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/upsert/UpsertPreviousColumnTupleProjectorFactory.java
new file mode 100644
index 0000000000..643eebcada
--- /dev/null
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/upsert/UpsertPreviousColumnTupleProjectorFactory.java
@@ -0,0 +1,50 @@
+/*
+ * 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.
+ */
+package org.apache.asterix.column.operation.lsm.secondary.upsert;
+
+import org.apache.asterix.om.types.ARecordType;
+import org.apache.hyracks.api.context.IHyracksTaskContext;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.common.projection.ITupleProjector;
+import org.apache.hyracks.storage.common.projection.ITupleProjectorFactory;
+
+public class UpsertPreviousColumnTupleProjectorFactory implements ITupleProjectorFactory {
+    private static final long serialVersionUID = -2320917202024130839L;
+    private final ARecordType datasetType;
+    private final ARecordType metaType;
+    private final int numberOfPrimaryKeys;
+    private final ARecordType requestedType;
+
+    public UpsertPreviousColumnTupleProjectorFactory(ARecordType datasetType, ARecordType metaType,
+            int numberOfPrimaryKeys, ARecordType requestedType) {
+        this.datasetType = datasetType;
+        this.metaType = metaType;
+        this.numberOfPrimaryKeys = numberOfPrimaryKeys;
+        this.requestedType = requestedType;
+    }
+
+    @Override
+    public ITupleProjector createTupleProjector(IHyracksTaskContext context) throws HyracksDataException {
+        if (metaType != null) {
+            return new UpsertPreviousColumnTupleWithMetaProjector(datasetType, metaType, numberOfPrimaryKeys,
+                    requestedType);
+        }
+        return new UpsertPreviousColumnTupleProjector(datasetType, numberOfPrimaryKeys, requestedType);
+    }
+}
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/upsert/UpsertPreviousColumnTupleWithMetaProjector.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/upsert/UpsertPreviousColumnTupleWithMetaProjector.java
new file mode 100644
index 0000000000..d6285dcc94
--- /dev/null
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/upsert/UpsertPreviousColumnTupleWithMetaProjector.java
@@ -0,0 +1,59 @@
+/*
+ * 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.
+ */
+package org.apache.asterix.column.operation.lsm.secondary.upsert;
+
+import java.io.DataOutput;
+import java.io.IOException;
+import java.util.Collections;
+
+import org.apache.asterix.column.operation.query.QueryColumnWithMetaTupleProjector;
+import org.apache.asterix.column.values.reader.filter.evaluator.NoOpColumnFilterEvaluatorFactory;
+import org.apache.asterix.common.exceptions.NoOpWarningCollector;
+import org.apache.asterix.om.types.ARecordType;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IValueReference;
+import org.apache.hyracks.dataflow.common.comm.io.ArrayTupleBuilder;
+import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
+import org.apache.hyracks.storage.am.lsm.btree.column.api.projection.IColumnProjectionInfo;
+import org.apache.hyracks.storage.am.lsm.btree.column.api.projection.IColumnTupleProjector;
+
+final class UpsertPreviousColumnTupleWithMetaProjector implements IColumnTupleProjector {
+    private final ArrayTupleBuilder builder;
+    private final QueryColumnWithMetaTupleProjector projector;
+
+    public UpsertPreviousColumnTupleWithMetaProjector(ARecordType datasetType, ARecordType metaType,
+            int numberOfPrimaryKeys, ARecordType requestedType) {
+        // +2 one for the record and one for meta
+        builder = new ArrayTupleBuilder(numberOfPrimaryKeys + 2);
+        projector = new QueryColumnWithMetaTupleProjector(datasetType, metaType, numberOfPrimaryKeys, requestedType,
+                Collections.emptyMap(), metaType, Collections.emptyMap(), NoOpColumnFilterEvaluatorFactory.INSTANCE,
+                NoOpWarningCollector.INSTANCE);
+    }
+
+    @Override
+    public IColumnProjectionInfo createProjectionInfo(IValueReference serializedMetadata) throws HyracksDataException {
+        return projector.createProjectionInfo(serializedMetadata);
+    }
+
+    @Override
+    public ITupleReference project(ITupleReference tuple, DataOutput dos, ArrayTupleBuilder tb) throws IOException {
+        builder.reset();
+        return projector.project(tuple, builder.getDataOutput(), builder);
+    }
+}
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnMetadata.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnMetadata.java
index 6c5124041b..f2407d3cc7 100644
--- a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnMetadata.java
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnMetadata.java
@@ -47,6 +47,7 @@ import org.apache.hyracks.api.exceptions.IWarningCollector;
 import org.apache.hyracks.data.std.api.IValueReference;
 import org.apache.hyracks.data.std.primitive.IntegerPointable;
 import org.apache.hyracks.storage.am.lsm.btree.column.api.AbstractColumnTupleReader;
+import org.apache.hyracks.util.LogRedactionUtil;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -172,7 +173,7 @@ public class QueryColumnMetadata extends AbstractColumnImmutableReadMetadata {
 
         if (LOGGER.isInfoEnabled() && filterEvaluator != TrueColumnFilterEvaluator.INSTANCE) {
             String filterString = filterEvaluator == FalseColumnFilterEvaluator.INSTANCE ? "SKIP_ALL"
-                    : filterEvaluatorFactory.toString();
+                    : LogRedactionUtil.userData(filterEvaluatorFactory.toString());
             LOGGER.info("Filter: {}", filterString);
         }
 
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnTupleProjector.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnTupleProjector.java
index 8865b13f8e..08efc2b1ad 100644
--- a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnTupleProjector.java
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnTupleProjector.java
@@ -37,7 +37,7 @@ import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
 import org.apache.hyracks.storage.am.lsm.btree.column.api.projection.IColumnProjectionInfo;
 import org.apache.hyracks.storage.am.lsm.btree.column.api.projection.IColumnTupleProjector;
 
-class QueryColumnTupleProjector implements IColumnTupleProjector {
+public class QueryColumnTupleProjector implements IColumnTupleProjector {
     protected final ARecordType datasetType;
     protected final ARecordType requestedType;
     protected final int numberOfPrimaryKeys;
@@ -46,7 +46,7 @@ class QueryColumnTupleProjector implements IColumnTupleProjector {
     protected final IColumnFilterEvaluatorFactory filterEvaluator;
     private final AssembledTupleReference assembledTupleReference;
 
-    QueryColumnTupleProjector(ARecordType datasetType, int numberOfPrimaryKeys, ARecordType requestedType,
+    public QueryColumnTupleProjector(ARecordType datasetType, int numberOfPrimaryKeys, ARecordType requestedType,
             Map<String, FunctionCallInformation> functionCallInfoMap, IColumnFilterEvaluatorFactory filterEvaluator,
             IWarningCollector warningCollector) {
         this.datasetType = datasetType;
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnWithMetaTupleProjector.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnWithMetaTupleProjector.java
index e8f9045d69..b3deb46603 100644
--- a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnWithMetaTupleProjector.java
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnWithMetaTupleProjector.java
@@ -35,12 +35,12 @@ import org.apache.hyracks.dataflow.common.comm.io.ArrayTupleBuilder;
 import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
 import org.apache.hyracks.storage.am.lsm.btree.column.api.projection.IColumnProjectionInfo;
 
-class QueryColumnWithMetaTupleProjector extends QueryColumnTupleProjector {
+public class QueryColumnWithMetaTupleProjector extends QueryColumnTupleProjector {
     private final ARecordType metaType;
     private final ARecordType requestedMetaType;
     private final Map<String, FunctionCallInformation> metaFunctionCallInfoMap;
 
-    QueryColumnWithMetaTupleProjector(ARecordType datasetType, ARecordType metaType, int numberOfPrimaryKeys,
+    public QueryColumnWithMetaTupleProjector(ARecordType datasetType, ARecordType metaType, int numberOfPrimaryKeys,
             ARecordType requestedType, Map<String, FunctionCallInformation> functionCallInfoMap,
             ARecordType requestedMetaType, Map<String, FunctionCallInformation> metaFunctionCallInfoMap,
             IColumnFilterEvaluatorFactory filterEvaluator, IWarningCollector warningCollector) {
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/util/ColumnSecondaryIndexSchemaUtil.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/util/ColumnSecondaryIndexSchemaUtil.java
new file mode 100644
index 0000000000..87c111f509
--- /dev/null
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/util/ColumnSecondaryIndexSchemaUtil.java
@@ -0,0 +1,118 @@
+/*
+ * 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.
+ */
+package org.apache.asterix.column.util;
+
+import java.util.List;
+
+import org.apache.asterix.om.typecomputer.impl.RecordMergeTypeComputer;
+import org.apache.asterix.om.types.AOrderedListType;
+import org.apache.asterix.om.types.ARecordType;
+import org.apache.asterix.om.types.BuiltinType;
+import org.apache.asterix.om.types.IAType;
+import org.apache.asterix.runtime.projection.DataProjectionFiltrationInfo;
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+
+public class ColumnSecondaryIndexSchemaUtil {
+    private ColumnSecondaryIndexSchemaUtil() {
+    }
+
+    /**
+     * Get the expected type for a value index
+     *
+     * @param paths the path to the indexed value
+     * @return expected type
+     */
+    public static ARecordType getRecordType(List<List<String>> paths) throws AlgebricksException {
+        ARecordType result = DataProjectionFiltrationInfo.EMPTY_TYPE;
+        for (List<String> path : paths) {
+            ARecordType type = getRecordType(path, "root", 0, BuiltinType.ANY);
+            result = (ARecordType) RecordMergeTypeComputer.merge(result, type);
+        }
+
+        // Rename
+        return new ARecordType("root", result.getFieldNames(), result.getFieldTypes(), true);
+    }
+
+    /**
+     * Get the expected type for an array index
+     *
+     * @param unnest  the unnest path (UNNEST)
+     * @param project the project path (SELECT)
+     * @return the expected type
+     */
+    public static ARecordType getRecordType(List<List<String>> unnest, List<List<String>> project)
+            throws AlgebricksException {
+        IAType result = getLeafType(project);
+        for (int i = unnest.size() - 1; i >= 0; i--) {
+            List<String> path = unnest.get(i);
+            result = getRecordType(path, "parent_" + i, 0, new AOrderedListType(result, "array_" + i));
+        }
+        return (ARecordType) result;
+    }
+
+    /**
+     * Merge all types into a single one
+     *
+     * @param types the list of type for indexed fields
+     * @return a single type that encompasses all indexed fields
+     */
+    public static ARecordType merge(List<ARecordType> types) throws AlgebricksException {
+        ARecordType result = types.get(0);
+        for (int i = 1; i < types.size(); i++) {
+            result = (ARecordType) RecordMergeTypeComputer.merge(result, types.get(i));
+        }
+
+        // Rename
+        return new ARecordType("root", result.getFieldNames(), result.getFieldTypes(), true);
+    }
+
+    private static IAType getType(String typeName, List<String> path, int fieldIndex, IAType leafType) {
+        if (fieldIndex == path.size()) {
+            return leafType;
+        }
+        return getRecordType(path, typeName, fieldIndex, leafType);
+    }
+
+    private static ARecordType getRecordType(List<String> path, String typeName, int fieldIndex, IAType leafType) {
+        String[] fieldNames = new String[1];
+        IAType[] fieldTypes = new IAType[1];
+
+        String fieldName = path.get(fieldIndex);
+        fieldNames[0] = fieldName;
+        fieldTypes[0] = getType(getTypeName(fieldName), path, fieldIndex + 1, leafType);
+        return new ARecordType(typeName, fieldNames, fieldTypes, true);
+    }
+
+    private static IAType getLeafType(List<List<String>> project) throws AlgebricksException {
+        IAType itemType;
+        // Sometimes 'project' contains a single null value
+        if (project.isEmpty() || project.get(0) == null) {
+            itemType = BuiltinType.ANY;
+        } else {
+            itemType = getRecordType(project);
+        }
+
+        return itemType;
+    }
+
+    private static String getTypeName(String fieldName) {
+        return fieldName + "_Type";
+    }
+
+}
diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/reader/RepeatedPrimitiveColumnValuesReader.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/reader/RepeatedPrimitiveColumnValuesReader.java
index 0fb98bef76..673aa98bd7 100644
--- a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/reader/RepeatedPrimitiveColumnValuesReader.java
+++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/values/reader/RepeatedPrimitiveColumnValuesReader.java
@@ -129,4 +129,16 @@ public final class RepeatedPrimitiveColumnValuesReader extends AbstractColumnVal
         }
         delimiterIndex = levelToDelimiterMap[level];
     }
+
+    @Override
+    public void skip(int count) throws HyracksDataException {
+        for (int i = 0; i < count; i++) {
+            next();
+            if (isRepeatedValue()) {
+                while (!isLastDelimiter()) {
+                    next();
+                }
+            }
+        }
+    }
 }
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Index.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Index.java
index 6b12bf82ce..bb1fdd9015 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Index.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Index.java
@@ -20,11 +20,13 @@
 package org.apache.asterix.metadata.entities;
 
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
+import org.apache.asterix.column.util.ColumnSecondaryIndexSchemaUtil;
 import org.apache.asterix.common.config.DatasetConfig.IndexType;
 import org.apache.asterix.common.exceptions.AsterixException;
 import org.apache.asterix.common.exceptions.CompilationException;
@@ -223,10 +225,7 @@ public class Index implements IMetadataEntity<Index>, Comparable<Index> {
         if (!datasetName.equals(otherIndex.getDatasetName())) {
             return false;
         }
-        if (!dataverseName.equals(otherIndex.getDataverseName())) {
-            return false;
-        }
-        return true;
+        return dataverseName.equals(otherIndex.getDataverseName());
     }
 
     @Override
@@ -415,6 +414,10 @@ public class Index implements IMetadataEntity<Index>, Comparable<Index> {
         public boolean isOverridingKeyFieldTypes() {
             return overrideKeyFieldTypes;
         }
+
+        public ARecordType getIndexExpectedType() throws AlgebricksException {
+            return ColumnSecondaryIndexSchemaUtil.getRecordType(getKeyFieldNames());
+        }
     }
 
     public static final class TextIndexDetails extends AbstractIndexDetails {
@@ -504,6 +507,15 @@ public class Index implements IMetadataEntity<Index>, Comparable<Index> {
         public boolean isOverridingKeyFieldTypes() {
             return overrideKeyFieldTypes;
         }
+
+        public ARecordType getIndexExpectedType() throws AlgebricksException {
+            List<ARecordType> types = new ArrayList<>();
+            for (Index.ArrayIndexElement element : elementList) {
+                types.add(ColumnSecondaryIndexSchemaUtil.getRecordType(element.getUnnestList(),
+                        element.getProjectList()));
+            }
+            return ColumnSecondaryIndexSchemaUtil.merge(types);
+        }
     }
 
     public static final class ArrayIndexElement implements Serializable {
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java
index 6529794e96..083b9641a6 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java
@@ -30,6 +30,8 @@ import java.util.UUID;
 
 import org.apache.asterix.builders.IARecordBuilder;
 import org.apache.asterix.builders.RecordBuilder;
+import org.apache.asterix.column.util.ColumnSecondaryIndexSchemaUtil;
+import org.apache.asterix.common.config.DatasetConfig;
 import org.apache.asterix.common.config.DatasetConfig.DatasetType;
... 755 lines suppressed ...