You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by wy...@apache.org on 2023/03/19 14:08:35 UTC

[asterixdb] branch master updated: [ASTERIXDB-3142] Add columnar format tests

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 66c074e196 [ASTERIXDB-3142] Add columnar format tests
66c074e196 is described below

commit 66c074e1963be314f405e05cf39a4422cce170ae
Author: Wail Alkowaileet <wa...@gmail.com>
AuthorDate: Sat Mar 18 12:17:15 2023 -0700

    [ASTERIXDB-3142] Add columnar format tests
    
    - user model changes: yes
    - storage format changes: no
    - interface changes: no
    
    Details:
    This patch adds columnar unit and integration tests
    
    User model change:
    This patch also changes the way to specify the dataset
    format from 'dataset-format' to 'storage-format'
    
    Change-Id: I3eb20140b25a0439342c2ed2430a6de4c8fdb0b0
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17437
    Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Reviewed-by: Murtadha Hubail <mh...@apache.org>
    Reviewed-by: Wail Alkowaileet <wa...@gmail.com>
---
 .../asterix/optimizer/base/RuleCollections.java    |   1 -
 .../column/assembly/assembly.001.ddl.sqlpp         |  50 ++++
 .../column/assembly/assembly.002.update.sqlpp      |  45 ++++
 .../column/assembly/assembly.003.query.sqlpp       |  24 ++
 .../column/assembly/assembly.004.query.sqlpp       |  24 ++
 .../column/assembly/assembly.005.query.sqlpp       |  24 ++
 .../column/assembly/assembly.006.query.sqlpp       |  24 ++
 .../column/big-object/big-object.1.ddl.sqlpp       |  33 +++
 .../column/big-object/big-object.2.update.sqlpp    | 119 +++++++++
 .../column/big-object/big-object.3.get.http        |  19 ++
 .../column/big-object/big-object.4.query.sqlpp     |  25 ++
 .../column/delete/001/001.001.ddl.sqlpp            |  33 +++
 .../column/delete/001/001.002.update.sqlpp         |  27 ++
 .../column/delete/001/001.003.get.http             |  19 ++
 .../column/delete/001/001.004.query.sqlpp          |  25 ++
 .../column/delete/001/001.005.update.sqlpp         |  24 ++
 .../column/delete/001/001.006.query.sqlpp          |  25 ++
 .../column/delete/001/001.007.get.http             |  19 ++
 .../column/delete/001/001.008.query.sqlpp          |  25 ++
 .../column/delete/002/002.001.ddl.sqlpp            |  33 +++
 .../column/delete/002/002.002.update.sqlpp         |  27 ++
 .../column/delete/002/002.003.get.http             |  19 ++
 .../column/delete/002/002.004.query.sqlpp          |  25 ++
 .../column/delete/002/002.005.update.sqlpp         |  24 ++
 .../column/delete/002/002.006.query.sqlpp          |  25 ++
 .../column/delete/002/002.007.get.http             |  19 ++
 .../column/delete/002/002.008.query.sqlpp          |  25 ++
 .../column/filter/001/001.001.ddl.sqlpp            |  31 +++
 .../column/filter/001/001.002.update.sqlpp         |  26 ++
 .../column/filter/001/001.003.get.http             |  19 ++
 .../column/filter/001/001.004.update.sqlpp         |  26 ++
 .../column/filter/001/001.005.get.http             |  19 ++
 .../column/filter/001/001.006.query.sqlpp          |  31 +++
 .../column/filter/001/001.007.query.sqlpp          |  31 +++
 .../column/filter/001/001.008.query.sqlpp          |  31 +++
 .../column/filter/001/001.009.query.sqlpp          |  31 +++
 .../column/filter/001/001.010.query.sqlpp          |  30 +++
 .../column/filter/001/001.011.query.sqlpp          |  30 +++
 .../column/filter/001/001.012.query.sqlpp          |  30 +++
 .../column/filter/001/001.013.query.sqlpp          |  30 +++
 .../column/filter/001/001.014.query.sqlpp          |  30 +++
 .../column/filter/001/001.015.query.sqlpp          |  30 +++
 .../column/filter/001/001.016.query.sqlpp          |  31 +++
 .../column/filter/001/001.017.query.sqlpp          |  31 +++
 .../column/filter/001/001.018.query.sqlpp          |  29 ++
 .../column/filter/001/001.019.query.sqlpp          |  29 ++
 .../column/filter/001/001.020.query.sqlpp          |  29 ++
 .../column/filter/001/001.021.query.sqlpp          |  29 ++
 .../column/filter/001/001.022.query.sqlpp          |  29 ++
 .../column/filter/001/001.023.query.sqlpp          |  29 ++
 .../column/filter/002/002.001.ddl.sqlpp            |  31 +++
 .../column/filter/002/002.002.update.sqlpp         |  26 ++
 .../column/filter/002/002.003.get.http             |  19 ++
 .../column/filter/002/002.004.update.sqlpp         |  26 ++
 .../column/filter/002/002.005.get.http             |  19 ++
 .../column/filter/002/002.006.update.sqlpp         |  26 ++
 .../column/filter/002/002.007.get.http             |  19 ++
 .../column/filter/002/002.008.query.sqlpp          |  30 +++
 .../column/filter/003/003.001.ddl.sqlpp            |  31 +++
 .../column/filter/003/003.002.update.sqlpp         |  26 ++
 .../column/filter/003/003.003.get.http             |  19 ++
 .../column/filter/003/003.004.query.sqlpp          |  27 ++
 .../meta_after_gby/meta_after_gby.001.ddl.sqlpp    |  54 ++++
 .../meta_after_gby/meta_after_gby.002.update.sqlpp |  24 ++
 .../meta_after_gby/meta_after_gby.003.get.http     |  19 ++
 .../meta_after_gby/meta_after_gby.004.query.sqlpp  |  31 +++
 .../meta_in_with_clause.001.ddl.sqlpp              |  78 ++++++
 .../meta_in_with_clause.002.update.sqlpp           |  27 ++
 .../meta_in_with_clause.003.get.http               |  19 ++
 .../meta_in_with_clause.004.get.http               |  19 ++
 .../meta_in_with_clause.005.query.sqlpp            |  29 ++
 .../meta_in_with_clause.006.query.sqlpp            |  29 ++
 .../meta_in_with_clause.007.query.sqlpp            |  29 ++
 .../meta_in_with_clause.008.query.sqlpp            |  29 ++
 .../resolving_pk_with_meta.001.ddl.sqlpp           |  75 ++++++
 .../resolving_pk_with_meta.002.update.sqlpp        |  27 ++
 .../resolving_pk_with_meta.003.get.http            |  19 ++
 .../resolving_pk_with_meta.004.get.http            |  19 ++
 .../resolving_pk_with_meta.005.query.sqlpp         |  27 ++
 .../resolving_pk_with_meta.006.query.sqlpp         |  27 ++
 .../resolving_pk_with_meta.007.query.sqlpp         |  27 ++
 .../resolving_pk_with_meta.008.query.sqlpp         |  27 ++
 .../missing-null-values/001/001.001.ddl.sqlpp      |  33 +++
 .../missing-null-values/001/001.002.update.sqlpp   |  26 ++
 .../missing-null-values/001/001.003.query.sqlpp    |  23 ++
 .../missing-null-values/002/002.001.ddl.sqlpp      |  33 +++
 .../missing-null-values/002/002.002.update.sqlpp   |  26 ++
 .../missing-null-values/002/002.003.get.http       |  19 ++
 .../missing-null-values/002/002.004.query.sqlpp    |  24 ++
 .../missing-null-values/003/003.001.ddl.sqlpp      |  33 +++
 .../missing-null-values/003/003.002.update.sqlpp   |  27 ++
 .../missing-null-values/003/003.003.get.http       |  19 ++
 .../missing-null-values/003/003.004.query.sqlpp    |  24 ++
 .../missing-null-values/004/004.001.ddl.sqlpp      |  33 +++
 .../missing-null-values/004/004.002.update.sqlpp   |  27 ++
 .../missing-null-values/004/004.003.get.http       |  19 ++
 .../missing-null-values/004/004.004.query.sqlpp    |  24 ++
 .../missing-null-values/004/004.005.update.sqlpp   |  27 ++
 .../missing-null-values/004/004.006.get.http       |  19 ++
 .../missing-null-values/004/004.007.query.sqlpp    |  29 ++
 .../missing-null-values/005/005.001.ddl.sqlpp      |  33 +++
 .../missing-null-values/005/005.002.update.sqlpp   |  27 ++
 .../missing-null-values/005/005.003.query.sqlpp    |  24 ++
 .../missing-null-values/005/005.004.get.http       |  19 ++
 .../missing-null-values/005/005.005.query.sqlpp    |  24 ++
 .../missing-null-values/006/006.001.ddl.sqlpp      |  33 +++
 .../missing-null-values/006/006.002.update.sqlpp   |  27 ++
 .../missing-null-values/006/006.003.query.sqlpp    |  24 ++
 .../missing-null-values/006/006.004.get.http       |  19 ++
 .../missing-null-values/006/006.005.query.sqlpp    |  24 ++
 .../array-access-pushdown.001.ddl.sqlpp            |  33 +++
 .../array-access-pushdown.002.update.sqlpp         |  26 ++
 .../array-access-pushdown.003.query.sqlpp          |  26 ++
 .../array-access-pushdown.004.query.sqlpp          |  26 ++
 .../array-access-pushdown.005.query.sqlpp          |  27 ++
 .../array-access-pushdown.006.query.sqlpp          |  27 ++
 .../array-access-pushdown.007.query.sqlpp          |  26 ++
 .../array-access-pushdown.008.query.sqlpp          |  26 ++
 .../array-access-pushdown.009.query.sqlpp          |  26 ++
 .../array-access-pushdown.010.query.sqlpp          |  26 ++
 .../array-access-pushdown.011.query.sqlpp          |  26 ++
 .../array-access-pushdown.012.query.sqlpp          |  26 ++
 .../field-access-pushdown.001.ddl.sqlpp            |  53 ++++
 .../field-access-pushdown.002.update.sqlpp         |  45 ++++
 .../field-access-pushdown.003.query.sqlpp          |  26 ++
 .../field-access-pushdown.004.query.sqlpp          |  26 ++
 .../field-access-pushdown.005.query.sqlpp          |  27 ++
 .../field-access-pushdown.006.query.sqlpp          |  27 ++
 .../field-access-pushdown.007.query.sqlpp          |  27 ++
 .../field-access-pushdown.008.query.sqlpp          |  27 ++
 .../field-access-pushdown.009.query.sqlpp          |  26 ++
 .../field-access-pushdown.010.query.sqlpp          |  26 ++
 .../field-access-pushdown.011.query.sqlpp          |  25 ++
 .../field-access-pushdown.012.query.sqlpp          |  25 ++
 .../heterogeneous-access-pushdown.001.ddl.sqlpp    |  37 +++
 .../heterogeneous-access-pushdown.002.update.sqlpp |  26 ++
 .../heterogeneous-access-pushdown.003.query.sqlpp  |  32 +++
 .../heterogeneous-access-pushdown.004.query.sqlpp  |  32 +++
 .../other-pushdowns/other-pushdowns.001.ddl.sqlpp  |  35 +++
 .../other-pushdowns.002.update.sqlpp               |  32 +++
 .../other-pushdowns.003.query.sqlpp                |  26 ++
 .../other-pushdowns.004.query.sqlpp                |  26 ++
 .../other-pushdowns.005.query.sqlpp                |  27 ++
 .../other-pushdowns.006.query.sqlpp                |  27 ++
 .../other-pushdowns.007.query.sqlpp                |  28 ++
 .../other-pushdowns.008.query.sqlpp                |  28 ++
 .../other-pushdowns.009.query.sqlpp                |  28 ++
 .../other-pushdowns.010.query.sqlpp                |  28 ++
 .../other-pushdowns.011.query.sqlpp                |  27 ++
 .../other-pushdowns.012.query.sqlpp                |  27 ++
 .../other-pushdowns.013.query.sqlpp                |  29 ++
 .../other-pushdowns.014.query.sqlpp                |  29 ++
 .../select-count-one-field.001.ddl.sqlpp           |  33 +++
 .../select-count-one-field.002.update.sqlpp        |  26 ++
 .../select-count-one-field.003.query.sqlpp         |  23 ++
 .../select-count-one-field.004.query.sqlpp         |  23 ++
 .../column/upsert/upsert.001.ddl.sqlpp             |  31 +++
 .../column/upsert/upsert.0014.update.sqlpp         |  22 ++
 .../column/upsert/upsert.002.update.sqlpp          |  26 ++
 .../column/upsert/upsert.003.query.sqlpp           |  25 ++
 .../column/upsert/upsert.004.get.http              |  19 ++
 .../column/upsert/upsert.005.query.sqlpp           |  25 ++
 .../column/upsert/upsert.006.update.sqlpp          |  25 ++
 .../column/upsert/upsert.007.query.sqlpp           |  25 ++
 .../column/upsert/upsert.008.get.http              |  19 ++
 .../column/upsert/upsert.009.query.sqlpp           |  25 ++
 .../column/upsert/upsert.010.update.sqlpp          |  28 ++
 .../column/upsert/upsert.011.query.sqlpp           |  25 ++
 .../column/upsert/upsert.012.get.http              |  19 ++
 .../column/upsert/upsert.013.query.sqlpp           |  25 ++
 .../column/upsert/upsert.015.get.http              |  19 ++
 .../column/upsert/upsert.016.query.sqlpp           |  25 ++
 .../results/column/assembly/assembly.003.adm       |   2 +
 .../results/column/assembly/assembly.004.adm       |   6 +
 .../results/column/assembly/assembly.005.adm       |  21 ++
 .../results/column/assembly/assembly.006.adm       |   8 +
 .../results/column/big-object/big-object.3.adm     |   1 +
 .../results/column/big-object/big-object.4.adm     | 100 +++++++
 .../results/column/delete/001/001.003.adm          |   1 +
 .../results/column/delete/001/001.004.adm          |   3 +
 .../results/column/delete/001/001.006.adm          |   2 +
 .../results/column/delete/001/001.007.adm          |   1 +
 .../results/column/delete/001/001.008.adm          |   2 +
 .../results/column/delete/002/002.003.adm          |   1 +
 .../results/column/delete/002/002.004.adm          |   3 +
 .../results/column/delete/002/002.006.adm          |   2 +
 .../results/column/delete/002/002.007.adm          |   1 +
 .../results/column/delete/002/002.008.adm          |   2 +
 .../results/column/filter/001/001.003.adm          |   1 +
 .../results/column/filter/001/001.005.adm          |   1 +
 .../results/column/filter/001/001.006.adm          |   1 +
 .../results/column/filter/001/001.007.plan         |  22 ++
 .../results/column/filter/001/001.008.adm          |   0
 .../results/column/filter/001/001.009.plan         |  22 ++
 .../results/column/filter/001/001.010.adm          |   0
 .../results/column/filter/001/001.011.plan         |  35 +++
 .../results/column/filter/001/001.012.adm          |   3 +
 .../results/column/filter/001/001.013.plan         |  35 +++
 .../results/column/filter/001/001.014.adm          |   1 +
 .../results/column/filter/001/001.015.plan         |  35 +++
 .../results/column/filter/001/001.016.adm          |   4 +
 .../results/column/filter/001/001.017.plan         |  35 +++
 .../results/column/filter/001/001.018.adm          |   3 +
 .../results/column/filter/001/001.019.plan         |  30 +++
 .../results/column/filter/001/001.020.adm          |   1 +
 .../results/column/filter/001/001.021.plan         |  30 +++
 .../results/column/filter/001/001.022.adm          |   0
 .../results/column/filter/001/001.023.plan         |  30 +++
 .../results/column/filter/002/002.003.adm          |   1 +
 .../results/column/filter/002/002.005.adm          |   1 +
 .../results/column/filter/002/002.007.adm          |   1 +
 .../results/column/filter/002/002.008.adm          |   1 +
 .../results/column/filter/003/003.003.adm          |   1 +
 .../results/column/filter/003/003.004.adm          |   0
 .../meta/meta_after_gby/meta_after_gby.3.adm       |   1 +
 .../meta/meta_after_gby/meta_after_gby.4.adm       |   6 +
 .../meta_in_with_clause/meta_in_with_clause.3.adm  |   1 +
 .../meta_in_with_clause/meta_in_with_clause.4.adm  |   1 +
 .../meta_in_with_clause/meta_in_with_clause.5.adm  |   8 +
 .../meta_in_with_clause/meta_in_with_clause.6.adm  |   8 +
 .../meta_in_with_clause/meta_in_with_clause.7.adm  |   8 +
 .../meta_in_with_clause/meta_in_with_clause.8.adm  |   8 +
 .../resolving_pk_with_meta.3.adm                   |   1 +
 .../resolving_pk_with_meta.4.adm                   |   1 +
 .../resolving_pk_with_meta.5.adm                   |   9 +
 .../resolving_pk_with_meta.6.adm                   |   9 +
 .../resolving_pk_with_meta.7.adm                   |   9 +
 .../resolving_pk_with_meta.8.adm                   |   9 +
 .../column/missing-null-values/001/001.003.adm     |   2 +
 .../column/missing-null-values/002/002.003.adm     |   1 +
 .../column/missing-null-values/002/002.004.adm     |   3 +
 .../column/missing-null-values/003/003.003.adm     |   1 +
 .../column/missing-null-values/003/003.004.adm     |   3 +
 .../column/missing-null-values/004/004.003.adm     |   1 +
 .../column/missing-null-values/004/004.004.adm     |   3 +
 .../column/missing-null-values/004/004.006.adm     |   1 +
 .../column/missing-null-values/004/004.007.adm     |   6 +
 .../column/missing-null-values/005/005.003.adm     |   4 +
 .../column/missing-null-values/005/005.004.adm     |   1 +
 .../column/missing-null-values/005/005.005.adm     |   4 +
 .../column/missing-null-values/006/006.003.adm     |   4 +
 .../column/missing-null-values/006/006.004.adm     |   1 +
 .../column/missing-null-values/006/006.005.adm     |   4 +
 .../array-access-pushdown.003.adm                  |   2 +
 .../array-access-pushdown.004.plan                 |  24 ++
 .../array-access-pushdown.005.adm                  |   1 +
 .../array-access-pushdown.006.plan                 |  30 +++
 .../array-access-pushdown.007.adm                  |   1 +
 .../array-access-pushdown.008.plan                 |  28 ++
 .../array-access-pushdown.009.adm                  |   1 +
 .../array-access-pushdown.010.plan                 |  41 +++
 .../array-access-pushdown.011.adm                  |   2 +
 .../array-access-pushdown.012.plan                 |  24 ++
 .../field-access-pushdown.003.adm                  |   7 +
 .../field-access-pushdown.004.plan                 |  14 +
 .../field-access-pushdown.005.adm                  |   7 +
 .../field-access-pushdown.006.plan                 |  40 +++
 .../field-access-pushdown.007.adm                  |   1 +
 .../field-access-pushdown.008.plan                 |  50 ++++
 .../field-access-pushdown.009.adm                  |   2 +
 .../field-access-pushdown.010.plan                 |  22 ++
 .../field-access-pushdown.011.adm                  |   1 +
 .../field-access-pushdown.012.plan                 |  18 ++
 .../heterogeneous-access-pushdown.003.adm          |   6 +
 .../heterogeneous-access-pushdown.004.plan         |  22 ++
 .../other-pushdowns/other-pushdowns.003.adm        |   1 +
 .../other-pushdowns/other-pushdowns.004.plan       |  40 +++
 .../other-pushdowns/other-pushdowns.005.adm        |   2 +
 .../other-pushdowns/other-pushdowns.006.plan       |  30 +++
 .../other-pushdowns/other-pushdowns.007.adm        |   1 +
 .../other-pushdowns/other-pushdowns.008.plan       |  52 ++++
 .../other-pushdowns/other-pushdowns.009.adm        |   1 +
 .../other-pushdowns/other-pushdowns.010.plan       |  54 ++++
 .../other-pushdowns/other-pushdowns.011.adm        |   1 +
 .../other-pushdowns/other-pushdowns.012.plan       |  30 +++
 .../other-pushdowns/other-pushdowns.013.adm        |   1 +
 .../other-pushdowns/other-pushdowns.014.plan       | 111 ++++++++
 .../select-count-one-field.003.adm                 |   1 +
 .../select-count-one-field.004.adm                 |   1 +
 .../runtimets/results/column/upsert/upsert.003.adm |   3 +
 .../runtimets/results/column/upsert/upsert.004.adm |   1 +
 .../runtimets/results/column/upsert/upsert.005.adm |   3 +
 .../runtimets/results/column/upsert/upsert.007.adm |   3 +
 .../runtimets/results/column/upsert/upsert.008.adm |   1 +
 .../runtimets/results/column/upsert/upsert.009.adm |   3 +
 .../runtimets/results/column/upsert/upsert.011.adm |   4 +
 .../runtimets/results/column/upsert/upsert.012.adm |   1 +
 .../runtimets/results/column/upsert/upsert.013.adm |   4 +
 .../runtimets/results/column/upsert/upsert.015.adm |   1 +
 .../runtimets/results/column/upsert/upsert.016.adm |   4 +
 .../test/resources/runtimets/testsuite_sqlpp.xml   | 115 ++++++++
 .../column/assembler/value/DummyValueGetter.java   |  40 +++
 .../assembler/value/DummyValueGetterFactory.java   |  33 +++
 .../column/common/buffer/DummyBufferCache.java     |  79 ++++++
 .../common/buffer/DummyBytesInputStream.java       | 100 +++++++
 .../asterix/column/common/buffer/DummyPage.java    | 111 ++++++++
 .../column/common/buffer/NoOpWriteMultiPageOp.java |  51 ++++
 .../column/common/buffer/TestReadMultiPageOp.java  |  50 ++++
 .../column/common/buffer/TestWriteMultiPageOp.java |  53 ++++
 .../common/row/DummyLSMBTreeTupleReference.java    |  74 ++++++
 .../column/common/row/NoOpRowTupleWriter.java      |  63 +++++
 .../asterix/column/common/test/TestBase.java       | 131 ++++++++++
 .../asterix/column/common/test/TestCase.java       |  84 ++++++
 .../schema/visitor/SchemaStringBuilderVisitor.java | 154 +++++++++++
 .../column/test/bytes/AbstractBytesTest.java       | 291 +++++++++++++++++++++
 .../asterix/column/test/bytes/FlushLargeTest.java  |  74 ++++++
 .../asterix/column/test/bytes/FlushSmallTest.java  |  73 ++++++
 .../bytes/components/TestColumnBufferProvider.java | 118 +++++++++
 .../column/test/dummy/AbstractDummyTest.java       |  70 +++++
 .../asterix/column/test/dummy/AssemblerTest.java   | 139 ++++++++++
 .../asterix/column/test/dummy/TransformerTest.java |  84 ++++++
 .../column/test/filter/StringUUIDFilterTest.java   | 179 +++++++++++++
 .../asterix/column/util/ResultFormatter.java       | 106 ++++++++
 .../reader/AbstractDummyColumnValuesReader.java    | 157 +++++++++++
 .../reader/DummyColumnValuesReaderFactory.java     |  59 +++++
 .../reader/DummyPrimitiveColumnValueReader.java    |  61 +++++
 .../DummyRepeatedPrimitiveColumnValueReader.java   |  92 +++++++
 .../values/writer/DummyColumnValuesWriter.java     | 150 +++++++++++
 .../writer/DummyColumnValuesWriterFactory.java     |  31 +++
 .../values/writer/NoOpColumnBatchWriter.java       |  48 ++++
 .../src/test/resources/data/000-arrayOfInt.json    |  10 +
 .../src/test/resources/data/001-arrayObject.json   |   1 +
 .../src/test/resources/data/002-arrayObject2.json  |   4 +
 .../src/test/resources/data/100-addFields.json     |   4 +
 .../test/resources/data/101-nestedAddFields.json   |   4 +
 .../test/resources/data/200-unionPrimitive.json    |   4 +
 .../resources/data/201-unionPrimitiveObject.json   |   2 +
 .../resources/data/202-unionPrimitiveArray.json    |   4 +
 .../test/resources/data/203-unionNestedNested.json |   4 +
 .../data/204-unionArrayPrimitiveItems.json         |   5 +
 .../data/205-unionArrayPrimitiveObjectItems.json   |   5 +
 .../206-unionArrayPrimitiveObjectArrayItems.json   |   5 +
 .../resources/data/207-unionArrayNullItems0.json   |   3 +
 .../resources/data/208-unionArrayNullItems1.json   |   3 +
 .../resources/data/209-unionArrayNullItems2.json   |   3 +
 .../resources/data/210-unionArrayNullItems3.json   |   1 +
 .../test/resources/data/301-null-primitive.json    |   4 +
 .../src/test/resources/data/310-null-object0.json  |   4 +
 .../src/test/resources/data/311-null-object1.json  |   4 +
 .../src/test/resources/data/312-null-object2.json  |   4 +
 .../src/test/resources/data/313-null-object3.json  |   4 +
 .../src/test/resources/data/320-null-array0.json   |   4 +
 .../src/test/resources/data/321-null-array1.json   |   4 +
 .../src/test/resources/data/322-null-array2.json   |   4 +
 .../src/test/resources/data/323-null-array3.json   |   4 +
 .../src/test/resources/data/324-null-array4.json   |   4 +
 .../src/test/resources/data/325-null-array5.json   |   4 +
 .../src/test/resources/data/326-null-array6.json   |   4 +
 .../src/test/resources/data/327-null-array7.json   |   4 +
 .../src/test/resources/data/900-dummy-tweet.json   |   2 +
 .../asterix-column/src/test/resources/only.txt     |  48 ++++
 .../resources/result/assembler/000-arrayOfInt.json |  10 +
 .../result/assembler/001-arrayObject.json          |   1 +
 .../result/assembler/002-arrayObject2.json         |   4 +
 .../resources/result/assembler/100-addFields.json  |   4 +
 .../result/assembler/101-nestedAddFields.json      |   4 +
 .../result/assembler/200-unionPrimitive.json       |   4 +
 .../result/assembler/201-unionPrimitiveObject.json |   2 +
 .../result/assembler/202-unionPrimitiveArray.json  |   4 +
 .../result/assembler/203-unionNestedNested.json    |   4 +
 .../assembler/204-unionArrayPrimitiveItems.json    |   5 +
 .../205-unionArrayPrimitiveObjectItems.json        |   5 +
 .../206-unionArrayPrimitiveObjectArrayItems.json   |   5 +
 .../result/assembler/207-unionArrayNullItems0.json |   3 +
 .../result/assembler/208-unionArrayNullItems1.json |   3 +
 .../result/assembler/209-unionArrayNullItems2.json |   3 +
 .../result/assembler/210-unionArrayNullItems3.json |   1 +
 .../result/assembler/301-null-primitive.json       |   4 +
 .../result/assembler/310-null-object0.json         |   4 +
 .../result/assembler/311-null-object1.json         |   4 +
 .../result/assembler/312-null-object2.json         |   4 +
 .../result/assembler/313-null-object3.json         |   4 +
 .../result/assembler/320-null-array0.json          |   4 +
 .../result/assembler/321-null-array1.json          |   4 +
 .../result/assembler/322-null-array2.json          |   4 +
 .../result/assembler/323-null-array3.json          |   4 +
 .../result/assembler/324-null-array4.json          |   4 +
 .../result/assembler/325-null-array5.json          |   4 +
 .../result/assembler/326-null-array6.json          |   4 +
 .../result/assembler/327-null-array7.json          |   4 +
 .../result/assembler/900-dummy-tweet.json          |   2 +
 .../resources/result/small/000-arrayOfInt.json     |  10 +
 .../resources/result/small/001-arrayObject.json    |   1 +
 .../resources/result/small/002-arrayObject2.json   |   4 +
 .../test/resources/result/small/100-addFields.json |   4 +
 .../result/small/101-nestedAddFields.json          |   4 +
 .../resources/result/small/200-unionPrimitive.json |   4 +
 .../result/small/201-unionPrimitiveObject.json     |   2 +
 .../result/small/202-unionPrimitiveArray.json      |   4 +
 .../result/small/203-unionNestedNested.json        |   4 +
 .../result/small/204-unionArrayPrimitiveItems.json |   5 +
 .../small/205-unionArrayPrimitiveObjectItems.json  |   5 +
 .../206-unionArrayPrimitiveObjectArrayItems.json   |   5 +
 .../result/small/207-unionArrayNullItems0.json     |   3 +
 .../result/small/208-unionArrayNullItems1.json     |   3 +
 .../result/small/209-unionArrayNullItems2.json     |   3 +
 .../result/small/210-unionArrayNullItems3.json     |   1 +
 .../resources/result/small/301-null-primitive.json |   4 +
 .../resources/result/small/310-null-object0.json   |   4 +
 .../resources/result/small/311-null-object1.json   |   4 +
 .../resources/result/small/312-null-object2.json   |   4 +
 .../resources/result/small/313-null-object3.json   |   4 +
 .../resources/result/small/320-null-array0.json    |   4 +
 .../resources/result/small/321-null-array1.json    |   4 +
 .../resources/result/small/322-null-array2.json    |   4 +
 .../resources/result/small/323-null-array3.json    |   4 +
 .../resources/result/small/324-null-array4.json    |   4 +
 .../resources/result/small/325-null-array5.json    |   4 +
 .../resources/result/small/326-null-array6.json    |   4 +
 .../resources/result/small/327-null-array7.json    |   4 +
 .../resources/result/small/900-dummy-tweet.json    |   2 +
 .../result/transformer/000-arrayOfInt.schema       |   5 +
 .../result/transformer/001-arrayObject.schema      |   7 +
 .../result/transformer/002-arrayObject2.schema     |  29 ++
 .../result/transformer/100-addFields.schema        |   7 +
 .../result/transformer/101-nestedAddFields.schema  |  12 +
 .../result/transformer/200-unionPrimitive.schema   |   8 +
 .../transformer/201-unionPrimitiveObject.schema    |   7 +
 .../transformer/202-unionPrimitiveArray.schema     |  10 +
 .../transformer/203-unionNestedNested.schema       |  11 +
 .../204-unionArrayPrimitiveItems.schema            |  11 +
 .../205-unionArrayPrimitiveObjectItems.schema      |  14 +
 .../206-unionArrayPrimitiveObjectArrayItems.schema |  20 ++
 .../transformer/207-unionArrayNullItems0.schema    |   7 +
 .../transformer/208-unionArrayNullItems1.schema    |   7 +
 .../transformer/209-unionArrayNullItems2.schema    |   7 +
 .../transformer/210-unionArrayNullItems3.schema    |   7 +
 .../result/transformer/301-null-primitive.schema   |   3 +
 .../result/transformer/310-null-object0.schema     |   6 +
 .../result/transformer/311-null-object1.schema     |   6 +
 .../result/transformer/312-null-object2.schema     |   6 +
 .../result/transformer/313-null-object3.schema     |   6 +
 .../result/transformer/320-null-array0.schema      |   4 +
 .../result/transformer/321-null-array1.schema      |   4 +
 .../result/transformer/322-null-array2.schema      |   4 +
 .../result/transformer/323-null-array3.schema      |   4 +
 .../result/transformer/324-null-array4.schema      |   4 +
 .../result/transformer/325-null-array5.schema      |   7 +
 .../result/transformer/326-null-array6.schema      |   7 +
 .../result/transformer/327-null-array7.schema      |   7 +
 .../result/transformer/900-dummy-tweet.schema      | 290 ++++++++++++++++++++
 .../common/util/DatasetDeclParametersUtil.java     |   2 +-
 442 files changed, 9848 insertions(+), 2 deletions(-)

diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java
index e63b8650d1..68fb1464cf 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/base/RuleCollections.java
@@ -417,7 +417,6 @@ public final class RuleCollections {
         // We are going to apply a constant folding rule again for this case.
         physicalRewritesTopLevel.add(new ConstantFoldingRule(appCtx));
         physicalRewritesTopLevel.add(new PushLimitIntoOrderByRule());
-        //Must run before PushLimitIntoPrimarySearchRule to ensure the select condition is inspected
         physicalRewritesTopLevel.add(new PushLimitIntoPrimarySearchRule());
         // remove assigns that could become unused after PushLimitIntoPrimarySearchRule
         physicalRewritesTopLevel.add(new RemoveUnusedAssignAndAggregateRule());
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/assembly/assembly.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/assembly/assembly.001.ddl.sqlpp
new file mode 100644
index 0000000000..74cf4205d2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/assembly/assembly.001.ddl.sqlpp
@@ -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.
+ */
+
+DROP DATAVERSE test if exists;
+CREATE DATAVERSE test;
+USE test;
+
+CREATE TYPE ColumnType1 AS {
+    id: string
+};
+
+CREATE TYPE ColumnType2 AS {
+    id: int
+};
+
+CREATE DATASET DummyTweetDataset(ColumnType1)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
+
+CREATE DATASET HeterogeneousDataset1(ColumnType2)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
+
+CREATE DATASET HeterogeneousDataset2(ColumnType2)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
+
+CREATE DATASET UTF8Dataset(ColumnType2)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/assembly/assembly.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/assembly/assembly.002.update.sqlpp
new file mode 100644
index 0000000000..0c341bf4bf
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/assembly/assembly.002.update.sqlpp
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+LOAD DATASET DummyTweetDataset USING localfs
+(
+    ("path" = "asterix_nc1://data/hdfs/parquet/dummy_tweet.json"),
+    ("format" = "json")
+);
+
+LOAD DATASET HeterogeneousDataset1 USING localfs
+(
+    ("path" = "asterix_nc1://data/hdfs/parquet/heterogeneous_1.json, asterix_nc1://data/hdfs/parquet/heterogeneous_2.json"),
+    ("format" = "json")
+);
+
+LOAD DATASET HeterogeneousDataset2 USING localfs
+(
+    ("path" = "asterix_nc1://data/hdfs/parquet/id_age.json, asterix_nc1://data/hdfs/parquet/id_age-string.json, asterix_nc1://data/hdfs/parquet/id_name.json"),
+    ("format" = "json")
+);
+
+LOAD DATASET UTF8Dataset USING localfs
+(
+    ("path" = "asterix_nc1://data/hdfs/parquet/id_name_comment.json"),
+    ("format" = "json")
+);
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/assembly/assembly.003.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/assembly/assembly.003.query.sqlpp
new file mode 100644
index 0000000000..7f6faed8d3
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/assembly/assembly.003.query.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+SELECT VALUE d
+FROM DummyTweetDataset d
+ORDER BY d.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/assembly/assembly.004.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/assembly/assembly.004.query.sqlpp
new file mode 100644
index 0000000000..e172de95d1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/assembly/assembly.004.query.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+SELECT VALUE d
+FROM HeterogeneousDataset1 d
+ORDER BY d.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/assembly/assembly.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/assembly/assembly.005.query.sqlpp
new file mode 100644
index 0000000000..a9889b323e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/assembly/assembly.005.query.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+SELECT VALUE d
+FROM HeterogeneousDataset2 d
+ORDER BY d.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/assembly/assembly.006.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/assembly/assembly.006.query.sqlpp
new file mode 100644
index 0000000000..2e4025668d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/assembly/assembly.006.query.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+SELECT VALUE d
+FROM UTF8Dataset d
+ORDER BY d.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/big-object/big-object.1.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/big-object/big-object.1.ddl.sqlpp
new file mode 100644
index 0000000000..a61e5e0f65
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/big-object/big-object.1.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+USE test;
+
+CREATE TYPE ColumnType AS {
+  id: int64,
+  name: string
+};
+
+CREATE DATASET ColumnDataset(ColumnType)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+}
+
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/big-object/big-object.2.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/big-object/big-object.2.update.sqlpp
new file mode 100644
index 0000000000..936fd5500b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/big-object/big-object.2.update.sqlpp
@@ -0,0 +1,119 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+USE test;
+INSERT INTO ColumnDataset { "id": 1, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed e [...]
+insert into ColumnDataset { "id": 2, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed e [...]
+insert into ColumnDataset { "id": 3, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed e [...]
+insert into ColumnDataset { "id": 4, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed e [...]
+insert into ColumnDataset { "id": 5, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed e [...]
+insert into ColumnDataset { "id": 6, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed e [...]
+insert into ColumnDataset { "id": 7, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed e [...]
+insert into ColumnDataset { "id": 8, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed e [...]
+insert into ColumnDataset { "id": 9, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed e [...]
+insert into ColumnDataset { "id": 10, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 11, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 12, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 13, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 14, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 15, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 16, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 17, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 18, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 19, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 20, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 21, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 22, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 23, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 24, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 25, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 26, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 27, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 28, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 29, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 30, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 31, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 32, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 33, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 34, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 35, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 36, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 37, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 38, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 39, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 40, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 41, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 42, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 43, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 44, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 45, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 46, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 47, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 48, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 49, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 50, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 51, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 52, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 53, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 54, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 55, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 56, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 57, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 58, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 59, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 60, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 61, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 62, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 63, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 64, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 65, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 66, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 67, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 68, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 69, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 70, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 71, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 72, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 73, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 74, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 75, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 76, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 77, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 78, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 79, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 80, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 81, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 82, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 83, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 84, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 85, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 86, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 87, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 88, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 89, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 90, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 91, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 92, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 93, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 94, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 95, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 96, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 97, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 98, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 99, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed  [...]
+insert into ColumnDataset { "id": 100, "name": "Person Four", "hobbies": {{"Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed [...]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/big-object/big-object.3.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/big-object/big-object.3.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/big-object/big-object.3.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/big-object/big-object.4.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/big-object/big-object.4.query.sqlpp
new file mode 100644
index 0000000000..0133425e40
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/big-object/big-object.4.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+use test;
+
+SET `compiler.sortmemory` "32MB";
+
+SELECT VALUE d
+FROM ColumnDataset d
+ORDER BY d.name desc, d.id;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.001.ddl.sqlpp
new file mode 100644
index 0000000000..006d75cd27
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.001.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+
+USE test;
+
+
+CREATE TYPE OpenType AS {
+    id: int
+};
+
+CREATE DATASET ColumnDataset(OpenType)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.002.update.sqlpp
new file mode 100644
index 0000000000..ee770a7488
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.002.update.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+UPSERT INTO ColumnDataset (
+    {"id":0, "a": 0},
+    {"id":1, "a": 1},
+    {"id":2, "a": 2}
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.003.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.003.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.003.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.004.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.004.query.sqlpp
new file mode 100644
index 0000000000..8b4690e5df
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.004.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+SELECT VALUE p
+FROM ColumnDataset p
+ORDER BY p.id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.005.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.005.update.sqlpp
new file mode 100644
index 0000000000..69b5bcf81a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.005.update.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+DELETE FROM ColumnDataset p
+WHERE p.id = 1
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.006.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.006.query.sqlpp
new file mode 100644
index 0000000000..aa672893a0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.006.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+-- Record with id = 1 should be deleted. The anti-matter is in-memory
+SELECT VALUE p
+FROM ColumnDataset p
+ORDER BY p.id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.007.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.007.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.007.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.008.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.008.query.sqlpp
new file mode 100644
index 0000000000..d49997b73c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/001/001.008.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+-- Record with id = 1 should be deleted. The anti-matter tuple is on-disk
+SELECT VALUE p
+FROM ColumnDataset p
+ORDER BY p.id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.001.ddl.sqlpp
new file mode 100644
index 0000000000..006d75cd27
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.001.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+
+USE test;
+
+
+CREATE TYPE OpenType AS {
+    id: int
+};
+
+CREATE DATASET ColumnDataset(OpenType)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.002.update.sqlpp
new file mode 100644
index 0000000000..ee770a7488
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.002.update.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+UPSERT INTO ColumnDataset (
+    {"id":0, "a": 0},
+    {"id":1, "a": 1},
+    {"id":2, "a": 2}
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.003.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.003.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.003.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.004.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.004.query.sqlpp
new file mode 100644
index 0000000000..8b4690e5df
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.004.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+SELECT VALUE p
+FROM ColumnDataset p
+ORDER BY p.id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.005.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.005.update.sqlpp
new file mode 100644
index 0000000000..eeb3ae27ec
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.005.update.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+DELETE FROM ColumnDataset p
+WHERE p.a = 1
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.006.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.006.query.sqlpp
new file mode 100644
index 0000000000..1924a19af0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.006.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+-- Record with a = 1 should be deleted. The anti-matter is in-memory
+SELECT VALUE p
+FROM ColumnDataset p
+ORDER BY p.id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.007.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.007.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.007.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.008.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.008.query.sqlpp
new file mode 100644
index 0000000000..56a99e80ed
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/delete/002/002.008.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+-- Record with a = 1 should be deleted. The anti-matter tuple is on-disk
+SELECT VALUE p
+FROM ColumnDataset p
+ORDER BY p.id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.001.ddl.sqlpp
new file mode 100644
index 0000000000..a271778586
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.001.ddl.sqlpp
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+DROP DATAVERSE test if exists;
+CREATE DATAVERSE test;
+USE test;
+
+CREATE TYPE ColumnType AS {
+    id: int
+};
+
+CREATE DATASET ColumnDataset(ColumnType)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.002.update.sqlpp
new file mode 100644
index 0000000000..169c767eb4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.002.update.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+INSERT INTO ColumnDataset (
+    {"id": 1, "a": "1", "array": [10, 20, 30]},
+    {"id": 2, "a": "2", "array": [40, 50, 60]},
+    {"id": 3, "a": "3", "array": [70, 80, 90]}
+);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.003.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.003.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.003.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.004.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.004.update.sqlpp
new file mode 100644
index 0000000000..1a6b83d50b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.004.update.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+INSERT INTO ColumnDataset (
+    {"id": 4, "a": "4", "array": [100, 200, 300]},
+    {"id": 5, "a": "5", "array": [400, 500, 600]},
+    {"id": 6, "a": "6", "array": [700, 800, 900]}
+);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.005.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.005.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.005.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.006.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.006.query.sqlpp
new file mode 100644
index 0000000000..fb64102294
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.006.query.sqlpp
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.column.filter` "true";
+
+
+
+SELECT VALUE d
+FROM ColumnDataset d
+-- This filter should be pushed down,
+-- and only a single page of the first
+-- disk component should answer this query
+WHERE d.a > "1" AND d.a < "3"
+ORDER BY d.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.007.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.007.query.sqlpp
new file mode 100644
index 0000000000..3550173a90
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.007.query.sqlpp
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.column.filter` "true";
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT VALUE d
+FROM ColumnDataset d
+-- This filter should be pushed down,
+-- and only a single page of the first
+-- disk component should answer this query
+WHERE d.a > "1" AND d.a < "3"
+ORDER BY d.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.008.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.008.query.sqlpp
new file mode 100644
index 0000000000..315bdbb4d1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.008.query.sqlpp
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+-- param max-warnings:json=1000
+USE test;
+SET `compiler.column.filter` "true";
+
+
+
+SELECT VALUE d
+FROM ColumnDataset d
+-- Here we are comparing string and int.
+-- A warning should be thrown and none of
+-- none of the columns should be accessed
+WHERE d.a > 1 AND d.a < 3
+ORDER BY d.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.009.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.009.query.sqlpp
new file mode 100644
index 0000000000..7df49592e4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.009.query.sqlpp
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.column.filter` "true";
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT VALUE d
+FROM ColumnDataset d
+-- Here we are comparing string and int.
+-- A warning should be thrown and none of
+-- none of the columns should be accessed
+WHERE d.a > 1 AND d.a < 3
+ORDER BY d.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.010.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.010.query.sqlpp
new file mode 100644
index 0000000000..46c27c3336
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.010.query.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+-- param max-warnings:json=1000
+USE test;
+SET `compiler.column.filter` "true";
+
+
+
+SELECT VALUE d
+FROM ColumnDataset d
+-- None of the columns should be read
+-- as a result of comparing string with an integer
+WHERE (SOME a in d.array SATISFIES a < "100")
+ORDER BY d.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.011.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.011.query.sqlpp
new file mode 100644
index 0000000000..5825fa13e1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.011.query.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.column.filter` "true";
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT VALUE d
+FROM ColumnDataset d
+-- None of the columns should be read
+-- as a result of comparing string with an integer
+WHERE (SOME a in d.array SATISFIES a < "100")
+ORDER BY d.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.012.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.012.query.sqlpp
new file mode 100644
index 0000000000..5d33d87f2c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.012.query.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.column.filter` "true";
+
+
+
+SELECT VALUE d
+FROM ColumnDataset d
+-- Only the first page of the first component
+-- should answer this query
+WHERE (SOME a in d.array SATISFIES a < 100)
+ORDER BY d.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.013.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.013.query.sqlpp
new file mode 100644
index 0000000000..d896b6eeba
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.013.query.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.column.filter` "true";
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT VALUE d
+FROM ColumnDataset d
+-- Only the first page of the first component
+-- should answer this query
+WHERE (SOME a in d.array SATISFIES a < 100)
+ORDER BY d.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.014.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.014.query.sqlpp
new file mode 100644
index 0000000000..25c8c7524d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.014.query.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.column.filter` "true";
+
+
+
+SELECT VALUE d
+FROM ColumnDataset d
+-- Only the first page of the second component
+-- should answer this query
+WHERE (SOME a in d.array SATISFIES a = 100)
+ORDER BY d.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.015.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.015.query.sqlpp
new file mode 100644
index 0000000000..5f70210895
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.015.query.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.column.filter` "true";
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT VALUE d
+FROM ColumnDataset d
+-- Only the first page of the second component
+-- should answer this query
+WHERE (SOME a in d.array SATISFIES a = 100)
+ORDER BY d.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.016.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.016.query.sqlpp
new file mode 100644
index 0000000000..586ec6d59d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.016.query.sqlpp
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.column.filter` "true";
+
+
+
+SELECT VALUE d
+FROM ColumnDataset d
+-- The filter should bailout as we
+-- don't support type promotion/demotion
+-- for filters
+WHERE (SOME a in d.array SATISFIES a < 100.1)
+ORDER BY d.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.017.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.017.query.sqlpp
new file mode 100644
index 0000000000..f6d115587b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.017.query.sqlpp
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.column.filter` "true";
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT VALUE d
+FROM ColumnDataset d
+-- The filter should bailout as we
+-- don't support type promotion/demotion
+-- for filters
+WHERE (SOME a in d.array SATISFIES a < 100.1)
+ORDER BY d.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.018.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.018.query.sqlpp
new file mode 100644
index 0000000000..69d1fb41e0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.018.query.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.column.filter` "false";
+
+
+
+SELECT VALUE item
+FROM ColumnDataset d, d.array item
+-- only the first component
+WHERE item > 60 AND item < 100
+ORDER BY d.id, item;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.019.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.019.query.sqlpp
new file mode 100644
index 0000000000..fb08329382
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.019.query.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.column.filter` "true";
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT VALUE item
+FROM ColumnDataset d, d.array item
+-- only the first component
+WHERE item > 60 AND item < 100
+ORDER BY d.id, item;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.020.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.020.query.sqlpp
new file mode 100644
index 0000000000..573d80ded3
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.020.query.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.column.filter` "true";
+
+
+
+SELECT VALUE item
+FROM ColumnDataset d, d.array item
+-- only the second component
+WHERE item = 100
+ORDER BY d.id, item;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.021.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.021.query.sqlpp
new file mode 100644
index 0000000000..e45d83d7d2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.021.query.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.column.filter` "true";
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT VALUE item
+FROM ColumnDataset d, d.array item
+-- only the second component
+WHERE item = 100
+ORDER BY d.id, item;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.022.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.022.query.sqlpp
new file mode 100644
index 0000000000..3faaafc0fb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.022.query.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.column.filter` "true";
+
+
+
+SELECT VALUE item
+FROM ColumnDataset d, d.array item
+-- none of the components should be read
+WHERE item > 10000
+ORDER BY d.id, item;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.023.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.023.query.sqlpp
new file mode 100644
index 0000000000..7be6a1315d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/001/001.023.query.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.column.filter` "true";
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT VALUE item
+FROM ColumnDataset d, d.array item
+-- none of the components should be read
+WHERE item > 10000
+ORDER BY d.id, item;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.001.ddl.sqlpp
new file mode 100644
index 0000000000..a271778586
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.001.ddl.sqlpp
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+DROP DATAVERSE test if exists;
+CREATE DATAVERSE test;
+USE test;
+
+CREATE TYPE ColumnType AS {
+    id: int
+};
+
+CREATE DATASET ColumnDataset(ColumnType)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.002.update.sqlpp
new file mode 100644
index 0000000000..54bf49b2d8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.002.update.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+INSERT INTO ColumnDataset (
+    {"id": 1, "a": 1, "array": [10, 20, 30]},
+    {"id": 2, "a": 2, "array": [40, 50, 60]},
+    {"id": 3, "a": 3, "array": [70, 80, 90]}
+);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.003.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.003.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.003.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.004.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.004.update.sqlpp
new file mode 100644
index 0000000000..a82b7a1c37
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.004.update.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+INSERT INTO ColumnDataset (
+    {"id": 4, "a": 4.1, "array": [100, 200, 300]},
+    {"id": 5, "a": 5.1, "array": [400, 500, 600]},
+    {"id": 6, "a": 6.1, "array": [700, 800, 900]}
+);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.005.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.005.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.005.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.006.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.006.update.sqlpp
new file mode 100644
index 0000000000..167b84b9c9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.006.update.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+INSERT INTO ColumnDataset (
+    {"id": 7, "a": "7", "array": [100, 200, 300]},
+    {"id": 8, "a": "8", "array": [400, 500, 600]},
+    {"id": 9, "a": "9", "array": [700, 800, 900]}
+);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.007.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.007.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.007.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.008.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.008.query.sqlpp
new file mode 100644
index 0000000000..805371027b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/002/002.008.query.sqlpp
@@ -0,0 +1,30 @@
+/*
+ * 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.
+ */
+-- param max-warnings:json=1000
+USE test;
+SET `compiler.column.filter` "true";
+
+SELECT VALUE d
+FROM ColumnDataset d
+-- We should read the 1st and the 2nd components
+-- For 1st, the predicate satisfies the filter
+-- For 2nd, we ignore demoting a to BIGINT and bailout (read)
+-- For 3rd, we should throw a warning (string vs bigint) and ignore reading it
+WHERE d.a > 1 AND d.a < 3
+ORDER BY d.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/003/003.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/003/003.001.ddl.sqlpp
new file mode 100644
index 0000000000..a271778586
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/003/003.001.ddl.sqlpp
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+DROP DATAVERSE test if exists;
+CREATE DATAVERSE test;
+USE test;
+
+CREATE TYPE ColumnType AS {
+    id: int
+};
+
+CREATE DATASET ColumnDataset(ColumnType)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/003/003.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/003/003.002.update.sqlpp
new file mode 100644
index 0000000000..54bf49b2d8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/003/003.002.update.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+INSERT INTO ColumnDataset (
+    {"id": 1, "a": 1, "array": [10, 20, 30]},
+    {"id": 2, "a": 2, "array": [40, 50, 60]},
+    {"id": 3, "a": 3, "array": [70, 80, 90]}
+);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/003/003.003.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/003/003.003.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/003/003.003.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/003/003.004.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/003/003.004.query.sqlpp
new file mode 100644
index 0000000000..f76edc7efc
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/filter/003/003.004.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.column.filter` "true";
+
+SELECT VALUE d
+FROM ColumnDataset d
+-- Should skip reading columns, as the predicate would yield missing
+WHERE d.notAField > 4
+ORDER BY d.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_after_gby/meta_after_gby.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_after_gby/meta_after_gby.001.ddl.sqlpp
new file mode 100644
index 0000000000..da5b7ed2af
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_after_gby/meta_after_gby.001.ddl.sqlpp
@@ -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.
+ */
+
+DROP DATAVERSE test if exists;
+CREATE DATAVERSE test;
+USE test;
+
+CREATE TYPE DataType AS {
+    id:int,
+    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"
+};
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_after_gby/meta_after_gby.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_after_gby/meta_after_gby.002.update.sqlpp
new file mode 100644
index 0000000000..55e842cf7f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_after_gby/meta_after_gby.002.update.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+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/meta/meta_after_gby/meta_after_gby.003.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_after_gby/meta_after_gby.003.get.http
new file mode 100644
index 0000000000..e6efaa03d7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_after_gby/meta_after_gby.003.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=DS
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_after_gby/meta_after_gby.004.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_after_gby/meta_after_gby.004.query.sqlpp
new file mode 100644
index 0000000000..b317302756
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_after_gby/meta_after_gby.004.query.sqlpp
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/*
+ * Description: use of meta() after group by requires meta() be assigned to a variable in a LET clause
+ * Result     : success
+ */
+
+USE test;
+
+FROM DS AS d
+LET meta_id = meta().id
+GROUP BY d.hobby AS hobby
+SELECT hobby, COUNT(meta_id) AS count
+ORDER BY hobby;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.001.ddl.sqlpp
new file mode 100644
index 0000000000..92e7fae6cd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.001.ddl.sqlpp
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ /*
+  * Description: tests that meta() used in WITH clause is resolved correctly and produces a correct result
+  */
+
+DROP DATAVERSE test if exists;
+CREATE DATAVERSE test;
+USE test;
+
+CREATE TYPE DataType AS {
+    id:int,
+    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 DATASET DS2(DataType) WITH META(MetaType)
+PRIMARY KEY 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/people.csv",
+ "format" : "csv",
+ "delimiter" : ",",
+ "record-format" : "adm",
+ "record-index" : "1",
+ "key-indexes" : "0",
+ "key-indicators" : "0",
+ "header" : "false"
+};
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.002.update.sqlpp
new file mode 100644
index 0000000000..c675bd45ba
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.002.update.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+SET `wait-for-completion-feed` "true";
+CONNECT FEED DsStream TO DATASET DS;
+START FEED DsStream;
+
+CONNECT FEED DsStream2 TO DATASET DS2;
+START FEED DsStream2;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.003.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.003.get.http
new file mode 100644
index 0000000000..e6efaa03d7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.003.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=DS
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.004.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.004.get.http
new file mode 100644
index 0000000000..4108381b04
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.004.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=DS2
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.005.query.sqlpp
new file mode 100644
index 0000000000..072a377efd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.005.query.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+WITH raw_data AS (
+  SELECT META(a).id AS aid, age AS age, hobby AS hobby
+  FROM DS a
+  WHERE hobby IN ["tennis", "reading","swimming", "hiking", "basketball", "soccer"] )
+
+SELECT t2.raw_data.age, t2.raw_data.aid, array_count(t1) total, t2.raw_data.hobby
+FROM (SELECT VALUE g FROM raw_data GROUP BY SERIES GROUP AS g) AS t1 UNNEST t1 AS t2
+ORDER BY aid;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.006.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.006.query.sqlpp
new file mode 100644
index 0000000000..4ecfe91238
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.006.query.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+WITH raw_data AS (
+  SELECT id AS aid, age AS age, hobby AS hobby
+  FROM DS a
+  WHERE hobby IN ["tennis", "reading","swimming", "hiking", "basketball", "soccer"] )
+
+SELECT t2.raw_data.age, t2.raw_data.aid, array_count(t1) total, t2.raw_data.hobby
+FROM (SELECT VALUE g FROM raw_data GROUP BY SERIES GROUP AS g) AS t1 UNNEST t1 AS t2
+ORDER BY aid;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.007.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.007.query.sqlpp
new file mode 100644
index 0000000000..01fa4ab8b1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.007.query.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+use test;
+
+WITH raw_data AS (
+  SELECT META(a).id AS aid, age AS age, hobby AS hobby
+  FROM DS2 a
+  WHERE hobby IN ["tennis", "reading","swimming", "hiking", "basketball", "soccer"] )
+
+SELECT t2.raw_data.age, t2.raw_data.aid, array_count(t1) total, t2.raw_data.hobby
+FROM (SELECT VALUE g FROM raw_data GROUP BY SERIES GROUP AS g) AS t1 UNNEST t1 AS t2
+ORDER BY aid;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.008.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.008.query.sqlpp
new file mode 100644
index 0000000000..bdf69c2071
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/meta_in_with_clause/meta_in_with_clause.008.query.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+use test;
+
+WITH raw_data AS (
+  SELECT id AS aid, age AS age, hobby AS hobby
+  FROM DS2 a
+  WHERE hobby IN ["tennis", "reading","swimming", "hiking", "basketball", "soccer"] )
+
+SELECT t2.raw_data.age, t2.raw_data.aid, array_count(t1) total, t2.raw_data.hobby
+FROM (SELECT VALUE g FROM raw_data GROUP BY SERIES GROUP AS g) AS t1 UNNEST t1 AS t2
+ORDER BY aid;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.001.ddl.sqlpp
new file mode 100644
index 0000000000..e40bdc2a3d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.001.ddl.sqlpp
@@ -0,0 +1,75 @@
+/*
+ * 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 {
+    id:int,
+    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 DATASET DS2(DataType) WITH META(MetaType)
+PRIMARY KEY 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/people.csv",
+ "format" : "csv",
+ "delimiter" : ",",
+ "record-format" : "adm",
+ "record-index" : "1",
+ "key-indexes" : "0",
+ "key-indicators" : "0",
+ "header" : "false"
+};
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.002.update.sqlpp
new file mode 100644
index 0000000000..c675bd45ba
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.002.update.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+SET `wait-for-completion-feed` "true";
+CONNECT FEED DsStream TO DATASET DS;
+START FEED DsStream;
+
+CONNECT FEED DsStream2 TO DATASET DS2;
+START FEED DsStream2;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.003.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.003.get.http
new file mode 100644
index 0000000000..e6efaa03d7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.003.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=DS
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.004.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.004.get.http
new file mode 100644
index 0000000000..4108381b04
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.004.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=DS2
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.005.query.sqlpp
new file mode 100644
index 0000000000..1d72bab6d1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.005.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description: tests resolving primary key correctly
+ */
+
+USE test;
+
+FROM DS
+SELECT meta().id AS i
+ORDER BY i;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.006.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.006.query.sqlpp
new file mode 100644
index 0000000000..37d905f830
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.006.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description: tests that id isn't confused for primary key
+ */
+
+USE test;
+
+FROM DS
+SELECT id AS i
+ORDER BY i;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.007.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.007.query.sqlpp
new file mode 100644
index 0000000000..c9b01bd8a0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.007.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description: tests that meta().id isn't confused for primary key
+ */
+
+USE test;
+
+FROM DS2
+SELECT meta().id AS i
+ORDER BY i;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.008.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.008.query.sqlpp
new file mode 100644
index 0000000000..c4c01c1547
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.008.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+ * Description: tests resolving primary key correctly
+ */
+
+USE test;
+
+FROM DS2
+SELECT id AS i
+ORDER BY i;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/001/001.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/001/001.001.ddl.sqlpp
new file mode 100644
index 0000000000..a94865071d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/001/001.001.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+
+USE test;
+
+
+CREATE TYPE ColumnType AS {
+    id: string
+};
+
+CREATE DATASET ColumnDataset(ColumnType)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/001/001.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/001/001.002.update.sqlpp
new file mode 100644
index 0000000000..ea18ba31c2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/001/001.002.update.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+LOAD DATASET ColumnDataset USING localfs
+(
+    ("path" = "asterix_nc1://data/hdfs/parquet/dummy_tweet.json"),
+    ("format" = "json")
+);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/001/001.003.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/001/001.003.query.sqlpp
new file mode 100644
index 0000000000..6c47c93826
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/001/001.003.query.sqlpp
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+SELECT p.not_a_field1 IS MISSING as f1, p.user.not_a_field2 IS MISSING as f2
+FROM ColumnDataset p
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/002/002.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/002/002.001.ddl.sqlpp
new file mode 100644
index 0000000000..006d75cd27
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/002/002.001.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+
+USE test;
+
+
+CREATE TYPE OpenType AS {
+    id: int
+};
+
+CREATE DATASET ColumnDataset(OpenType)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/002/002.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/002/002.002.update.sqlpp
new file mode 100644
index 0000000000..d49605e314
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/002/002.002.update.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+UPSERT INTO ColumnDataset (
+    {"id":0, "a": [0, 1, missing]},
+    {"id":1, "a": [0, missing, 1]},
+    {"id":2, "a": [missing, 0, 1]}
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/002/002.003.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/002/002.003.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/002/002.003.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/002/002.004.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/002/002.004.query.sqlpp
new file mode 100644
index 0000000000..285ca9d162
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/002/002.004.query.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+SELECT VALUE p
+FROM ColumnDataset p
+ORDER BY p.id
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/003/003.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/003/003.001.ddl.sqlpp
new file mode 100644
index 0000000000..006d75cd27
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/003/003.001.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+
+USE test;
+
+
+CREATE TYPE OpenType AS {
+    id: int
+};
+
+CREATE DATASET ColumnDataset(OpenType)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/003/003.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/003/003.002.update.sqlpp
new file mode 100644
index 0000000000..f1edd25149
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/003/003.002.update.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+-- Missing value is seen first. Thus, the schema inference would not know the actual value type at first
+UPSERT INTO ColumnDataset (
+    {"id":2, "a": [missing, 0, 1]},
+    {"id":0, "a": [0, 1, missing]},
+    {"id":1, "a": [0, missing, 1]}
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/003/003.003.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/003/003.003.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/003/003.003.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/003/003.004.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/003/003.004.query.sqlpp
new file mode 100644
index 0000000000..5650e5f483
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/003/003.004.query.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+SELECT VALUE p
+FROM ColumnDataset p
+ORDER BY p.id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.001.ddl.sqlpp
new file mode 100644
index 0000000000..006d75cd27
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.001.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+
+USE test;
+
+
+CREATE TYPE OpenType AS {
+    id: int
+};
+
+CREATE DATASET ColumnDataset(OpenType)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.002.update.sqlpp
new file mode 100644
index 0000000000..7642339bd7
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.002.update.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+-- "a" type is still unknown
+UPSERT INTO ColumnDataset (
+    {"id":0, "a": null},
+    {"id":1, "a": null},
+    {"id":2, "a": null}
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.003.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.003.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.003.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.004.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.004.query.sqlpp
new file mode 100644
index 0000000000..5650e5f483
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.004.query.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+SELECT VALUE p
+FROM ColumnDataset p
+ORDER BY p.id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.005.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.005.update.sqlpp
new file mode 100644
index 0000000000..59d049d051
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.005.update.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+-- "a" is now inferred as BIGINT
+UPSERT INTO ColumnDataset (
+    {"id":3, "a": 0},
+    {"id":4, "a": 1},
+    {"id":5, "a": 2}
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.006.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.006.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.006.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.007.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.007.query.sqlpp
new file mode 100644
index 0000000000..60eee3696c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/004/004.007.query.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+/*
+ * We have two on-disk components. The first component, the type of the field "a" is not known. In the second component,
+ * we inferred the type of the field "a" as BIGINT. When reading both components, we should be able to determine the
+ * null values in the first component.
+ */
+SELECT VALUE p
+FROM ColumnDataset p
+ORDER BY p.id
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/005/005.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/005/005.001.ddl.sqlpp
new file mode 100644
index 0000000000..006d75cd27
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/005/005.001.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+
+USE test;
+
+
+CREATE TYPE OpenType AS {
+    id: int
+};
+
+CREATE DATASET ColumnDataset(OpenType)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/005/005.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/005/005.002.update.sqlpp
new file mode 100644
index 0000000000..3ea44c0c45
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/005/005.002.update.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+UPSERT INTO ColumnDataset (
+    {"id":0, "a": [0, "1", null]},
+    {"id":1, "a": [0, null, "1"]},
+    {"id":2, "a": [null, 0, "1"]},
+    {"id":3, "a": [null, null, null]}
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/005/005.003.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/005/005.003.query.sqlpp
new file mode 100644
index 0000000000..285ca9d162
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/005/005.003.query.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+SELECT VALUE p
+FROM ColumnDataset p
+ORDER BY p.id
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/005/005.004.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/005/005.004.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/005/005.004.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/005/005.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/005/005.005.query.sqlpp
new file mode 100644
index 0000000000..285ca9d162
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/005/005.005.query.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+SELECT VALUE p
+FROM ColumnDataset p
+ORDER BY p.id
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/006/006.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/006/006.001.ddl.sqlpp
new file mode 100644
index 0000000000..006d75cd27
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/006/006.001.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+
+USE test;
+
+
+CREATE TYPE OpenType AS {
+    id: int
+};
+
+CREATE DATASET ColumnDataset(OpenType)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/006/006.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/006/006.002.update.sqlpp
new file mode 100644
index 0000000000..e24d9f3ddf
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/006/006.002.update.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+UPSERT INTO ColumnDataset (
+    {"id":0, "a": [0, "1", missing]},
+    {"id":1, "a": [0, missing, "1"]},
+    {"id":2, "a": [missing, 0, "1"]},
+    {"id":3, "a": [missing, missing, missing]}
+);
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/006/006.003.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/006/006.003.query.sqlpp
new file mode 100644
index 0000000000..285ca9d162
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/006/006.003.query.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+SELECT VALUE p
+FROM ColumnDataset p
+ORDER BY p.id
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/006/006.004.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/006/006.004.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/006/006.004.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/006/006.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/006/006.005.query.sqlpp
new file mode 100644
index 0000000000..285ca9d162
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/missing-null-values/006/006.005.query.sqlpp
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+SELECT VALUE p
+FROM ColumnDataset p
+ORDER BY p.id
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.001.ddl.sqlpp
new file mode 100644
index 0000000000..a94865071d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.001.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+
+USE test;
+
+
+CREATE TYPE ColumnType AS {
+    id: string
+};
+
+CREATE DATASET ColumnDataset(ColumnType)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.002.update.sqlpp
new file mode 100644
index 0000000000..ea18ba31c2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.002.update.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+LOAD DATASET ColumnDataset USING localfs
+(
+    ("path" = "asterix_nc1://data/hdfs/parquet/dummy_tweet.json"),
+    ("format" = "json")
+);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.003.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.003.query.sqlpp
new file mode 100644
index 0000000000..b87852836f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.003.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+
+SELECT p.entities.urls[0].display_url
+FROM ColumnDataset p
+ORDER BY p.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.004.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.004.query.sqlpp
new file mode 100644
index 0000000000..ac15ac8ff3
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.004.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT p.entities.urls[0].display_url
+FROM ColumnDataset p
+ORDER BY p.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.005.query.sqlpp
new file mode 100644
index 0000000000..b95020c5b9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.005.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+
+SELECT p.entities.urls[*].display_url
+FROM ColumnDataset p
+WHERE p.entities.urls IS NOT MISSING
+ORDER BY p.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.006.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.006.query.sqlpp
new file mode 100644
index 0000000000..03b70a4ddc
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.006.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT p.entities.urls[*].display_url
+FROM ColumnDataset p
+WHERE p.entities.urls IS NOT MISSING
+ORDER BY p.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.007.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.007.query.sqlpp
new file mode 100644
index 0000000000..5db4c12c31
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.007.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+
+SELECT urls.display_url
+FROM ColumnDataset p, p.entities.urls urls
+ORDER BY p.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.008.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.008.query.sqlpp
new file mode 100644
index 0000000000..ac6d631995
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.008.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT urls.display_url
+FROM ColumnDataset p, p.entities.urls urls
+ORDER BY p.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.009.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.009.query.sqlpp
new file mode 100644
index 0000000000..061815116e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.009.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+
+SELECT VALUE COUNT(*)
+FROM ColumnDataset p
+WHERE (EVERY ht in p.entities.urls SATISFIES ht.display_url = "string");
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.010.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.010.query.sqlpp
new file mode 100644
index 0000000000..dce4595975
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.010.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT VALUE COUNT(*)
+FROM ColumnDataset p
+WHERE (EVERY ht in p.entities.urls SATISFIES ht.display_url = "string");
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.011.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.011.query.sqlpp
new file mode 100644
index 0000000000..5f311de152
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.011.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+
+SELECT VALUE p.place.bounding_box.coordinates[0][0][0]
+FROM ColumnDataset p
+ORDER BY p.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.012.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.012.query.sqlpp
new file mode 100644
index 0000000000..7a6cd414c0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/array-access-pushdown/array-access-pushdown.012.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT VALUE p.place.bounding_box.coordinates[0][0][0]
+FROM ColumnDataset p
+ORDER BY p.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.001.ddl.sqlpp
new file mode 100644
index 0000000000..0d7a09e73a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.001.ddl.sqlpp
@@ -0,0 +1,53 @@
+/*
+ * 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 ColumnType1 AS {
+    id: string
+};
+
+CREATE TYPE ColumnType2 AS {
+    id: int
+};
+
+
+CREATE DATASET ColumnDataset1(ColumnType2)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
+
+CREATE DATASET ColumnDataset2(ColumnType2)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
+
+CREATE DATASET ColumnDataset3(ColumnType2)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
+
+CREATE DATASET ColumnDataset4(ColumnType1)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.002.update.sqlpp
new file mode 100644
index 0000000000..560ad0bab2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.002.update.sqlpp
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+LOAD DATASET ColumnDataset1 USING localfs
+(
+    ("path" = "asterix_nc1://data/hdfs/parquet/id_age.json"),
+    ("format" = "json")
+);
+
+LOAD DATASET ColumnDataset2 USING localfs
+(
+    ("path" = "asterix_nc1://data/hdfs/parquet/id_age.json"),
+    ("format" = "json")
+);
+
+LOAD DATASET ColumnDataset3 USING localfs
+(
+    ("path" = "asterix_nc1://data/hdfs/parquet/id_name_comment.json"),
+    ("format" = "json")
+);
+
+
+LOAD DATASET ColumnDataset4 USING localfs
+(
+    ("path" = "asterix_nc1://data/hdfs/parquet/dummy_tweet.json"),
+    ("format" = "json")
+);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.003.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.003.query.sqlpp
new file mode 100644
index 0000000000..ed416a75c1
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.003.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+
+SELECT VALUE p
+FROM ColumnDataset1 p
+ORDER BY p.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.004.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.004.query.sqlpp
new file mode 100644
index 0000000000..2117506fe2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.004.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT VALUE p
+FROM ColumnDataset1 p
+ORDER BY p.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.005.query.sqlpp
new file mode 100644
index 0000000000..36a6bd2784
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.005.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+
+SELECT p1, p2.id
+FROM ColumnDataset1 p1, ColumnDataset2 p2
+WHERE p1.id = p2.id
+ORDER BY p2.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.006.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.006.query.sqlpp
new file mode 100644
index 0000000000..e2497c7273
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.006.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT p1, p2.id
+FROM ColumnDataset1 p1, ColumnDataset2 p2
+WHERE p1.id = p2.id
+ORDER BY p2.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.007.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.007.query.sqlpp
new file mode 100644
index 0000000000..1a8e8845bf
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.007.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+
+SELECT p1.age, p2.name
+FROM ColumnDataset1 p1, ColumnDataset3 p2
+WHERE p1.id = p2.id
+ORDER BY p2.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.008.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.008.query.sqlpp
new file mode 100644
index 0000000000..0c2e16b5bf
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.008.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT p1.age, p2.name
+FROM ColumnDataset1 p1, ColumnDataset3 p2
+WHERE p1.id = p2.id
+ORDER BY p2.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.009.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.009.query.sqlpp
new file mode 100644
index 0000000000..a6d5294bcf
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.009.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+
+SELECT p.user.id, p.user.name
+FROM ColumnDataset4 p
+ORDER BY p.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.010.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.010.query.sqlpp
new file mode 100644
index 0000000000..9b22279acd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.010.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT p.user.id, p.user.name
+FROM ColumnDataset4 p
+ORDER BY p.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.011.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.011.query.sqlpp
new file mode 100644
index 0000000000..28be97e7a8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.011.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+
+SELECT VALUE COUNT(*)
+FROM ColumnDataset4 p;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.012.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.012.query.sqlpp
new file mode 100644
index 0000000000..ea96a552ff
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/field-access-pushdown/field-access-pushdown.012.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT VALUE COUNT(*)
+FROM ColumnDataset4 p;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/heterogeneous-access-pushdown/heterogeneous-access-pushdown.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/heterogeneous-access-pushdown/heterogeneous-access-pushdown.001.ddl.sqlpp
new file mode 100644
index 0000000000..74e56be419
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/heterogeneous-access-pushdown/heterogeneous-access-pushdown.001.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.
+ */
+/*
+* Description  : Heterogeneous access DDL
+* Expected Res : Success
+* Date         : July 23th 2021
+*/
+
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+
+USE test;
+
+CREATE TYPE ColumnType AS {
+    id: int
+};
+
+CREATE DATASET ColumnDataset(ColumnType)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/heterogeneous-access-pushdown/heterogeneous-access-pushdown.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/heterogeneous-access-pushdown/heterogeneous-access-pushdown.002.update.sqlpp
new file mode 100644
index 0000000000..a71f6d9c4c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/heterogeneous-access-pushdown/heterogeneous-access-pushdown.002.update.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+LOAD DATASET ColumnDataset USING localfs
+(
+    ("path" = "asterix_nc1://data/hdfs/parquet/heterogeneous_1.json, asterix_nc1://data/hdfs/parquet/heterogeneous_2.json"),
+    ("format" = "json")
+);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/heterogeneous-access-pushdown/heterogeneous-access-pushdown.003.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/heterogeneous-access-pushdown/heterogeneous-access-pushdown.003.query.sqlpp
new file mode 100644
index 0000000000..6a0c6003be
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/heterogeneous-access-pushdown/heterogeneous-access-pushdown.003.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+
+SELECT VALUE (
+    CASE WHEN is_array(p.arrayOrObject) THEN
+        p.arrayOrObject[*].text
+    ELSE
+        p.arrayOrObject.text
+    END
+)
+FROM ColumnDataset p
+ORDER BY p.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/heterogeneous-access-pushdown/heterogeneous-access-pushdown.004.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/heterogeneous-access-pushdown/heterogeneous-access-pushdown.004.query.sqlpp
new file mode 100644
index 0000000000..75ba4cbc80
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/heterogeneous-access-pushdown/heterogeneous-access-pushdown.004.query.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT VALUE (
+    CASE WHEN is_array(p.arrayOrObject) THEN
+        p.arrayOrObject[*].text
+    ELSE
+        p.arrayOrObject.text
+    END
+)
+FROM ColumnDataset p
+ORDER BY p.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.001.ddl.sqlpp
new file mode 100644
index 0000000000..510dfea846
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.001.ddl.sqlpp
@@ -0,0 +1,35 @@
+/*
+ * 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 ColumnType AS {
+    id: string
+};
+
+CREATE DATASET ColumnDataset(ColumnType)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
+
+CREATE DATASET RowDataset(ColumnType)
+PRIMARY KEY id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.002.update.sqlpp
new file mode 100644
index 0000000000..cf459fb4ab
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.002.update.sqlpp
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+LOAD DATASET ColumnDataset USING localfs
+(
+    ("path" = "asterix_nc1://data/hdfs/parquet/dummy_tweet.json"),
+    ("format" = "json")
+);
+
+LOAD DATASET RowDataset USING localfs
+(
+    ("path" = "asterix_nc1://data/hdfs/parquet/dummy_tweet.json"),
+    ("format" = "json")
+);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.003.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.003.query.sqlpp
new file mode 100644
index 0000000000..0a8843cc29
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.003.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+
+SELECT sum(object_length(p1)), sum(object_length(p2))
+FROM ColumnDataset p1, RowDataset p2
+WHERE p2.id = p1.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.004.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.004.query.sqlpp
new file mode 100644
index 0000000000..dca297be29
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.004.query.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT sum(object_length(p1)), sum(object_length(p2))
+FROM ColumnDataset p1, RowDataset p2
+WHERE p2.id = p1.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.005.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.005.query.sqlpp
new file mode 100644
index 0000000000..1b10335eb9
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.005.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+
+SELECT DISTINCT VALUE p1
+FROM ColumnDataset p1
+WHERE p1.id != "0"
+ORDER BY p1.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.006.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.006.query.sqlpp
new file mode 100644
index 0000000000..8357860239
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.006.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT DISTINCT VALUE p1
+FROM ColumnDataset p1
+WHERE p1.id != "0"
+ORDER BY p1.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.007.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.007.query.sqlpp
new file mode 100644
index 0000000000..7053e81752
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.007.query.sqlpp
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+
+SELECT text, sum(array_count(p1.entities.urls))
+FROM ColumnDataset p1, p1.entities.urls ht
+WHERE p1.id != "0" AND lowercase(ht.display_url) = "string"
+GROUP BY ht.display_url AS text
+ORDER BY ht.display_url
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.008.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.008.query.sqlpp
new file mode 100644
index 0000000000..93f159a79e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.008.query.sqlpp
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT text, sum(array_count(p1.entities.urls))
+FROM ColumnDataset p1, p1.entities.urls ht
+WHERE p1.id != "0" AND lowercase(ht.display_url) = "string"
+GROUP BY ht.display_url AS text
+ORDER BY ht.display_url
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.009.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.009.query.sqlpp
new file mode 100644
index 0000000000..756f9a8b88
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.009.query.sqlpp
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+
+SELECT text, sum(array_sum(ht.indices))
+FROM ColumnDataset p1, p1.entities.urls ht
+WHERE p1.id != "0" AND lowercase(ht.display_url) = "string"
+GROUP BY ht.display_url AS text
+ORDER BY ht.display_url;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.010.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.010.query.sqlpp
new file mode 100644
index 0000000000..e058e7d372
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.010.query.sqlpp
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT text, sum(array_sum(ht.indices))
+FROM ColumnDataset p1, p1.entities.urls ht
+WHERE p1.id != "0" AND lowercase(ht.display_url) = "string"
+GROUP BY ht.display_url AS text
+ORDER BY ht.display_url;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.011.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.011.query.sqlpp
new file mode 100644
index 0000000000..404224372a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.011.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+
+SELECT p.entities.urls[0].display_url
+FROM ColumnDataset p
+WHERE array_count(p.entities.urls) = 1
+ORDER BY p.id;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.012.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.012.query.sqlpp
new file mode 100644
index 0000000000..e593b62ca6
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.012.query.sqlpp
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT p.entities.urls[0].display_url
+FROM ColumnDataset p
+WHERE array_count(p.entities.urls) = 1
+ORDER BY p.id;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.013.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.013.query.sqlpp
new file mode 100644
index 0000000000..319d79085f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.013.query.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+
+
+SELECT uname, COUNT(*) as cnt
+FROM ColumnDataset p1, p1.entities.urls ht1
+WHERE ht1.display_url IN (SELECT VALUE ht2.display_url
+                          FROM RowDataset p2, p2.entities.urls ht2)
+GROUP BY p1.user.name AS uname
+ORDER BY cnt DESC, uname ASC;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.014.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.014.query.sqlpp
new file mode 100644
index 0000000000..2cba6671eb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/pushdown/other-pushdowns/other-pushdowns.014.query.sqlpp
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+SET `compiler.parallelism` "0";
+SET `compiler.sort.parallel` "false";
+EXPLAIN
+SELECT uname, COUNT(*) as cnt
+FROM ColumnDataset p1, p1.entities.urls ht1
+WHERE ht1.display_url IN (SELECT VALUE ht2.display_url
+                          FROM RowDataset p2, p2.entities.urls ht2)
+GROUP BY p1.user.name AS uname
+ORDER BY cnt DESC, uname ASC;
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/select-count-one-field/select-count-one-field.001.ddl.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/select-count-one-field/select-count-one-field.001.ddl.sqlpp
new file mode 100644
index 0000000000..a94865071d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/select-count-one-field/select-count-one-field.001.ddl.sqlpp
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+DROP DATAVERSE test IF EXISTS;
+CREATE DATAVERSE test;
+
+USE test;
+
+
+CREATE TYPE ColumnType AS {
+    id: string
+};
+
+CREATE DATASET ColumnDataset(ColumnType)
+PRIMARY KEY id WITH {
+    "storage-format": {"format" : "column"}
+};
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/select-count-one-field/select-count-one-field.002.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/select-count-one-field/select-count-one-field.002.update.sqlpp
new file mode 100644
index 0000000000..ea18ba31c2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/select-count-one-field/select-count-one-field.002.update.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+LOAD DATASET ColumnDataset USING localfs
+(
+    ("path" = "asterix_nc1://data/hdfs/parquet/dummy_tweet.json"),
+    ("format" = "json")
+);
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/select-count-one-field/select-count-one-field.003.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/select-count-one-field/select-count-one-field.003.query.sqlpp
new file mode 100644
index 0000000000..444b3d160a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/select-count-one-field/select-count-one-field.003.query.sqlpp
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+SELECT VALUE count(p.text)
+FROM ColumnDataset p;
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/select-count-one-field/select-count-one-field.004.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/select-count-one-field/select-count-one-field.004.query.sqlpp
new file mode 100644
index 0000000000..2606009700
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/select-count-one-field/select-count-one-field.004.query.sqlpp
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+SELECT VALUE count(p.user.name)
+FROM ColumnDataset p;
\ 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/upsert.001.ddl.sqlpp
new file mode 100644
index 0000000000..a271778586
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.001.ddl.sqlpp
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+DROP DATAVERSE test if exists;
+CREATE DATAVERSE test;
+USE test;
+
+CREATE TYPE ColumnType AS {
+    id: int
+};
+
+CREATE DATASET ColumnDataset(ColumnType)
+PRIMARY KEY id 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.0014.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
new file mode 100644
index 0000000000..075d204e2d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.0014.update.sqlpp
@@ -0,0 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+COMPACT DATASET ColumnDataset;
\ No newline at end of file
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/upsert.002.update.sqlpp
new file mode 100644
index 0000000000..a078d7fe70
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.002.update.sqlpp
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+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]}
+);
\ 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/upsert.003.query.sqlpp
new file mode 100644
index 0000000000..e8732e33b0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.003.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+-- Records are still in the in-memory component
+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/upsert.004.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.004.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ 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/upsert.005.query.sqlpp
new file mode 100644
index 0000000000..30d21cfd6c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.005.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+-- Records are on disk as columns
+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.006.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.006.update.sqlpp
new file mode 100644
index 0000000000..6e6f4d499c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.006.update.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+-- Upsert the record with id = 2
+UPSERT INTO ColumnDataset (
+    {"id": 2, "val": "2000", "array": [400, 500, 600]}
+);
\ No newline at end of file
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/upsert.007.query.sqlpp
new file mode 100644
index 0000000000..cb836846dd
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.007.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+-- a newer record with id = 2 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.008.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.008.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.008.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
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/upsert.009.query.sqlpp
new file mode 100644
index 0000000000..36002c28ec
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.009.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+-- Now, we have two on-disk components and both have records with id = 2. 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.010.update.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.010.update.sqlpp
new file mode 100644
index 0000000000..bfa20ea250
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.010.update.sqlpp
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+-- Upsert everything
+UPSERT 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": 4, "val": "-4", "array": [-100, -200, -300]}
+);
\ No newline at end of file
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/upsert.011.query.sqlpp
new file mode 100644
index 0000000000..c16159a31a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.011.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+-- Records on disk component are replaced by records in the in-memory component
+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.012.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.012.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
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/upsert.013.query.sqlpp
new file mode 100644
index 0000000000..fdc3f8eaae
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.013.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+-- The new disk component replaces all records in older on-disk components
+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.015.get.http b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.015.get.http
new file mode 100644
index 0000000000..57d830aed0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.015.get.http
@@ -0,0 +1,19 @@
+/*
+ * 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.
+ */
+/connector?dataverseName=test&datasetName=ColumnDataset
\ No newline at end of file
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/upsert.016.query.sqlpp
new file mode 100644
index 0000000000..ce430a29f8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/column/upsert/upsert.016.query.sqlpp
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+USE test;
+
+-- We should have one component and all older records are now garbage-collected
+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/results/column/assembly/assembly.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/assembly/assembly.003.adm
new file mode 100644
index 0000000000..abac7989f4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/assembly/assembly.003.adm
@@ -0,0 +1,2 @@
+{ "id": "0000000", "coordinates": { "coordinates": [ 1.1 ], "type": "string" }, "created_at": "string", "entities": { "urls": [ { "display_url": "string", "expanded_url": "string", "indices": [ 1 ], "url": "string" } ], "user_mentions": [ { "id": 1, "id_str": "string", "indices": [ 1 ], "name": "string", "screen_name": "string" } ] }, "favorite_count": 1, "favorited": true, "filter_level": "string", "geo": { "coordinates": [ 1.1 ], "type": "string" }, "id_str": "string", "in_reply_to_scr [...]
+{ "id": "11111111111111111111", "coordinates": { "coordinates": [ 1.1 ], "type": "string" }, "created_at": "string", "favorite_count": 1, "favorited": true, "filter_level": "string", "geo": { "coordinates": [ 1.1 ], "type": "string" }, "id_str": "string", "in_reply_to_screen_name": "string", "in_reply_to_status_id": 1, "in_reply_to_status_id_str": "string", "in_reply_to_user_id": 1, "in_reply_to_user_id_str": "string", "is_quote_status": true, "lang": "string", "place": { "bounding_box": [...]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/assembly/assembly.004.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/assembly/assembly.004.adm
new file mode 100644
index 0000000000..af1664801e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/assembly/assembly.004.adm
@@ -0,0 +1,6 @@
+{ "id": 0, "arrayOrObject": [ { "text": "1" }, { "text": "2" } ] }
+{ "id": 1, "arrayOrObject": [ { "text": "3" }, { "text": "4" } ] }
+{ "id": 2, "arrayOrObject": [ { "text": "5" }, { "text": "6" } ] }
+{ "id": 3, "arrayOrObject": { "text": "7" } }
+{ "id": 4, "arrayOrObject": { "text": "8" } }
+{ "id": 5, "arrayOrObject": { "text": "9" } }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/assembly/assembly.005.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/assembly/assembly.005.adm
new file mode 100644
index 0000000000..643cd75f45
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/assembly/assembly.005.adm
@@ -0,0 +1,21 @@
+{ "id": 1, "name": "John" }
+{ "id": 2, "name": "Abel" }
+{ "id": 3, "name": "Sandy" }
+{ "id": 4, "name": "Alex" }
+{ "id": 5, "name": "Mike" }
+{ "id": 6, "name": "Tom" }
+{ "id": 7, "name": "Jerry" }
+{ "id": 8, "age": 10 }
+{ "id": 9, "age": 20 }
+{ "id": 10, "age": 30 }
+{ "id": 11, "age": 40 }
+{ "id": 12, "age": 50 }
+{ "id": 13, "age": 60 }
+{ "id": 14, "age": 70 }
+{ "id": 15, "age": "10" }
+{ "id": 16, "age": "20" }
+{ "id": 17, "age": "30" }
+{ "id": 18, "age": "40" }
+{ "id": 19, "age": "50" }
+{ "id": 20, "age": "60" }
+{ "id": 21, "age": "70" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/assembly/assembly.006.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/assembly/assembly.006.adm
new file mode 100644
index 0000000000..c7b1497fdc
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/assembly/assembly.006.adm
@@ -0,0 +1,8 @@
+{ "id": 1, "name": "John" }
+{ "id": 2, "name": "Abel" }
+{ "id": 3, "name": "Sandy" }
+{ "id": 4, "name": "Alex" }
+{ "id": 5, "name": "Mike" }
+{ "id": 6, "name": "Tom" }
+{ "id": 7, "name": "Jerry", "comment": "😢😢💉💉 = 𩸽 😢😢💉💉. Coffee ☕‼️😃. حسنا" }
+{ "id": 8, "name": "William", "comment": "😢😢💉💉 = 𩸽 😢😢💉💉. Coffee ☕‼️😃. حسنا😢😢💉💉 = 𩸽 😢😢💉💉. Coffee ☕‼️😃. حسنا😢😢💉💉 = 𩸽 😢😢💉💉. Coffee ☕‼️😃. حسنا😢😢💉💉 = 𩸽 😢😢💉💉. Coffee ☕‼️😃. حسنا😢😢💉💉 = 𩸽 😢😢💉💉. Coffee ☕‼️😃. حسنا😢😢💉💉 = 𩸽 😢😢💉💉. Coffee ☕‼️😃. حسنا😢😢💉💉 = 𩸽 😢😢💉💉. Coffee ☕‼️😃. حسنا😢😢💉💉 = 𩸽 😢😢💉💉. Coffee ☕‼️😃. حسنا😢😢💉💉 = 𩸽 😢😢💉💉. Coffee ☕‼️😃. حسنا😢😢💉💉 = 𩸽 😢😢💉💉. Coffee ☕‼️😃. حسنا😢😢💉💉 = 𩸽 😢😢💉💉. Coffee ☕‼️😃. حسنا😢😢💉💉 = 𩸽 😢😢💉💉. Coffee ☕‼️😃. حسنا😢😢💉💉 = 𩸽 😢😢💉💉. Coffee ☕‼️😃. حسنا😢😢💉💉 = 
 𩸽 😢😢💉💉. Coffee ☕‼️😃. حسنا😢😢 [...]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/big-object/big-object.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/big-object/big-object.3.adm
new file mode 100644
index 0000000000..a6f80d13a8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/big-object/big-object.3.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"ColumnType","open":true,"fields":[{"id":{"type":"AInt64"}},{"name":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0 [...]
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/big-object/big-object.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/big-object/big-object.4.adm
new file mode 100644
index 0000000000..8b92ad286b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/big-object/big-object.4.adm
@@ -0,0 +1,100 @@
+{ "id": 1, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus int [...]
+{ "id": 2, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus int [...]
+{ "id": 3, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus int [...]
+{ "id": 4, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus int [...]
+{ "id": 5, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus int [...]
+{ "id": 6, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus int [...]
+{ "id": 7, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus int [...]
+{ "id": 8, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus int [...]
+{ "id": 9, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus int [...]
+{ "id": 10, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 11, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 12, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 13, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 14, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 15, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 16, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 17, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 18, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 19, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 20, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 21, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 22, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 23, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 24, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 25, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 26, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 27, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 28, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 29, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 30, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 31, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 32, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 33, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 34, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 35, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 36, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 37, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 38, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 39, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 40, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 41, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 42, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 43, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 44, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 45, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 46, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 47, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 48, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 49, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 50, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 51, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 52, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 53, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 54, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 55, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 56, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 57, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 58, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 59, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 60, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 61, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 62, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 63, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 64, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 65, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 66, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 67, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 68, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 69, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 70, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 71, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 72, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 73, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 74, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 75, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 76, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 77, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 78, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 79, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 80, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 81, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 82, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 83, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 84, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 85, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 86, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 87, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 88, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 89, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 90, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 91, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 92, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 93, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 94, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 95, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 96, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 97, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 98, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 99, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus in [...]
+{ "id": 100, "name": "Person Four", "hobbies": {{ "Metal", "Jazz", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sit amet vehicula justo. Nam sodales lectus ut leo vestibulum, ac sagittis lorem varius. Aenean luctus diam quam, id hendrerit lectus auctor interdum. Vivamus lectus nibh, gravida quis varius at, egestas sed enim. Mauris ultrices nisl pulvinar lectus varius pharetra. Integer vel est ut sem facilisis mollis. Donec a feugiat urna, sed euismod dolor. Vivamus i [...]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/001/001.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/001/001.003.adm
new file mode 100644
index 0000000000..22336017df
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/001/001.003.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"OpenType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0/ColumnDataset"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/001/001.004.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/001/001.004.adm
new file mode 100644
index 0000000000..2f463f98f8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/001/001.004.adm
@@ -0,0 +1,3 @@
+{ "id": 0, "a": 0 }
+{ "id": 1, "a": 1 }
+{ "id": 2, "a": 2 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/001/001.006.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/001/001.006.adm
new file mode 100644
index 0000000000..94aed0fe74
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/001/001.006.adm
@@ -0,0 +1,2 @@
+{ "id": 0, "a": 0 }
+{ "id": 2, "a": 2 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/001/001.007.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/001/001.007.adm
new file mode 100644
index 0000000000..22336017df
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/001/001.007.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"OpenType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0/ColumnDataset"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/001/001.008.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/001/001.008.adm
new file mode 100644
index 0000000000..94aed0fe74
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/001/001.008.adm
@@ -0,0 +1,2 @@
+{ "id": 0, "a": 0 }
+{ "id": 2, "a": 2 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/002/002.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/002/002.003.adm
new file mode 100644
index 0000000000..22336017df
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/002/002.003.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"OpenType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0/ColumnDataset"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/002/002.004.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/002/002.004.adm
new file mode 100644
index 0000000000..2f463f98f8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/002/002.004.adm
@@ -0,0 +1,3 @@
+{ "id": 0, "a": 0 }
+{ "id": 1, "a": 1 }
+{ "id": 2, "a": 2 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/002/002.006.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/002/002.006.adm
new file mode 100644
index 0000000000..94aed0fe74
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/002/002.006.adm
@@ -0,0 +1,2 @@
+{ "id": 0, "a": 0 }
+{ "id": 2, "a": 2 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/002/002.007.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/002/002.007.adm
new file mode 100644
index 0000000000..22336017df
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/002/002.007.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"OpenType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0/ColumnDataset"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/002/002.008.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/002/002.008.adm
new file mode 100644
index 0000000000..94aed0fe74
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/delete/002/002.008.adm
@@ -0,0 +1,2 @@
+{ "id": 0, "a": 0 }
+{ "id": 2, "a": 2 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.003.adm
new file mode 100644
index 0000000000..ea6115b413
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.003.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"ColumnType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0/ColumnDataset"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.005.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.005.adm
new file mode 100644
index 0000000000..ea6115b413
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.005.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"ColumnType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0/ColumnDataset"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.006.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.006.adm
new file mode 100644
index 0000000000..16fbdca17b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.006.adm
@@ -0,0 +1 @@
+{ "id": 2, "a": "2", "array": [ 40, 50, 60 ] }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.007.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.007.plan
new file mode 100644
index 0000000000..2d8a975764
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.007.plan
@@ -0,0 +1,22 @@
+distribute result [$$d] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$d]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+      -- SORT_MERGE_EXCHANGE [$$20(ASC) ]  |PARTITIONED|
+        project ([$$d, $$20]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          select (and(gt($$19, "1"), lt($$19, "3"))) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+          -- STREAM_SELECT  |PARTITIONED|
+            assign [$$19] <- [$$d.getField("a")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+            -- ASSIGN  |PARTITIONED|
+              exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                data-scan []<-[$$20, $$d] <- test.ColumnDataset filter on (and(gt($$19, "1"), lt($$19, "3"))) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                -- DATASOURCE_SCAN  |PARTITIONED|
+                  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.008.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.008.adm
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.009.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.009.plan
new file mode 100644
index 0000000000..e9fa01c5a4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.009.plan
@@ -0,0 +1,22 @@
+distribute result [$$d] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$d]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+      -- SORT_MERGE_EXCHANGE [$$20(ASC) ]  |PARTITIONED|
+        project ([$$d, $$20]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          select (and(gt($$19, 1), lt($$19, 3))) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+          -- STREAM_SELECT  |PARTITIONED|
+            assign [$$19] <- [$$d.getField("a")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+            -- ASSIGN  |PARTITIONED|
+              exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                data-scan []<-[$$20, $$d] <- test.ColumnDataset filter on (and(gt($$19, 1), lt($$19, 3))) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                -- DATASOURCE_SCAN  |PARTITIONED|
+                  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.010.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.010.adm
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.011.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.011.plan
new file mode 100644
index 0000000000..776a3605dc
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.011.plan
@@ -0,0 +1,35 @@
+distribute result [$$d] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$d]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+      -- SORT_MERGE_EXCHANGE [$$28(ASC) ]  |PARTITIONED|
+        project ([$$d, $$28]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          select ($$26) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+          -- STREAM_SELECT  |PARTITIONED|
+            project ([$$28, $$d, $$26]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+            -- STREAM_PROJECT  |PARTITIONED|
+              subplan {
+                        aggregate [$$26] <- [non-empty-stream()] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- AGGREGATE  |LOCAL|
+                          select (lt($$a, "100")) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- STREAM_SELECT  |LOCAL|
+                            unnest $$a <- scan-collection($$29) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- UNNEST  |LOCAL|
+                              nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                              -- NESTED_TUPLE_SOURCE  |LOCAL|
+                     } [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+              -- SUBPLAN  |PARTITIONED|
+                assign [$$29] <- [$$d.getField("array")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                -- ASSIGN  |PARTITIONED|
+                  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    data-scan []<-[$$28, $$d] <- test.ColumnDataset filter on (lt($$a, "100")) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                    -- DATASOURCE_SCAN  |PARTITIONED|
+                      exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.012.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.012.adm
new file mode 100644
index 0000000000..ead03fe797
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.012.adm
@@ -0,0 +1,3 @@
+{ "id": 1, "a": "1", "array": [ 10, 20, 30 ] }
+{ "id": 2, "a": "2", "array": [ 40, 50, 60 ] }
+{ "id": 3, "a": "3", "array": [ 70, 80, 90 ] }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.013.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.013.plan
new file mode 100644
index 0000000000..d8b6f2dc37
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.013.plan
@@ -0,0 +1,35 @@
+distribute result [$$d] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$d]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+      -- SORT_MERGE_EXCHANGE [$$28(ASC) ]  |PARTITIONED|
+        project ([$$d, $$28]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          select ($$26) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+          -- STREAM_SELECT  |PARTITIONED|
+            project ([$$28, $$d, $$26]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+            -- STREAM_PROJECT  |PARTITIONED|
+              subplan {
+                        aggregate [$$26] <- [non-empty-stream()] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- AGGREGATE  |LOCAL|
+                          select (lt($$a, 100)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- STREAM_SELECT  |LOCAL|
+                            unnest $$a <- scan-collection($$29) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- UNNEST  |LOCAL|
+                              nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                              -- NESTED_TUPLE_SOURCE  |LOCAL|
+                     } [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+              -- SUBPLAN  |PARTITIONED|
+                assign [$$29] <- [$$d.getField("array")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                -- ASSIGN  |PARTITIONED|
+                  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    data-scan []<-[$$28, $$d] <- test.ColumnDataset filter on (lt($$a, 100)) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                    -- DATASOURCE_SCAN  |PARTITIONED|
+                      exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.014.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.014.adm
new file mode 100644
index 0000000000..50f1499780
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.014.adm
@@ -0,0 +1 @@
+{ "id": 4, "a": "4", "array": [ 100, 200, 300 ] }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.015.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.015.plan
new file mode 100644
index 0000000000..35d861731d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.015.plan
@@ -0,0 +1,35 @@
+distribute result [$$d] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$d]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+      -- SORT_MERGE_EXCHANGE [$$28(ASC) ]  |PARTITIONED|
+        project ([$$d, $$28]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          select ($$26) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+          -- STREAM_SELECT  |PARTITIONED|
+            project ([$$28, $$d, $$26]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+            -- STREAM_PROJECT  |PARTITIONED|
+              subplan {
+                        aggregate [$$26] <- [non-empty-stream()] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- AGGREGATE  |LOCAL|
+                          select (eq($$a, 100)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- STREAM_SELECT  |LOCAL|
+                            unnest $$a <- scan-collection($$29) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- UNNEST  |LOCAL|
+                              nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                              -- NESTED_TUPLE_SOURCE  |LOCAL|
+                     } [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+              -- SUBPLAN  |PARTITIONED|
+                assign [$$29] <- [$$d.getField("array")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                -- ASSIGN  |PARTITIONED|
+                  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    data-scan []<-[$$28, $$d] <- test.ColumnDataset filter on (eq($$a, 100)) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                    -- DATASOURCE_SCAN  |PARTITIONED|
+                      exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.016.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.016.adm
new file mode 100644
index 0000000000..f789d94aef
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.016.adm
@@ -0,0 +1,4 @@
+{ "id": 1, "a": "1", "array": [ 10, 20, 30 ] }
+{ "id": 2, "a": "2", "array": [ 40, 50, 60 ] }
+{ "id": 3, "a": "3", "array": [ 70, 80, 90 ] }
+{ "id": 4, "a": "4", "array": [ 100, 200, 300 ] }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.017.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.017.plan
new file mode 100644
index 0000000000..8071262d28
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.017.plan
@@ -0,0 +1,35 @@
+distribute result [$$d] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$d]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+      -- SORT_MERGE_EXCHANGE [$$28(ASC) ]  |PARTITIONED|
+        project ([$$d, $$28]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          select ($$26) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+          -- STREAM_SELECT  |PARTITIONED|
+            project ([$$28, $$d, $$26]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+            -- STREAM_PROJECT  |PARTITIONED|
+              subplan {
+                        aggregate [$$26] <- [non-empty-stream()] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- AGGREGATE  |LOCAL|
+                          select (lt($$a, 100.1)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- STREAM_SELECT  |LOCAL|
+                            unnest $$a <- scan-collection($$29) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- UNNEST  |LOCAL|
+                              nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                              -- NESTED_TUPLE_SOURCE  |LOCAL|
+                     } [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+              -- SUBPLAN  |PARTITIONED|
+                assign [$$29] <- [$$d.getField("array")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                -- ASSIGN  |PARTITIONED|
+                  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    data-scan []<-[$$28, $$d] <- test.ColumnDataset filter on (lt($$a, 100.1)) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                    -- DATASOURCE_SCAN  |PARTITIONED|
+                      exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.018.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.018.adm
new file mode 100644
index 0000000000..033ecf98cb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.018.adm
@@ -0,0 +1,3 @@
+70
+80
+90
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.019.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.019.plan
new file mode 100644
index 0000000000..da5c43134f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.019.plan
@@ -0,0 +1,30 @@
+distribute result [$$item] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$item]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+      -- SORT_MERGE_EXCHANGE [$$29(ASC), $$item(ASC) ]  |PARTITIONED|
+        order (ASC, $$29) (ASC, $$item) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+        -- STABLE_SORT [$$29(ASC), $$item(ASC)]  |PARTITIONED|
+          exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            select (and(gt($$item, 60), lt($$item, 100))) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+            -- STREAM_SELECT  |PARTITIONED|
+              project ([$$29, $$item]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+              -- STREAM_PROJECT  |PARTITIONED|
+                unnest $$item <- scan-collection($$30) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                -- UNNEST  |PARTITIONED|
+                  project ([$$29, $$30]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                  -- STREAM_PROJECT  |PARTITIONED|
+                    assign [$$30] <- [$$d.getField("array")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                    -- ASSIGN  |PARTITIONED|
+                      exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        data-scan []<-[$$29, $$d] <- test.ColumnDataset project ({array:[any]}) filter on (and(gt($$item, 60), lt($$item, 100))) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                        -- DATASOURCE_SCAN  |PARTITIONED|
+                          exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.020.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.020.adm
new file mode 100644
index 0000000000..29d6383b52
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.020.adm
@@ -0,0 +1 @@
+100
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.021.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.021.plan
new file mode 100644
index 0000000000..2a514a892a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.021.plan
@@ -0,0 +1,30 @@
+distribute result [$$item] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$item]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+      -- SORT_MERGE_EXCHANGE [$$27(ASC), $$item(ASC) ]  |PARTITIONED|
+        order (ASC, $$27) (ASC, $$item) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+        -- STABLE_SORT [$$27(ASC), $$item(ASC)]  |PARTITIONED|
+          exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            select (eq($$item, 100)) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+            -- STREAM_SELECT  |PARTITIONED|
+              project ([$$27, $$item]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+              -- STREAM_PROJECT  |PARTITIONED|
+                unnest $$item <- scan-collection($$28) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                -- UNNEST  |PARTITIONED|
+                  project ([$$27, $$28]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                  -- STREAM_PROJECT  |PARTITIONED|
+                    assign [$$28] <- [$$d.getField("array")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                    -- ASSIGN  |PARTITIONED|
+                      exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        data-scan []<-[$$27, $$d] <- test.ColumnDataset project ({array:[any]}) filter on (eq($$item, 100)) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                        -- DATASOURCE_SCAN  |PARTITIONED|
+                          exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.022.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.022.adm
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.023.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.023.plan
new file mode 100644
index 0000000000..99008e586b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/001/001.023.plan
@@ -0,0 +1,30 @@
+distribute result [$$item] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$item]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+      -- SORT_MERGE_EXCHANGE [$$27(ASC), $$item(ASC) ]  |PARTITIONED|
+        order (ASC, $$27) (ASC, $$item) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+        -- STABLE_SORT [$$27(ASC), $$item(ASC)]  |PARTITIONED|
+          exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            select (gt($$item, 10000)) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+            -- STREAM_SELECT  |PARTITIONED|
+              project ([$$27, $$item]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+              -- STREAM_PROJECT  |PARTITIONED|
+                unnest $$item <- scan-collection($$28) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                -- UNNEST  |PARTITIONED|
+                  project ([$$27, $$28]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                  -- STREAM_PROJECT  |PARTITIONED|
+                    assign [$$28] <- [$$d.getField("array")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                    -- ASSIGN  |PARTITIONED|
+                      exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        data-scan []<-[$$27, $$d] <- test.ColumnDataset project ({array:[any]}) filter on (gt($$item, 10000)) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                        -- DATASOURCE_SCAN  |PARTITIONED|
+                          exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/002/002.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/002/002.003.adm
new file mode 100644
index 0000000000..ea6115b413
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/002/002.003.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"ColumnType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0/ColumnDataset"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/002/002.005.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/002/002.005.adm
new file mode 100644
index 0000000000..ea6115b413
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/002/002.005.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"ColumnType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0/ColumnDataset"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/002/002.007.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/002/002.007.adm
new file mode 100644
index 0000000000..ea6115b413
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/002/002.007.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"ColumnType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0/ColumnDataset"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/002/002.008.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/002/002.008.adm
new file mode 100644
index 0000000000..07e34d2faa
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/002/002.008.adm
@@ -0,0 +1 @@
+{ "id": 2, "a": 2, "array": [ 40, 50, 60 ] }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/003/003.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/003/003.003.adm
new file mode 100644
index 0000000000..ea6115b413
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/003/003.003.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"ColumnType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0/ColumnDataset"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/003/003.004.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/003/003.004.adm
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_after_gby/meta_after_gby.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_after_gby/meta_after_gby.3.adm
new file mode 100644
index 0000000000..d37b3ace83
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_after_gby/meta_after_gby.3.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"DataType","open":true,"fields":[{"id":{"type":"AInt64"}},{"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/meta/meta_after_gby/meta_after_gby.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_after_gby/meta_after_gby.4.adm
new file mode 100644
index 0000000000..bf1932cf08
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_after_gby/meta_after_gby.4.adm
@@ -0,0 +1,6 @@
+{ "hobby": "basketball", "count": 1 }
+{ "hobby": "bowling", "count": 1 }
+{ "hobby": "hiking", "count": 2 }
+{ "hobby": "reading", "count": 2 }
+{ "hobby": "soccer", "count": 1 }
+{ "hobby": "tennis", "count": 2 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_in_with_clause/meta_in_with_clause.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_in_with_clause/meta_in_with_clause.3.adm
new file mode 100644
index 0000000000..d37b3ace83
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_in_with_clause/meta_in_with_clause.3.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"DataType","open":true,"fields":[{"id":{"type":"AInt64"}},{"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/meta/meta_in_with_clause/meta_in_with_clause.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_in_with_clause/meta_in_with_clause.4.adm
new file mode 100644
index 0000000000..c6499446b4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_in_with_clause/meta_in_with_clause.4.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"DataType","open":true,"fields":[{"id":{"type":"AInt64"}},{"name":{"type":"AString"}},{"age":{"type":"AInt64"}},{"hobby":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/DS2/0/DS2"},{"ip":"127.0.0.1","path":"storage/partition_1/test/DS2/0/DS2"},{"ip":"127.0.0.1","path":"storage/partition_2/test/DS2/0/DS2"},{"ip":"127.0.0.1","path":"storage/partition_3/test/DS2/0/DS2"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_in_with_clause/meta_in_with_clause.5.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_in_with_clause/meta_in_with_clause.5.adm
new file mode 100644
index 0000000000..b9ed3c3ef8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_in_with_clause/meta_in_with_clause.5.adm
@@ -0,0 +1,8 @@
+{ "age": 24, "aid": 13071782, "total": 8, "hobby": "tennis" }
+{ "age": 28, "aid": 26237702, "total": 8, "hobby": "basketball" }
+{ "age": 45, "aid": 32571888, "total": 8, "hobby": "tennis" }
+{ "age": 35, "aid": 39225791, "total": 8, "hobby": "soccer" }
+{ "age": 32, "aid": 51041435, "total": 8, "hobby": "reading" }
+{ "age": 30, "aid": 52037425, "total": 8, "hobby": "hiking" }
+{ "age": 29, "aid": 76041664, "total": 8, "hobby": "reading" }
+{ "age": 36, "aid": 86897761, "total": 8, "hobby": "hiking" }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_in_with_clause/meta_in_with_clause.6.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_in_with_clause/meta_in_with_clause.6.adm
new file mode 100644
index 0000000000..1cc10ea679
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_in_with_clause/meta_in_with_clause.6.adm
@@ -0,0 +1,8 @@
+{ "age": 29, "aid": 1, "total": 8, "hobby": "reading" }
+{ "age": 30, "aid": 2, "total": 8, "hobby": "hiking" }
+{ "age": 32, "aid": 4, "total": 8, "hobby": "reading" }
+{ "age": 35, "aid": 5, "total": 8, "hobby": "soccer" }
+{ "age": 24, "aid": 6, "total": 8, "hobby": "tennis" }
+{ "age": 28, "aid": 7, "total": 8, "hobby": "basketball" }
+{ "age": 45, "aid": 8, "total": 8, "hobby": "tennis" }
+{ "age": 36, "aid": 9, "total": 8, "hobby": "hiking" }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_in_with_clause/meta_in_with_clause.7.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_in_with_clause/meta_in_with_clause.7.adm
new file mode 100644
index 0000000000..b9ed3c3ef8
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_in_with_clause/meta_in_with_clause.7.adm
@@ -0,0 +1,8 @@
+{ "age": 24, "aid": 13071782, "total": 8, "hobby": "tennis" }
+{ "age": 28, "aid": 26237702, "total": 8, "hobby": "basketball" }
+{ "age": 45, "aid": 32571888, "total": 8, "hobby": "tennis" }
+{ "age": 35, "aid": 39225791, "total": 8, "hobby": "soccer" }
+{ "age": 32, "aid": 51041435, "total": 8, "hobby": "reading" }
+{ "age": 30, "aid": 52037425, "total": 8, "hobby": "hiking" }
+{ "age": 29, "aid": 76041664, "total": 8, "hobby": "reading" }
+{ "age": 36, "aid": 86897761, "total": 8, "hobby": "hiking" }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_in_with_clause/meta_in_with_clause.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_in_with_clause/meta_in_with_clause.8.adm
new file mode 100644
index 0000000000..1cc10ea679
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/meta_in_with_clause/meta_in_with_clause.8.adm
@@ -0,0 +1,8 @@
+{ "age": 29, "aid": 1, "total": 8, "hobby": "reading" }
+{ "age": 30, "aid": 2, "total": 8, "hobby": "hiking" }
+{ "age": 32, "aid": 4, "total": 8, "hobby": "reading" }
+{ "age": 35, "aid": 5, "total": 8, "hobby": "soccer" }
+{ "age": 24, "aid": 6, "total": 8, "hobby": "tennis" }
+{ "age": 28, "aid": 7, "total": 8, "hobby": "basketball" }
+{ "age": 45, "aid": 8, "total": 8, "hobby": "tennis" }
+{ "age": 36, "aid": 9, "total": 8, "hobby": "hiking" }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.3.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.3.adm
new file mode 100644
index 0000000000..d37b3ace83
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.3.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"DataType","open":true,"fields":[{"id":{"type":"AInt64"}},{"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/meta/resolving_pk_with_meta/resolving_pk_with_meta.4.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.4.adm
new file mode 100644
index 0000000000..c6499446b4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.4.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"DataType","open":true,"fields":[{"id":{"type":"AInt64"}},{"name":{"type":"AString"}},{"age":{"type":"AInt64"}},{"hobby":{"type":"AString"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/DS2/0/DS2"},{"ip":"127.0.0.1","path":"storage/partition_1/test/DS2/0/DS2"},{"ip":"127.0.0.1","path":"storage/partition_2/test/DS2/0/DS2"},{"ip":"127.0.0.1","path":"storage/partition_3/test/DS2/0/DS2"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.5.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.5.adm
new file mode 100644
index 0000000000..aca68e110e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.5.adm
@@ -0,0 +1,9 @@
+{ "i": 13071782 }
+{ "i": 26237702 }
+{ "i": 32571888 }
+{ "i": 39225791 }
+{ "i": 45962603 }
+{ "i": 51041435 }
+{ "i": 52037425 }
+{ "i": 76041664 }
+{ "i": 86897761 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.6.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.6.adm
new file mode 100644
index 0000000000..16bce911dc
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.6.adm
@@ -0,0 +1,9 @@
+{ "i": 1 }
+{ "i": 2 }
+{ "i": 3 }
+{ "i": 4 }
+{ "i": 5 }
+{ "i": 6 }
+{ "i": 7 }
+{ "i": 8 }
+{ "i": 9 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.7.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.7.adm
new file mode 100644
index 0000000000..aca68e110e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.7.adm
@@ -0,0 +1,9 @@
+{ "i": 13071782 }
+{ "i": 26237702 }
+{ "i": 32571888 }
+{ "i": 39225791 }
+{ "i": 45962603 }
+{ "i": 51041435 }
+{ "i": 52037425 }
+{ "i": 76041664 }
+{ "i": 86897761 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.8.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.8.adm
new file mode 100644
index 0000000000..16bce911dc
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/meta/resolving_pk_with_meta/resolving_pk_with_meta.8.adm
@@ -0,0 +1,9 @@
+{ "i": 1 }
+{ "i": 2 }
+{ "i": 3 }
+{ "i": 4 }
+{ "i": 5 }
+{ "i": 6 }
+{ "i": 7 }
+{ "i": 8 }
+{ "i": 9 }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/001/001.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/001/001.003.adm
new file mode 100644
index 0000000000..8876910a54
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/001/001.003.adm
@@ -0,0 +1,2 @@
+{ "f1": true, "f2": true }
+{ "f1": true, "f2": true }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/002/002.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/002/002.003.adm
new file mode 100644
index 0000000000..22336017df
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/002/002.003.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"OpenType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0/ColumnDataset"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/002/002.004.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/002/002.004.adm
new file mode 100644
index 0000000000..f5dd970b46
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/002/002.004.adm
@@ -0,0 +1,3 @@
+{ "id": 0, "a": [ 0, 1, null ] }
+{ "id": 1, "a": [ 0, null, 1 ] }
+{ "id": 2, "a": [ null, 0, 1 ] }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/003/003.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/003/003.003.adm
new file mode 100644
index 0000000000..22336017df
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/003/003.003.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"OpenType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0/ColumnDataset"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/003/003.004.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/003/003.004.adm
new file mode 100644
index 0000000000..f5dd970b46
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/003/003.004.adm
@@ -0,0 +1,3 @@
+{ "id": 0, "a": [ 0, 1, null ] }
+{ "id": 1, "a": [ 0, null, 1 ] }
+{ "id": 2, "a": [ null, 0, 1 ] }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/004/004.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/004/004.003.adm
new file mode 100644
index 0000000000..22336017df
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/004/004.003.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"OpenType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0/ColumnDataset"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/004/004.004.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/004/004.004.adm
new file mode 100644
index 0000000000..14a3baa1f0
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/004/004.004.adm
@@ -0,0 +1,3 @@
+{ "id": 0, "a": null }
+{ "id": 1, "a": null }
+{ "id": 2, "a": null }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/004/004.006.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/004/004.006.adm
new file mode 100644
index 0000000000..22336017df
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/004/004.006.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"OpenType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0/ColumnDataset"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/004/004.007.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/004/004.007.adm
new file mode 100644
index 0000000000..ed98609f9f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/004/004.007.adm
@@ -0,0 +1,6 @@
+{ "id": 0, "a": null }
+{ "id": 1, "a": null }
+{ "id": 2, "a": null }
+{ "id": 3, "a": 0 }
+{ "id": 4, "a": 1 }
+{ "id": 5, "a": 2 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/005/005.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/005/005.003.adm
new file mode 100644
index 0000000000..b6144a8a6f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/005/005.003.adm
@@ -0,0 +1,4 @@
+{ "id": 0, "a": [ 0, "1", null ] }
+{ "id": 1, "a": [ 0, null, "1" ] }
+{ "id": 2, "a": [ null, 0, "1" ] }
+{ "id": 3, "a": [ null, null, null ] }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/005/005.004.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/005/005.004.adm
new file mode 100644
index 0000000000..22336017df
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/005/005.004.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"OpenType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0/ColumnDataset"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/005/005.005.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/005/005.005.adm
new file mode 100644
index 0000000000..b6144a8a6f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/005/005.005.adm
@@ -0,0 +1,4 @@
+{ "id": 0, "a": [ 0, "1", null ] }
+{ "id": 1, "a": [ 0, null, "1" ] }
+{ "id": 2, "a": [ null, 0, "1" ] }
+{ "id": 3, "a": [ null, null, null ] }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/006/006.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/006/006.003.adm
new file mode 100644
index 0000000000..b6144a8a6f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/006/006.003.adm
@@ -0,0 +1,4 @@
+{ "id": 0, "a": [ 0, "1", null ] }
+{ "id": 1, "a": [ 0, null, "1" ] }
+{ "id": 2, "a": [ null, 0, "1" ] }
+{ "id": 3, "a": [ null, null, null ] }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/006/006.004.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/006/006.004.adm
new file mode 100644
index 0000000000..22336017df
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/006/006.004.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"OpenType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0/ColumnDataset"}]}
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/006/006.005.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/006/006.005.adm
new file mode 100644
index 0000000000..56fdcdfb10
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/missing-null-values/006/006.005.adm
@@ -0,0 +1,4 @@
+{ "id": 0, "a": [ 0, "1", null ] }
+{ "id": 1, "a": [ 0, null, "1" ] }
+{ "id": 2, "a": [ null, 0, "1" ] }
+{ "id": 3, "a": [ null, null, null ] }
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.003.adm
new file mode 100644
index 0000000000..18f3275beb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.003.adm
@@ -0,0 +1,2 @@
+{ "display_url": "string" }
+{  }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.004.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.004.plan
new file mode 100644
index 0000000000..ad9387218b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.004.plan
@@ -0,0 +1,24 @@
+distribute result [$$18] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$18]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$18] <- [{"display_url": $$22}] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+      -- ASSIGN  |PARTITIONED|
+        project ([$$22]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+          -- SORT_MERGE_EXCHANGE [$$20(ASC) ]  |PARTITIONED|
+            project ([$$22, $$20]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+            -- STREAM_PROJECT  |PARTITIONED|
+              assign [$$22] <- [get-item($$p.getField("entities").getField("urls"), 0).getField("display_url")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+              -- ASSIGN  |PARTITIONED|
+                exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                  data-scan []<-[$$20, $$p] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]}}) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                  -- DATASOURCE_SCAN  |PARTITIONED|
+                    exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.005.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.005.adm
new file mode 100644
index 0000000000..695240b26c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.005.adm
@@ -0,0 +1 @@
+{ "display_url": [ "string" ] }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.006.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.006.plan
new file mode 100644
index 0000000000..bfe26744cb
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.006.plan
@@ -0,0 +1,30 @@
+distribute result [$$22] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$22]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$22] <- [{"display_url": $$27}] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+      -- ASSIGN  |PARTITIONED|
+        project ([$$27]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+        -- STREAM_PROJECT  |PARTITIONED|
+          exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+          -- SORT_MERGE_EXCHANGE [$$25(ASC) ]  |PARTITIONED|
+            project ([$$27, $$25]) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+            -- STREAM_PROJECT  |PARTITIONED|
+              assign [$$27] <- [array-star($$24).getField("display_url")] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+              -- ASSIGN  |PARTITIONED|
+                select (not(is-missing($$24))) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+                -- STREAM_SELECT  |PARTITIONED|
+                  project ([$$25, $$24]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 2.1]
+                  -- STREAM_PROJECT  |PARTITIONED|
+                    assign [$$24] <- [$$p.getField("entities").getField("urls")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 2.1]
+                    -- ASSIGN  |PARTITIONED|
+                      exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 2.1]
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        data-scan []<-[$$25, $$p] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]}}) [cardinality: 1000000.0, op-cost: 2.1, total-cost: 2.1]
+                        -- DATASOURCE_SCAN  |PARTITIONED|
+                          exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.007.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.007.adm
new file mode 100644
index 0000000000..41c14f5712
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.007.adm
@@ -0,0 +1 @@
+{ "display_url": "string" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.008.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.008.plan
new file mode 100644
index 0000000000..93291ce8ca
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.008.plan
@@ -0,0 +1,28 @@
+distribute result [$$28] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$28]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$28] <- [{"display_url": $$urls.getField("display_url")}] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+      -- ASSIGN  |PARTITIONED|
+        project ([$$urls]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+          -- SORT_MERGE_EXCHANGE [$$30(ASC) ]  |PARTITIONED|
+            project ([$$urls, $$30]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+            -- STREAM_PROJECT  |PARTITIONED|
+              unnest $$urls <- scan-collection($$31) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+              -- UNNEST  |PARTITIONED|
+                project ([$$30, $$31]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                -- STREAM_PROJECT  |PARTITIONED|
+                  assign [$$31] <- [$$p.getField("entities").getField("urls")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                  -- ASSIGN  |PARTITIONED|
+                    exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      data-scan []<-[$$30, $$p] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]}}) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                      -- DATASOURCE_SCAN  |PARTITIONED|
+                        exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.009.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.009.adm
new file mode 100644
index 0000000000..0cfbf08886
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.009.adm
@@ -0,0 +1 @@
+2
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.010.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.010.plan
new file mode 100644
index 0000000000..88340c7b53
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.010.plan
@@ -0,0 +1,41 @@
+distribute result [$$50] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+-- DISTRIBUTE_RESULT  |UNPARTITIONED|
+  exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+  -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
+    aggregate [$$50] <- [agg-sql-sum($$54)] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+    -- AGGREGATE  |UNPARTITIONED|
+      exchange [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+      -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
+        aggregate [$$54] <- [agg-sql-count(1)] [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+        -- AGGREGATE  |PARTITIONED|
+          select ($$42) [cardinality: 2.1, op-cost: 0.0, total-cost: 2.1]
+          -- STREAM_SELECT  |PARTITIONED|
+            project ([$$42]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 2.1]
+            -- STREAM_PROJECT  |PARTITIONED|
+              subplan {
+                        aggregate [$$42] <- [empty-stream()] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- AGGREGATE  |LOCAL|
+                          select (not(if-missing-or-null(eq($$52, "string"), false))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- STREAM_SELECT  |LOCAL|
+                            assign [$$52] <- [$$ht.getField("display_url")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- ASSIGN  |LOCAL|
+                              unnest $$ht <- scan-collection($$51) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                              -- UNNEST  |LOCAL|
+                                nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                -- NESTED_TUPLE_SOURCE  |LOCAL|
+                     } [cardinality: 1000000.0, op-cost: 0.0, total-cost: 2.1]
+              -- SUBPLAN  |PARTITIONED|
+                project ([$$51]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 2.1]
+                -- STREAM_PROJECT  |PARTITIONED|
+                  assign [$$51] <- [$$p.getField("entities").getField("urls")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 2.1]
+                  -- ASSIGN  |PARTITIONED|
+                    project ([$$p]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 2.1]
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 2.1]
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        data-scan []<-[$$49, $$p] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]}}) [cardinality: 1000000.0, op-cost: 2.1, total-cost: 2.1]
+                        -- DATASOURCE_SCAN  |PARTITIONED|
+                          exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.011.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.011.adm
new file mode 100644
index 0000000000..15eecd22cf
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.011.adm
@@ -0,0 +1,2 @@
+1.1
+1.1
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.012.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.012.plan
new file mode 100644
index 0000000000..4f9517fa08
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/array-access-pushdown/array-access-pushdown.012.plan
@@ -0,0 +1,24 @@
+distribute result [$$19] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$19]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$19] <- [get-item(get-item(get-item($$25.getField("coordinates"), 0), 0), 0)] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+      -- ASSIGN  |PARTITIONED|
+        project ([$$25]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+          -- SORT_MERGE_EXCHANGE [$$21(ASC) ]  |PARTITIONED|
+            project ([$$25, $$21]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+            -- STREAM_PROJECT  |PARTITIONED|
+              assign [$$25] <- [$$p.getField("place").getField("bounding_box")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+              -- ASSIGN  |PARTITIONED|
+                exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                  data-scan []<-[$$21, $$p] <- test.ColumnDataset project ({place:{bounding_box:{coordinates:[[[any]]]}}}) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                  -- DATASOURCE_SCAN  |PARTITIONED|
+                    exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.003.adm
new file mode 100644
index 0000000000..7e235c5d1e
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.003.adm
@@ -0,0 +1,7 @@
+{ "id": 8, "age": 10 }
+{ "id": 9, "age": 20 }
+{ "id": 10, "age": 30 }
+{ "id": 11, "age": 40 }
+{ "id": 12, "age": 50 }
+{ "id": 13, "age": 60 }
+{ "id": 14, "age": 70 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.004.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.004.plan
new file mode 100644
index 0000000000..febeed7289
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.004.plan
@@ -0,0 +1,14 @@
+distribute result [$$p] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$p]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+      -- SORT_MERGE_EXCHANGE [$$14(ASC) ]  |PARTITIONED|
+        data-scan []<-[$$14, $$p] <- test.ColumnDataset1 [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+        -- DATASOURCE_SCAN  |PARTITIONED|
+          exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.005.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.005.adm
new file mode 100644
index 0000000000..88b69658ec
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.005.adm
@@ -0,0 +1,7 @@
+{ "p1": { "id": 8, "age": 10 }, "id": 8 }
+{ "p1": { "id": 9, "age": 20 }, "id": 9 }
+{ "p1": { "id": 10, "age": 30 }, "id": 10 }
+{ "p1": { "id": 11, "age": 40 }, "id": 11 }
+{ "p1": { "id": 12, "age": 50 }, "id": 12 }
+{ "p1": { "id": 13, "age": 60 }, "id": 13 }
+{ "p1": { "id": 14, "age": 70 }, "id": 14 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.006.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.006.plan
new file mode 100644
index 0000000000..2abd384585
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.006.plan
@@ -0,0 +1,40 @@
+distribute result [$$30] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$30]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$30] <- [{"p1": $$p1, "id": $$34}] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+      -- ASSIGN  |PARTITIONED|
+        exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+        -- SORT_MERGE_EXCHANGE [$$34(ASC) ]  |PARTITIONED|
+          order (ASC, $$34) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+          -- STABLE_SORT [$$34(ASC)]  |PARTITIONED|
+            exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+              project ([$$p1, $$34]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+              -- STREAM_PROJECT  |PARTITIONED|
+                exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                  join (eq($$33, $$34)) [cardinality: 1000000.0, op-cost: 2000000.0, total-cost: 6000000.0]
+                  -- HYBRID_HASH_JOIN [$$33][$$34]  |PARTITIONED|
+                    exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      data-scan []<-[$$33, $$p1] <- test.ColumnDataset1 [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                      -- DATASOURCE_SCAN  |PARTITIONED|
+                        exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                    exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      project ([$$34]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          data-scan []<-[$$34, $$p2] <- test.ColumnDataset2 project ({}) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                          -- DATASOURCE_SCAN  |PARTITIONED|
+                            exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.007.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.007.adm
new file mode 100644
index 0000000000..aa3f80116c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.007.adm
@@ -0,0 +1 @@
+{ "age": 10, "name": "William" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.008.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.008.plan
new file mode 100644
index 0000000000..0601e6918a
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.008.plan
@@ -0,0 +1,50 @@
+distribute result [$$31] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$31]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$31] <- [{"age": $$38, "name": $$39}] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+      -- ASSIGN  |PARTITIONED|
+        project ([$$38, $$39]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+          -- SORT_MERGE_EXCHANGE [$$34(ASC) ]  |PARTITIONED|
+            order (ASC, $$34) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+            -- STABLE_SORT [$$34(ASC)]  |PARTITIONED|
+              exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                project ([$$38, $$39, $$34]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+                -- STREAM_PROJECT  |PARTITIONED|
+                  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    join (eq($$33, $$34)) [cardinality: 1000000.0, op-cost: 2000000.0, total-cost: 6000000.0]
+                    -- HYBRID_HASH_JOIN [$$33][$$34]  |PARTITIONED|
+                      exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        project ([$$38, $$33]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                        -- STREAM_PROJECT  |PARTITIONED|
+                          assign [$$38] <- [$$p1.getField("age")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                          -- ASSIGN  |PARTITIONED|
+                            exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              data-scan []<-[$$33, $$p1] <- test.ColumnDataset1 project ({age:any}) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                              -- DATASOURCE_SCAN  |PARTITIONED|
+                                exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                      exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        project ([$$39, $$34]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                        -- STREAM_PROJECT  |PARTITIONED|
+                          assign [$$39] <- [$$p2.getField("name")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                          -- ASSIGN  |PARTITIONED|
+                            exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              data-scan []<-[$$34, $$p2] <- test.ColumnDataset3 project ({name:any}) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                              -- DATASOURCE_SCAN  |PARTITIONED|
+                                exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.009.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.009.adm
new file mode 100644
index 0000000000..a1ad24e843
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.009.adm
@@ -0,0 +1,2 @@
+{ "id": 1, "name": "string" }
+{ "id": 1, "name": "string" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.010.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.010.plan
new file mode 100644
index 0000000000..997f157f13
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.010.plan
@@ -0,0 +1,22 @@
+distribute result [$$18] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$18]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$18] <- [{"id": $$20.getField("id"), "name": $$20.getField("name")}] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+      -- ASSIGN  |PARTITIONED|
+        project ([$$20]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          assign [$$20] <- [$$p.getField("user")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+          -- ASSIGN  |PARTITIONED|
+            project ([$$p]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+            -- STREAM_PROJECT  |PARTITIONED|
+              exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+              -- SORT_MERGE_EXCHANGE [$$21(ASC) ]  |PARTITIONED|
+                data-scan []<-[$$21, $$p] <- test.ColumnDataset4 project ({user:{name:any,id:any}}) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                -- DATASOURCE_SCAN  |PARTITIONED|
+                  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.011.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.011.adm
new file mode 100644
index 0000000000..0cfbf08886
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.011.adm
@@ -0,0 +1 @@
+2
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.012.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.012.plan
new file mode 100644
index 0000000000..2b123c7768
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/field-access-pushdown/field-access-pushdown.012.plan
@@ -0,0 +1,18 @@
+distribute result [$$34] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+-- DISTRIBUTE_RESULT  |UNPARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
+    aggregate [$$34] <- [agg-sql-sum($$35)] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+    -- AGGREGATE  |UNPARTITIONED|
+      exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+      -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
+        aggregate [$$35] <- [agg-sql-count(1)] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+        -- AGGREGATE  |PARTITIONED|
+          exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            data-scan []<-[$$33, $$p] <- test.ColumnDataset4 project ({}) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+            -- DATASOURCE_SCAN  |PARTITIONED|
+              exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/heterogeneous-access-pushdown/heterogeneous-access-pushdown.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/heterogeneous-access-pushdown/heterogeneous-access-pushdown.003.adm
new file mode 100644
index 0000000000..1ebe99366f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/heterogeneous-access-pushdown/heterogeneous-access-pushdown.003.adm
@@ -0,0 +1,6 @@
+[ "1", "2" ]
+[ "3", "4" ]
+[ "5", "6" ]
+"7"
+"8"
+"9"
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/heterogeneous-access-pushdown/heterogeneous-access-pushdown.004.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/heterogeneous-access-pushdown/heterogeneous-access-pushdown.004.plan
new file mode 100644
index 0000000000..06f13d661b
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/heterogeneous-access-pushdown/heterogeneous-access-pushdown.004.plan
@@ -0,0 +1,22 @@
+distribute result [$$21] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$21]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$21] <- [switch-case(true, is-array($$23), array-star($$23).getField("text"), $$23.getField("text"))] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+      -- ASSIGN  |PARTITIONED|
+        project ([$$23]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          assign [$$23] <- [$$p.getField("arrayOrObject")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+          -- ASSIGN  |PARTITIONED|
+            project ([$$p]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+            -- STREAM_PROJECT  |PARTITIONED|
+              exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+              -- SORT_MERGE_EXCHANGE [$$24(ASC) ]  |PARTITIONED|
+                data-scan []<-[$$24, $$p] <- test.ColumnDataset project ({arrayOrObject:<[{text:any}],{text:any}>}) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                -- DATASOURCE_SCAN  |PARTITIONED|
+                  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                    empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.003.adm
new file mode 100644
index 0000000000..30908ffd56
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.003.adm
@@ -0,0 +1 @@
+{ "$1": 55, "$2": 55 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.004.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.004.plan
new file mode 100644
index 0000000000..9c7238f84d
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.004.plan
@@ -0,0 +1,40 @@
+distribute result [$$61] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+-- DISTRIBUTE_RESULT  |UNPARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |UNPARTITIONED|
+    project ([$$61]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+    -- STREAM_PROJECT  |UNPARTITIONED|
+      assign [$$61] <- [{"$1": $$66, "$2": $$67}] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+      -- ASSIGN  |UNPARTITIONED|
+        aggregate [$$66, $$67] <- [agg-global-sql-sum($$70), agg-global-sql-sum($$71)] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+        -- AGGREGATE  |UNPARTITIONED|
+          exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+          -- RANDOM_MERGE_EXCHANGE  |PARTITIONED|
+            aggregate [$$70, $$71] <- [agg-local-sql-sum($$54), agg-local-sql-sum($$59)] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+            -- AGGREGATE  |PARTITIONED|
+              project ([$$54, $$59]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+              -- STREAM_PROJECT  |PARTITIONED|
+                assign [$$59, $$54] <- [object-length($$p2), object-length($$p1)] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+                -- ASSIGN  |PARTITIONED|
+                  project ([$$p1, $$p2]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+                  -- STREAM_PROJECT  |PARTITIONED|
+                    exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 6000000.0]
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      join (eq($$63, $$62)) [cardinality: 1000000.0, op-cost: 2000000.0, total-cost: 6000000.0]
+                      -- HYBRID_HASH_JOIN [$$62][$$63]  |PARTITIONED|
+                        exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          data-scan []<-[$$62, $$p1] <- test.ColumnDataset [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                          -- DATASOURCE_SCAN  |PARTITIONED|
+                            exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                        exchange [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 2000000.0]
+                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                          data-scan []<-[$$63, $$p2] <- test.RowDataset [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                          -- DATASOURCE_SCAN  |PARTITIONED|
+                            exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.005.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.005.adm
new file mode 100644
index 0000000000..abac7989f4
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.005.adm
@@ -0,0 +1,2 @@
+{ "id": "0000000", "coordinates": { "coordinates": [ 1.1 ], "type": "string" }, "created_at": "string", "entities": { "urls": [ { "display_url": "string", "expanded_url": "string", "indices": [ 1 ], "url": "string" } ], "user_mentions": [ { "id": 1, "id_str": "string", "indices": [ 1 ], "name": "string", "screen_name": "string" } ] }, "favorite_count": 1, "favorited": true, "filter_level": "string", "geo": { "coordinates": [ 1.1 ], "type": "string" }, "id_str": "string", "in_reply_to_scr [...]
+{ "id": "11111111111111111111", "coordinates": { "coordinates": [ 1.1 ], "type": "string" }, "created_at": "string", "favorite_count": 1, "favorited": true, "filter_level": "string", "geo": { "coordinates": [ 1.1 ], "type": "string" }, "id_str": "string", "in_reply_to_screen_name": "string", "in_reply_to_status_id": 1, "in_reply_to_status_id_str": "string", "in_reply_to_user_id": 1, "in_reply_to_user_id_str": "string", "is_quote_status": true, "lang": "string", "place": { "bounding_box": [...]
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.006.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.006.plan
new file mode 100644
index 0000000000..12c302edc6
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.006.plan
@@ -0,0 +1,30 @@
+distribute result [$$p1] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$p1]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+      -- SORT_MERGE_EXCHANGE [$$16(ASC) ]  |PARTITIONED|
+        order (ASC, $$16) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+        -- STABLE_SORT [$$16(ASC)]  |PARTITIONED|
+          exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+            distinct ([$$p1]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+            -- PRE_SORTED_DISTINCT_BY  |PARTITIONED|
+              exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                order (ASC, $$p1) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                -- STABLE_SORT [$$p1(ASC)]  |PARTITIONED|
+                  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                  -- HASH_PARTITION_EXCHANGE [$$p1]  |PARTITIONED|
+                    select (neq($$16, "0")) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                    -- STREAM_SELECT  |PARTITIONED|
+                      exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        data-scan []<-[$$16, $$p1] <- test.ColumnDataset [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                        -- DATASOURCE_SCAN  |PARTITIONED|
+                          exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.007.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.007.adm
new file mode 100644
index 0000000000..91005a5309
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.007.adm
@@ -0,0 +1 @@
+{ "$1": 1, "text": "string" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.008.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.008.plan
new file mode 100644
index 0000000000..7e9a08ed8c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.008.plan
@@ -0,0 +1,52 @@
+distribute result [$$69] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$69]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$69] <- [{"text": $$text, "$1": $$73}] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+      -- ASSIGN  |PARTITIONED|
+        exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+        -- SORT_MERGE_EXCHANGE [$$text(ASC) ]  |PARTITIONED|
+          group by ([$$text := $$81]) decor ([]) {
+                    aggregate [$$73] <- [agg-global-sql-sum($$80)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                    -- AGGREGATE  |LOCAL|
+                      nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                      -- NESTED_TUPLE_SOURCE  |LOCAL|
+                 } [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+          -- SORT_GROUP_BY[$$81]  |PARTITIONED|
+            exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+            -- HASH_PARTITION_EXCHANGE [$$81]  |PARTITIONED|
+              group by ([$$81 := $$71]) decor ([]) {
+                        aggregate [$$80] <- [agg-local-sql-sum(sql-count($$75))] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- AGGREGATE  |LOCAL|
+                          nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- NESTED_TUPLE_SOURCE  |LOCAL|
+                     } [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+              -- SORT_GROUP_BY[$$71]  |PARTITIONED|
+                exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                  select (eq(lowercase($$71), "string")) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                  -- STREAM_SELECT  |PARTITIONED|
+                    project ([$$75, $$71]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      assign [$$71] <- [$$ht.getField("display_url")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                      -- ASSIGN  |PARTITIONED|
+                        unnest $$ht <- scan-collection($$75) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                        -- UNNEST  |PARTITIONED|
+                          project ([$$75]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            assign [$$75] <- [$$p1.getField("entities").getField("urls")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                            -- ASSIGN  |PARTITIONED|
+                              project ([$$p1]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                              -- STREAM_PROJECT  |PARTITIONED|
+                                select (neq($$72, "0")) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                -- STREAM_SELECT  |PARTITIONED|
+                                  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                    data-scan []<-[$$72, $$p1] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]}}) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                                    -- DATASOURCE_SCAN  |PARTITIONED|
+                                      exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                        empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.009.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.009.adm
new file mode 100644
index 0000000000..2ffd7a0e13
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.009.adm
@@ -0,0 +1 @@
+{ "text": "string", "$1": 1 }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.010.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.010.plan
new file mode 100644
index 0000000000..ba4a86cd63
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.010.plan
@@ -0,0 +1,54 @@
+distribute result [$$68] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$68]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$68] <- [{"text": $$text, "$1": $$72}] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+      -- ASSIGN  |PARTITIONED|
+        exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+        -- SORT_MERGE_EXCHANGE [$$text(ASC) ]  |PARTITIONED|
+          group by ([$$text := $$79]) decor ([]) {
+                    aggregate [$$72] <- [agg-global-sql-sum($$78)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                    -- AGGREGATE  |LOCAL|
+                      nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                      -- NESTED_TUPLE_SOURCE  |LOCAL|
+                 } [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+          -- SORT_GROUP_BY[$$79]  |PARTITIONED|
+            exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+            -- HASH_PARTITION_EXCHANGE [$$79]  |PARTITIONED|
+              group by ([$$79 := $$70]) decor ([]) {
+                        aggregate [$$78] <- [agg-local-sql-sum(sql-sum($$75))] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- AGGREGATE  |LOCAL|
+                          nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- NESTED_TUPLE_SOURCE  |LOCAL|
+                     } [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+              -- SORT_GROUP_BY[$$70]  |PARTITIONED|
+                exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                  select (eq(lowercase($$70), "string")) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                  -- STREAM_SELECT  |PARTITIONED|
+                    project ([$$75, $$70]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                    -- STREAM_PROJECT  |PARTITIONED|
+                      assign [$$75, $$70] <- [$$ht.getField("indices"), $$ht.getField("display_url")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                      -- ASSIGN  |PARTITIONED|
+                        project ([$$ht]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                        -- STREAM_PROJECT  |PARTITIONED|
+                          unnest $$ht <- scan-collection($$74) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                          -- UNNEST  |PARTITIONED|
+                            project ([$$74]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                            -- STREAM_PROJECT  |PARTITIONED|
+                              assign [$$74] <- [$$p1.getField("entities").getField("urls")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                              -- ASSIGN  |PARTITIONED|
+                                project ([$$p1]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                                -- STREAM_PROJECT  |PARTITIONED|
+                                  select (neq($$71, "0")) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                  -- STREAM_SELECT  |PARTITIONED|
+                                    exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                      data-scan []<-[$$71, $$p1] <- test.ColumnDataset project ({entities:{urls:[{display_url:any,indices:any}]}}) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                                      -- DATASOURCE_SCAN  |PARTITIONED|
+                                        exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                          -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.011.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.011.adm
new file mode 100644
index 0000000000..41c14f5712
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.011.adm
@@ -0,0 +1 @@
+{ "display_url": "string" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.012.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.012.plan
new file mode 100644
index 0000000000..9e4e7f137c
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.012.plan
@@ -0,0 +1,30 @@
+distribute result [$$22] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$22]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$22] <- [{"display_url": $$27}] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+      -- ASSIGN  |PARTITIONED|
+        project ([$$27]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+        -- STREAM_PROJECT  |PARTITIONED|
+          exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+          -- SORT_MERGE_EXCHANGE [$$25(ASC) ]  |PARTITIONED|
+            project ([$$27, $$25]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+            -- STREAM_PROJECT  |PARTITIONED|
+              assign [$$27] <- [get-item($$24, 0).getField("display_url")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+              -- ASSIGN  |PARTITIONED|
+                select (eq(sql-count($$24), 1)) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                -- STREAM_SELECT  |PARTITIONED|
+                  project ([$$25, $$24]) [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                  -- STREAM_PROJECT  |PARTITIONED|
+                    assign [$$24] <- [$$p.getField("entities").getField("urls")] [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                    -- ASSIGN  |PARTITIONED|
+                      exchange [cardinality: 1000000.0, op-cost: 0.0, total-cost: 1000000.0]
+                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                        data-scan []<-[$$25, $$p] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]}}) [cardinality: 1000000.0, op-cost: 1000000.0, total-cost: 1000000.0]
+                        -- DATASOURCE_SCAN  |PARTITIONED|
+                          exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                            empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.013.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.013.adm
new file mode 100644
index 0000000000..3b1c5982c2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.013.adm
@@ -0,0 +1 @@
+{ "cnt": 1, "uname": "string" }
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.014.plan b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.014.plan
new file mode 100644
index 0000000000..f87b52f8fe
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/pushdown/other-pushdowns/other-pushdowns.014.plan
@@ -0,0 +1,111 @@
+distribute result [$$101] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+-- DISTRIBUTE_RESULT  |PARTITIONED|
+  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+    project ([$$101]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+    -- STREAM_PROJECT  |PARTITIONED|
+      assign [$$101] <- [{"uname": $$uname, "cnt": $$105}] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+      -- ASSIGN  |PARTITIONED|
+        exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+        -- SORT_MERGE_EXCHANGE [$$105(DESC), $$uname(ASC) ]  |PARTITIONED|
+          order (DESC, $$105) (ASC, $$uname) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+          -- STABLE_SORT [$$105(DESC), $$uname(ASC)]  |PARTITIONED|
+            exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+              group by ([$$uname := $$116]) decor ([]) {
+                        aggregate [$$105] <- [agg-sql-sum($$115)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- AGGREGATE  |LOCAL|
+                          nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- NESTED_TUPLE_SOURCE  |LOCAL|
+                     } [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+              -- SORT_GROUP_BY[$$116]  |PARTITIONED|
+                exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                -- HASH_PARTITION_EXCHANGE [$$116]  |PARTITIONED|
+                  group by ([$$116 := $$102]) decor ([]) {
+                            aggregate [$$115] <- [agg-sql-count(1)] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- AGGREGATE  |LOCAL|
+                              nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                              -- NESTED_TUPLE_SOURCE  |LOCAL|
+                         } [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                  -- SORT_GROUP_BY[$$102]  |PARTITIONED|
+                    exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                      project ([$$102]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                      -- STREAM_PROJECT  |PARTITIONED|
+                        select ($$92) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                        -- STREAM_SELECT  |PARTITIONED|
+                          project ([$$92, $$102]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                          -- STREAM_PROJECT  |PARTITIONED|
+                            exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                              group by ([$$114 := $$112]) decor ([$$102]) {
+                                        aggregate [$$92] <- [non-empty-stream()] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                        -- AGGREGATE  |LOCAL|
+                                          select (not(is-missing($$113))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                          -- STREAM_SELECT  |LOCAL|
+                                            nested tuple source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                            -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                     } [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                              -- PRE_CLUSTERED_GROUP_BY[$$112]  |PARTITIONED|
+                                exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                  order (ASC, $$112) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                  -- STABLE_SORT [$$112(ASC)]  |PARTITIONED|
+                                    exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                    -- HASH_PARTITION_EXCHANGE [$$112]  |PARTITIONED|
+                                      project ([$$102, $$113, $$112]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                      -- STREAM_PROJECT  |PARTITIONED|
+                                        exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                          left outer join (eq($$106, $$88)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                          -- HYBRID_HASH_JOIN [$$106][$$88]  |PARTITIONED|
+                                            exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                            -- HASH_PARTITION_EXCHANGE [$$106]  |PARTITIONED|
+                                              running-aggregate [$$112] <- [create-query-uid()] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                              -- RUNNING_AGGREGATE  |PARTITIONED|
+                                                project ([$$102, $$106]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                -- STREAM_PROJECT  |PARTITIONED|
+                                                  assign [$$106] <- [$$ht1.getField("display_url")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                  -- ASSIGN  |PARTITIONED|
+                                                    project ([$$102, $$ht1]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                    -- STREAM_PROJECT  |PARTITIONED|
+                                                      unnest $$ht1 <- scan-collection($$107) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                      -- UNNEST  |PARTITIONED|
+                                                        project ([$$107, $$102]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                        -- STREAM_PROJECT  |PARTITIONED|
+                                                          assign [$$107, $$102] <- [$$p1.getField("entities").getField("urls"), $$p1.getField("user").getField("name")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                          -- ASSIGN  |PARTITIONED|
+                                                            project ([$$p1]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                            -- STREAM_PROJECT  |PARTITIONED|
+                                                              exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                data-scan []<-[$$103, $$p1] <- test.ColumnDataset project ({entities:{urls:[{display_url:any}]},user:{name:any}}) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                  exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                    empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                            exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                            -- HASH_PARTITION_EXCHANGE [$$88]  |PARTITIONED|
+                                              project ([$$113, $$88]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                              -- STREAM_PROJECT  |PARTITIONED|
+                                                assign [$$113, $$88] <- [true, $$ht2.getField("display_url")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                -- ASSIGN  |PARTITIONED|
+                                                  project ([$$ht2]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                  -- STREAM_PROJECT  |PARTITIONED|
+                                                    unnest $$ht2 <- scan-collection($$108) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                    -- UNNEST  |PARTITIONED|
+                                                      project ([$$108]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                      -- STREAM_PROJECT  |PARTITIONED|
+                                                        assign [$$108] <- [$$p2.getField("entities").getField("urls")] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                        -- ASSIGN  |PARTITIONED|
+                                                          project ([$$p2]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                          -- STREAM_PROJECT  |PARTITIONED|
+                                                            exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                              data-scan []<-[$$104, $$p2] <- test.RowDataset [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                              -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                exchange [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                  empty-tuple-source [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0]
+                                                                  -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/select-count-one-field/select-count-one-field.003.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/select-count-one-field/select-count-one-field.003.adm
new file mode 100644
index 0000000000..d8263ee986
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/select-count-one-field/select-count-one-field.003.adm
@@ -0,0 +1 @@
+2
\ No newline at end of file
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/select-count-one-field/select-count-one-field.004.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/select-count-one-field/select-count-one-field.004.adm
new file mode 100644
index 0000000000..d8263ee986
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/select-count-one-field/select-count-one-field.004.adm
@@ -0,0 +1 @@
+2
\ No newline at end of file
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/upsert.003.adm
new file mode 100644
index 0000000000..a0fdba0624
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.003.adm
@@ -0,0 +1,3 @@
+{ "id": 1, "val": "1", "array": [ 10, 20, 30 ] }
+{ "id": 2, "val": "2", "array": [ 40, 50, 60 ] }
+{ "id": 3, "val": "3", "array": [ 70, 80, 90 ] }
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/upsert.004.adm
new file mode 100644
index 0000000000..ea6115b413
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.004.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"ColumnType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0/ColumnDataset"}]}
\ No newline at end of file
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/upsert.005.adm
new file mode 100644
index 0000000000..a0fdba0624
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.005.adm
@@ -0,0 +1,3 @@
+{ "id": 1, "val": "1", "array": [ 10, 20, 30 ] }
+{ "id": 2, "val": "2", "array": [ 40, 50, 60 ] }
+{ "id": 3, "val": "3", "array": [ 70, 80, 90 ] }
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/upsert.007.adm
new file mode 100644
index 0000000000..282e4b71b2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.007.adm
@@ -0,0 +1,3 @@
+{ "id": 1, "val": "1", "array": [ 10, 20, 30 ] }
+{ "id": 2, "val": "2000", "array": [ 400, 500, 600 ] }
+{ "id": 3, "val": "3", "array": [ 70, 80, 90 ] }
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/upsert.008.adm
new file mode 100644
index 0000000000..ea6115b413
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.008.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"ColumnType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0/ColumnDataset"}]}
\ No newline at end of file
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/upsert.009.adm
new file mode 100644
index 0000000000..282e4b71b2
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.009.adm
@@ -0,0 +1,3 @@
+{ "id": 1, "val": "1", "array": [ 10, 20, 30 ] }
+{ "id": 2, "val": "2000", "array": [ 400, 500, 600 ] }
+{ "id": 3, "val": "3", "array": [ 70, 80, 90 ] }
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/upsert.011.adm
new file mode 100644
index 0000000000..ad8a3ada9f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.011.adm
@@ -0,0 +1,4 @@
+{ "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": 4, "val": "-4", "array": [ -100, -200, -300 ] }
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/upsert.012.adm
new file mode 100644
index 0000000000..ea6115b413
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.012.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"ColumnType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0/ColumnDataset"}]}
\ No newline at end of file
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/upsert.013.adm
new file mode 100644
index 0000000000..ad8a3ada9f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.013.adm
@@ -0,0 +1,4 @@
+{ "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": 4, "val": "-4", "array": [ -100, -200, -300 ] }
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/upsert.015.adm
new file mode 100644
index 0000000000..ea6115b413
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.015.adm
@@ -0,0 +1 @@
+{"keys":"id","type":{"type":"org.apache.asterix.om.types.ARecordType","name":"ColumnType","open":true,"fields":[{"id":{"type":"AInt64"}}]},"splits":[{"ip":"127.0.0.1","path":"storage/partition_0/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_1/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_2/test/ColumnDataset/0/ColumnDataset"},{"ip":"127.0.0.1","path":"storage/partition_3/test/ColumnDataset/0/ColumnDataset"}]}
\ No newline at end of file
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/upsert.016.adm
new file mode 100644
index 0000000000..ad8a3ada9f
--- /dev/null
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/upsert/upsert.016.adm
@@ -0,0 +1,4 @@
+{ "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": 4, "val": "-4", "array": [ -100, -200, -300 ] }
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 e0a8fa6584..98a11cec0b 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
@@ -16042,4 +16042,119 @@
       </compilation-unit>
     </test-case>
   </test-group>
+  <test-group name="column">
+    <test-case FilePath="column">
+      <compilation-unit name="assembly">
+        <output-dir compare="Text">assembly</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="delete/001">
+        <output-dir compare="Text">delete/001</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="delete/002">
+        <output-dir compare="Text">delete/002</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="meta/meta_after_gby">
+        <output-dir compare="Text">meta/meta_after_gby</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="meta/meta_in_with_clause">
+        <output-dir compare="Text">meta/meta_in_with_clause</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="meta/resolving_pk_with_meta">
+        <output-dir compare="Text">meta/resolving_pk_with_meta</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="missing-null-values/001">
+        <output-dir compare="Text">missing-null-values/001</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="missing-null-values/002">
+        <output-dir compare="Text">missing-null-values/002</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="missing-null-values/003">
+        <output-dir compare="Text">missing-null-values/003</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="missing-null-values/003">
+        <output-dir compare="Text">missing-null-values/003</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="missing-null-values/005">
+        <output-dir compare="Text">missing-null-values/005</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="missing-null-values/006">
+        <output-dir compare="Text">missing-null-values/006</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="pushdown/array-access-pushdown">
+        <output-dir compare="Text">pushdown/array-access-pushdown</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="pushdown/field-access-pushdown">
+        <output-dir compare="Text">pushdown/field-access-pushdown</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="pushdown/heterogeneous-access-pushdown">
+        <output-dir compare="Text">pushdown/heterogeneous-access-pushdown</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="pushdown/other-pushdowns">
+        <output-dir compare="Text">pushdown/other-pushdowns</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="select-count-one-field">
+        <output-dir compare="Text">select-count-one-field</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="upsert">
+        <output-dir compare="Text">upsert</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column" check-warnings="true">
+      <compilation-unit name="filter/001">
+        <output-dir compare="Text">filter/001</output-dir>
+        <expected-warn>ASX0051: Incomparable input types: string and bigint (in line 30, at column 23)</expected-warn>
+        <expected-warn>ASX0051: Incomparable input types: bigint and string (in line 29, at column 38)</expected-warn>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column" check-warnings="true">
+      <compilation-unit name="filter/002">
+        <output-dir compare="Text">filter/002</output-dir>
+        <expected-warn>ASX0051: Incomparable input types: string and bigint (in line 29, at column 23)</expected-warn>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="filter/003">
+        <output-dir compare="Text">filter/003</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="column">
+      <compilation-unit name="big-object">
+        <output-dir compare="Text">big-object</output-dir>
+      </compilation-unit>
+    </test-case>
+  </test-group>
 </test-suite>
diff --git a/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/assembler/value/DummyValueGetter.java b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/assembler/value/DummyValueGetter.java
new file mode 100644
index 0000000000..ba8328e6ae
--- /dev/null
+++ b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/assembler/value/DummyValueGetter.java
@@ -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.
+ */
+package org.apache.asterix.column.assembler.value;
+
+import org.apache.asterix.column.values.IColumnValuesReader;
+import org.apache.hyracks.data.std.api.IValueReference;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+
+class DummyValueGetter implements IValueGetter {
+    private final ArrayBackedValueStorage storage;
+
+    DummyValueGetter() {
+        storage = new ArrayBackedValueStorage();
+    }
+
+    @Override
+    public IValueReference getValue(IColumnValuesReader reader) {
+        IValueReference value = reader.getBytes();
+        storage.setSize(1 + value.getLength());
+        storage.getByteArray()[0] = reader.getTypeTag().serialize();
+        System.arraycopy(value.getByteArray(), value.getStartOffset(), storage.getByteArray(), 1, value.getLength());
+        return storage;
+    }
+}
diff --git a/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/assembler/value/DummyValueGetterFactory.java b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/assembler/value/DummyValueGetterFactory.java
new file mode 100644
index 0000000000..33d7a566c1
--- /dev/null
+++ b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/assembler/value/DummyValueGetterFactory.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.asterix.column.assembler.value;
+
+import org.apache.asterix.om.types.ATypeTag;
+
+public class DummyValueGetterFactory implements IValueGetterFactory {
+    public static final IValueGetterFactory INSTANCE = new DummyValueGetterFactory();
+
+    private DummyValueGetterFactory() {
+    }
+
+    @Override
+    public IValueGetter createValueGetter(ATypeTag typeTag) {
+        return new DummyValueGetter();
+    }
+}
diff --git a/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/buffer/DummyBufferCache.java b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/buffer/DummyBufferCache.java
new file mode 100644
index 0000000000..f23c4a1db4
--- /dev/null
+++ b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/buffer/DummyBufferCache.java
@@ -0,0 +1,79 @@
+/*
+ * 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.common.buffer;
+
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.List;
+
+public class DummyBufferCache {
+    private final int pageSize;
+    private final List<List<DummyPage>> buffers;
+
+    public DummyBufferCache(int pageSize) {
+        this.pageSize = pageSize;
+        buffers = new ArrayList<>();
+    }
+
+    public void clear() {
+        buffers.clear();
+    }
+
+    public int createFile() {
+        int fileId = buffers.size();
+        buffers.add(new ArrayList<>());
+        return fileId;
+    }
+
+    public DummyPage allocate(int fileId) {
+        ByteBuffer buffer = ByteBuffer.allocate(pageSize);
+        List<DummyPage> filePages = buffers.get(fileId);
+        DummyPage page = new DummyPage(buffer, fileId, filePages.size());
+        filePages.add(page);
+        return page;
+    }
+
+    public int getNumberOfBuffers(int fileId) {
+        return buffers.get(fileId).size();
+    }
+
+    public ByteBuffer allocateTemporary() {
+        return ByteBuffer.allocate(pageSize);
+    }
+
+    public DummyPage getBuffer(int fileId, int pageId) {
+        return buffers.get(fileId).get(pageId);
+    }
+
+    public List<DummyPage> duplicate(int fileId, List<DummyPage> pageZeros) {
+        int duplicateFileId = buffers.size();
+        List<DummyPage> filePages = buffers.get(fileId);
+        List<DummyPage> duplicatePages = new ArrayList<>();
+        for (DummyPage page : filePages) {
+            duplicatePages.add(page.duplicate(duplicateFileId));
+        }
+
+        List<DummyPage> duplicatePageZeros = new ArrayList<>();
+        for (DummyPage pageZero : pageZeros) {
+            duplicatePageZeros.add(duplicatePages.get(pageZero.getPageId()));
+        }
+        buffers.add(duplicatePages);
+        return duplicatePageZeros;
+    }
+}
diff --git a/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/buffer/DummyBytesInputStream.java b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/buffer/DummyBytesInputStream.java
new file mode 100644
index 0000000000..0fc8a2688b
--- /dev/null
+++ b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/buffer/DummyBytesInputStream.java
@@ -0,0 +1,100 @@
+/*
+ * 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.common.buffer;
+
+import java.io.EOFException;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+
+import org.apache.asterix.column.bytes.stream.in.AbstractBytesInputStream;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IPointable;
+import org.apache.hyracks.storage.am.lsm.btree.column.api.IColumnBufferProvider;
+
+public class DummyBytesInputStream extends AbstractBytesInputStream {
+    public static final AbstractBytesInputStream INSTANCE = new DummyBytesInputStream();
+
+    private DummyBytesInputStream() {
+    }
+
+    @Override
+    public void reset(IColumnBufferProvider bufferProvider) throws HyracksDataException {
+
+    }
+
+    @Override
+    public void resetAt(int bytesToSkip, AbstractBytesInputStream stream) throws IOException {
+
+    }
+
+    @Override
+    protected void addBuffer(ByteBuffer buffer) {
+
+    }
+
+    @Override
+    public void read(IPointable pointable, int length) throws EOFException {
+
+    }
+
+    @Override
+    public int read() throws IOException {
+        return 0;
+    }
+
+    @Override
+    public int read(byte[] bytes, int offset, int length) throws IOException {
+        return 0;
+    }
+
+    @Override
+    public long skip(long n) {
+        return 0;
+    }
+
+    @Override
+    public int read(ByteBuffer out) {
+        return 0;
+    }
+
+    @Override
+    public AbstractBytesInputStream remainingStream() throws EOFException {
+        return null;
+    }
+
+    @Override
+    public AbstractBytesInputStream sliceStream(int length) throws EOFException {
+        return null;
+    }
+
+    @Override
+    public void mark(int readLimit) {
+
+    }
+
+    @Override
+    public void reset() throws IOException {
+
+    }
+
+    @Override
+    public int available() {
+        return 0;
+    }
+}
diff --git a/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/buffer/DummyPage.java b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/buffer/DummyPage.java
new file mode 100644
index 0000000000..05d09259b4
--- /dev/null
+++ b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/buffer/DummyPage.java
@@ -0,0 +1,111 @@
+/*
+ * 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.common.buffer;
+
+import java.nio.ByteBuffer;
+
+import org.apache.hyracks.storage.common.buffercache.CachedPage;
+import org.apache.hyracks.storage.common.file.BufferedFileHandle;
+
+public class DummyPage extends CachedPage {
+    private final ByteBuffer buffer;
+    private final int fileId;
+    private final int pageId;
+    private final long dpid;
+
+    DummyPage(ByteBuffer buffer, int fileId, int pageId) {
+        this.buffer = buffer;
+        this.fileId = fileId;
+        this.pageId = pageId;
+        this.dpid = BufferedFileHandle.getDiskPageId(fileId, pageId);
+    }
+
+    @Override
+    public ByteBuffer getBuffer() {
+        return buffer;
+    }
+
+    public int getFileId() {
+        return fileId;
+    }
+
+    public int getPageId() {
+        return pageId;
+    }
+
+    DummyPage duplicate(int fileId) {
+        ByteBuffer duplicate = buffer.duplicate();
+        return new DummyPage(duplicate, fileId, pageId);
+    }
+
+    @Override
+    public long getDiskPageId() {
+        return dpid;
+    }
+
+    /*
+     * **********************************************************
+     *  Not used
+     * **********************************************************
+     */
+    @Override
+    public void acquireReadLatch() {
+
+    }
+
+    @Override
+    public void releaseReadLatch() {
+
+    }
+
+    @Override
+    public void acquireWriteLatch() {
+
+    }
+
+    @Override
+    public void releaseWriteLatch(boolean markDirty) {
+
+    }
+
+    @Override
+    public boolean confiscated() {
+        return false;
+    }
+
+    @Override
+    public int getPageSize() {
+        return 0;
+    }
+
+    @Override
+    public int getFrameSizeMultiplier() {
+        return 0;
+    }
+
+    @Override
+    public void setDiskPageId(long dpid) {
+
+    }
+
+    @Override
+    public boolean isLargePage() {
+        return false;
+    }
+}
diff --git a/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/buffer/NoOpWriteMultiPageOp.java b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/buffer/NoOpWriteMultiPageOp.java
new file mode 100644
index 0000000000..5c929c189e
--- /dev/null
+++ b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/buffer/NoOpWriteMultiPageOp.java
@@ -0,0 +1,51 @@
+/*
+ * 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.common.buffer;
+
+import java.nio.ByteBuffer;
+
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.am.lsm.btree.column.api.IColumnWriteMultiPageOp;
+
+public class NoOpWriteMultiPageOp implements IColumnWriteMultiPageOp {
+    public static final IColumnWriteMultiPageOp INSTANCE = new NoOpWriteMultiPageOp();
+
+    private NoOpWriteMultiPageOp() {
+    }
+
+    @Override
+    public ByteBuffer confiscatePersistent() throws HyracksDataException {
+        return null;
+    }
+
+    @Override
+    public ByteBuffer confiscateTemporary() throws HyracksDataException {
+        return null;
+    }
+
+    @Override
+    public void persist() throws HyracksDataException {
+
+    }
+
+    @Override
+    public int getNumberOfPersistentBuffers() {
+        return 0;
+    }
+}
diff --git a/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/buffer/TestReadMultiPageOp.java b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/buffer/TestReadMultiPageOp.java
new file mode 100644
index 0000000000..8effe68b47
--- /dev/null
+++ b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/buffer/TestReadMultiPageOp.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.common.buffer;
+
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.storage.am.lsm.btree.column.api.IColumnReadMultiPageOp;
+import org.apache.hyracks.storage.common.buffercache.ICachedPage;
+
+public class TestReadMultiPageOp implements IColumnReadMultiPageOp {
+    private final int fileId;
+    private final DummyBufferCache dummyBufferCache;
+    private final int pageSize;
+
+    public TestReadMultiPageOp(int fileId, DummyBufferCache dummyBufferCache, int pageSize) {
+        this.fileId = fileId;
+        this.dummyBufferCache = dummyBufferCache;
+        this.pageSize = pageSize;
+    }
+
+    @Override
+    public ICachedPage pin(int pageId) throws HyracksDataException {
+        return dummyBufferCache.getBuffer(fileId, pageId);
+    }
+
+    @Override
+    public void unpin(ICachedPage page) throws HyracksDataException {
+        //noop
+    }
+
+    @Override
+    public int getPageSize() {
+        return pageSize;
+    }
+}
diff --git a/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/buffer/TestWriteMultiPageOp.java b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/buffer/TestWriteMultiPageOp.java
new file mode 100644
index 0000000000..8e0174041d
--- /dev/null
+++ b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/buffer/TestWriteMultiPageOp.java
@@ -0,0 +1,53 @@
+/*
+ * 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.common.buffer;
+
+import java.nio.ByteBuffer;
+
+import org.apache.hyracks.storage.am.lsm.btree.column.api.IColumnWriteMultiPageOp;
+
+public class TestWriteMultiPageOp implements IColumnWriteMultiPageOp {
+    private final int fileId;
+    private final DummyBufferCache dummyBufferCache;
+
+    public TestWriteMultiPageOp(DummyBufferCache dummyBufferCache, int fileId) {
+        this.dummyBufferCache = dummyBufferCache;
+        this.fileId = fileId;
+    }
+
+    @Override
+    public ByteBuffer confiscatePersistent() {
+        return dummyBufferCache.allocate(fileId).getBuffer();
+    }
+
+    @Override
+    public ByteBuffer confiscateTemporary() {
+        return dummyBufferCache.allocateTemporary();
+    }
+
+    @Override
+    public void persist() {
+        //NoOp
+    }
+
+    @Override
+    public int getNumberOfPersistentBuffers() {
+        return dummyBufferCache.getNumberOfBuffers(fileId);
+    }
+}
diff --git a/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/row/DummyLSMBTreeTupleReference.java b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/row/DummyLSMBTreeTupleReference.java
new file mode 100644
index 0000000000..137208d32c
--- /dev/null
+++ b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/row/DummyLSMBTreeTupleReference.java
@@ -0,0 +1,74 @@
+/*
+ * 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.common.row;
+
+import org.apache.hyracks.api.dataflow.value.ITypeTraits;
+import org.apache.hyracks.data.std.api.IValueReference;
+import org.apache.hyracks.data.std.primitive.FixedLengthTypeTrait;
+import org.apache.hyracks.data.std.primitive.VarLengthTypeTrait;
+import org.apache.hyracks.storage.am.lsm.btree.tuples.LSMBTreeTupleReference;
+
+public class DummyLSMBTreeTupleReference extends LSMBTreeTupleReference {
+    private static final ITypeTraits[] TYPE_TRAITS;
+    private IValueReference data;
+
+    static {
+        TYPE_TRAITS = new ITypeTraits[2];
+        TYPE_TRAITS[0] = new FixedLengthTypeTrait(0);
+        TYPE_TRAITS[1] = VarLengthTypeTrait.INSTANCE;
+    }
+
+    public DummyLSMBTreeTupleReference() {
+        super(TYPE_TRAITS, 1, false, null);
+    }
+
+    public void set(IValueReference data) {
+        this.data = data;
+    }
+
+    @Override
+    public void setFieldCount(int fieldCount) {
+        //NoOp
+    }
+
+    @Override
+    public int getFieldCount() {
+        return 2;
+    }
+
+    @Override
+    public byte[] getFieldData(int fIdx) {
+        return data.getByteArray();
+    }
+
+    @Override
+    public int getFieldStart(int fIdx) {
+        return data.getStartOffset();
+    }
+
+    @Override
+    public int getFieldLength(int fIdx) {
+        return data.getLength();
+    }
+
+    @Override
+    public boolean isAntimatter() {
+        return false;
+    }
+}
diff --git a/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/row/NoOpRowTupleWriter.java b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/row/NoOpRowTupleWriter.java
new file mode 100644
index 0000000000..1ec3fc7d43
--- /dev/null
+++ b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/row/NoOpRowTupleWriter.java
@@ -0,0 +1,63 @@
+/*
+ * 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.common.row;
+
+import java.nio.ByteBuffer;
+
+import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
+import org.apache.hyracks.storage.am.common.api.ITreeIndexTupleReference;
+import org.apache.hyracks.storage.am.common.api.ITreeIndexTupleWriter;
+
+public class NoOpRowTupleWriter implements ITreeIndexTupleWriter {
+
+    @Override
+    public int writeTuple(ITupleReference tuple, ByteBuffer targetBuf, int targetOff) {
+        return 0;
+    }
+
+    @Override
+    public int writeTuple(ITupleReference tuple, byte[] targetBuf, int targetOff) {
+        return 0;
+    }
+
+    @Override
+    public int bytesRequired(ITupleReference tuple) {
+        return 0;
+    }
+
+    @Override
+    public int writeTupleFields(ITupleReference tuple, int startField, int numFields, byte[] targetBuf, int targetOff) {
+        return 0;
+    }
+
+    @Override
+    public int bytesRequired(ITupleReference tuple, int startField, int numFields) {
+        return 0;
+    }
+
+    @Override
+    public ITreeIndexTupleReference createTupleReference() {
+        return null;
+    }
+
+    @Override
+    public int getCopySpaceRequired(ITupleReference tuple) {
+        return 0;
+    }
+}
diff --git a/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/test/TestBase.java b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/test/TestBase.java
new file mode 100644
index 0000000000..28571b2609
--- /dev/null
+++ b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/test/TestBase.java
@@ -0,0 +1,131 @@
+/*
+ * 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.common.test;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
+
+import org.apache.asterix.external.parser.JSONDataParser;
+import org.apache.asterix.om.pointables.base.DefaultOpenFieldType;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.util.IoUtil;
+
+import com.fasterxml.jackson.core.JsonFactory;
+
+public abstract class TestBase {
+    public static final File OUTPUT_PATH;
+    public static final File DATA_PATH;
+
+    private static final File TESTS;
+    private static final File RESULT_PATH;
+    private static final Map<Class<?>, TestPath> TEST_PATH_MAP;
+
+    protected final TestCase testCase;
+    protected final JSONDataParser parser;
+
+    static {
+        TEST_PATH_MAP = new HashMap<>();
+
+        ClassLoader classLoader = TestBase.class.getClassLoader();
+        OUTPUT_PATH = new File("target", "result");
+        TESTS = new File(Objects.requireNonNull(classLoader.getResource("only.txt")).getPath());
+        DATA_PATH = new File(Objects.requireNonNull(classLoader.getResource("data")).getPath());
+        RESULT_PATH = new File(Objects.requireNonNull(classLoader.getResource("result")).getPath());
+    }
+
+    protected TestBase(TestCase testCase) throws HyracksDataException {
+        this.testCase = testCase;
+        JsonFactory jsonFactory = new JsonFactory();
+        parser = new JSONDataParser(DefaultOpenFieldType.NESTED_OPEN_RECORD_TYPE, jsonFactory);
+    }
+
+    protected void prepareParser(File testFile) throws IOException {
+        //Prepare parser
+        FileInputStream inputStream = new FileInputStream(testFile);
+        parser.reset(inputStream);
+    }
+
+    protected static void setup(Class<?> clazz) throws IOException {
+        TestPath path = TEST_PATH_MAP.get(clazz);
+        if (!OUTPUT_PATH.exists()) {
+            Files.createDirectory(Paths.get(OUTPUT_PATH.toURI()));
+        }
+        if (path.outputPath.exists()) {
+            IoUtil.delete(path.outputPath);
+        }
+        Files.createDirectory(Paths.get(path.outputPath.toURI()));
+    }
+
+    protected static Collection<Object[]> initTests(Class<?> clazz, String testName) throws Exception {
+        TestPath path = TEST_PATH_MAP.computeIfAbsent(clazz,
+                k -> new TestPath(new File(OUTPUT_PATH, testName), new File(RESULT_PATH, testName)));
+        Set<String> only = getOnly();
+        List<File> testFiles = listFiles(DATA_PATH, only);
+        List<File> resultFiles = listFiles(path.resultPath, only);
+
+        List<Object[]> testCases = new ArrayList<>();
+        for (int i = 0; i < testFiles.size(); i++) {
+            Object[] testCase = { new TestCase(testFiles.get(i), resultFiles.get(i), path.outputPath) };
+            testCases.add(testCase);
+        }
+        return testCases;
+    }
+
+    public static List<File> listFiles(File path) throws IOException {
+        return listFiles(path, Collections.emptySet());
+    }
+
+    private static List<File> listFiles(File path, Set<String> only) throws IOException {
+        Predicate<File> predicate = f -> only.isEmpty() || only.contains(f.getName().split("\\.")[0]);
+        return Files.list(Paths.get(path.toURI())).map(Path::toFile).filter(predicate).sorted(File::compareTo)
+                .collect(Collectors.toList());
+    }
+
+    private static Set<String> getOnly() throws FileNotFoundException {
+        BufferedReader reader = new BufferedReader(new FileReader(TESTS));
+        return reader.lines().filter(l -> !l.trim().isEmpty() && l.charAt(0) != '#').collect(Collectors.toSet());
+    }
+
+    private static class TestPath {
+        private final File outputPath;
+        private final File resultPath;
+
+        TestPath(File outputPath, File resultPath) {
+            this.outputPath = outputPath;
+            this.resultPath = resultPath;
+        }
+    }
+}
diff --git a/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/test/TestCase.java b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/test/TestCase.java
new file mode 100644
index 0000000000..09fdf5571d
--- /dev/null
+++ b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/common/test/TestCase.java
@@ -0,0 +1,84 @@
+/*
+ * 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.common.test;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.List;
+
+import org.apache.commons.io.IOUtils;
+import org.junit.Assert;
+
+public class TestCase {
+    private final File testFile;
+    private final File resultFile;
+    private final File outputFile;
+
+    public TestCase(File testFile, File resultFile, File outputPath) {
+        this.testFile = testFile;
+        this.resultFile = resultFile;
+        this.outputFile = new File(outputPath, resultFile.getName());
+    }
+
+    public File getTestFile() {
+        return testFile;
+    }
+
+    public File getOutputFile() {
+        return outputFile;
+    }
+
+    public void compare() throws IOException {
+        try (BufferedReader result = new BufferedReader(new FileReader(resultFile));
+                BufferedReader output = new BufferedReader(new FileReader(outputFile))) {
+            int line = 1;
+            String outLine = output.readLine();
+            while (outLine != null) {
+                String resultLine = result.readLine();
+                Assert.assertEquals("Unexpected line [" + line + "]", resultLine, outLine);
+                outLine = output.readLine();
+                line++;
+            }
+        }
+    }
+
+    public void compareRepeated(int numberOfTuples) throws IOException {
+        try (BufferedReader result = new BufferedReader(new FileReader(resultFile));
+                BufferedReader output = new BufferedReader(new FileReader(outputFile))) {
+            int resultLineNo = 0;
+            int line = 1;
+            List<String> resultLines = IOUtils.readLines(result);
+            String outLine = output.readLine();
+            while (outLine != null) {
+                String resultLine = resultLines.get(resultLineNo++ % resultLines.size());
+                Assert.assertEquals("Unexpected line [" + line + "]", resultLine, outLine);
+                outLine = output.readLine();
+                line++;
+            }
+            Assert.assertEquals(resultLineNo, numberOfTuples);
+        }
+    }
+
+    @Override
+    public String toString() {
+        return testFile.getName();
+    }
+}
diff --git a/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/metadata/schema/visitor/SchemaStringBuilderVisitor.java b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/metadata/schema/visitor/SchemaStringBuilderVisitor.java
new file mode 100644
index 0000000000..7fd37b8132
--- /dev/null
+++ b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/metadata/schema/visitor/SchemaStringBuilderVisitor.java
@@ -0,0 +1,154 @@
+/*
+ * 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.metadata.schema.visitor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.asterix.column.metadata.schema.AbstractSchemaNode;
+import org.apache.asterix.column.metadata.schema.ISchemaNodeVisitor;
+import org.apache.asterix.column.metadata.schema.ObjectSchemaNode;
+import org.apache.asterix.column.metadata.schema.UnionSchemaNode;
+import org.apache.asterix.column.metadata.schema.collection.AbstractCollectionSchemaNode;
+import org.apache.asterix.column.metadata.schema.primitive.PrimitiveSchemaNode;
+import org.apache.asterix.column.operation.lsm.flush.FlushColumnMetadata;
+import org.apache.asterix.column.values.writer.DummyColumnValuesWriter;
+import org.apache.asterix.dataflow.data.nontagged.serde.AStringSerializerDeserializer;
+import org.apache.asterix.om.base.AString;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IValueReference;
+import org.apache.hyracks.data.std.util.ByteArrayAccessibleDataInputStream;
+import org.apache.hyracks.data.std.util.ByteArrayAccessibleInputStream;
+import org.apache.hyracks.util.string.UTF8StringReader;
+import org.apache.hyracks.util.string.UTF8StringWriter;
+
+import it.unimi.dsi.fastutil.ints.IntList;
+
+public class SchemaStringBuilderVisitor implements ISchemaNodeVisitor<Void, Void> {
+    private final FlushColumnMetadata context;
+    private final StringBuilder builder;
+    private final List<String> fieldNames;
+
+    private int level;
+    private int indent;
+
+    public SchemaStringBuilderVisitor(FlushColumnMetadata context) throws HyracksDataException {
+        this.context = context;
+        builder = new StringBuilder();
+        this.fieldNames = new ArrayList<>();
+        AStringSerializerDeserializer stringSerDer =
+                new AStringSerializerDeserializer(new UTF8StringWriter(), new UTF8StringReader());
+        List<IValueReference> extractedFieldNames = context.getFieldNamesDictionary().getFieldNames();
+
+        //Deserialize field names
+        ByteArrayAccessibleInputStream in = new ByteArrayAccessibleInputStream(new byte[0], 0, 0);
+        ByteArrayAccessibleDataInputStream dataIn = new ByteArrayAccessibleDataInputStream(in);
+        for (IValueReference serFieldName : extractedFieldNames) {
+            in.setContent(serFieldName.getByteArray(), 0, serFieldName.getLength());
+            AString fieldName = stringSerDer.deserialize(dataIn);
+            this.fieldNames.add(fieldName.getStringValue());
+        }
+        level = 0;
+        indent = 0;
+    }
+
+    public String build(ObjectSchemaNode root) throws HyracksDataException {
+        builder.append("root\n");
+        visit(root, null);
+        return builder.toString();
+    }
+
+    @Override
+    public Void visit(ObjectSchemaNode objectNode, Void arg) throws HyracksDataException {
+        List<AbstractSchemaNode> children = objectNode.getChildren();
+        IntList fieldNameIndexes = objectNode.getChildrenFieldNameIndexes();
+        level++;
+        indent++;
+
+        for (int i = 0; i < children.size(); i++) {
+            String fieldName = fieldNames.get(fieldNameIndexes.getInt(i));
+            AbstractSchemaNode child = children.get(i);
+            append(fieldName, child);
+            child.accept(this, null);
+        }
+
+        level--;
+        indent--;
+        return null;
+    }
+
+    @Override
+    public Void visit(AbstractCollectionSchemaNode collectionNode, Void arg) throws HyracksDataException {
+        level++;
+        indent++;
+        AbstractSchemaNode itemNode = collectionNode.getItemNode();
+        append("item", itemNode);
+        itemNode.accept(this, null);
+        level--;
+        indent--;
+        return null;
+    }
+
+    @Override
+    public Void visit(UnionSchemaNode unionNode, Void arg) throws HyracksDataException {
+        indent++;
+        for (AbstractSchemaNode child : unionNode.getChildren().values()) {
+            append(child.getTypeTag().toString(), child);
+            child.accept(this, null);
+        }
+        indent--;
+        return null;
+    }
+
+    @Override
+    public Void visit(PrimitiveSchemaNode primitiveNode, Void arg) throws HyracksDataException {
+        DummyColumnValuesWriter writer = (DummyColumnValuesWriter) context.getWriter(primitiveNode.getColumnIndex());
+        indent++;
+        appendLevels(writer.getDefinitionLevelsString());
+        indent--;
+        return null;
+    }
+
+    private void appendLevels(String levels) {
+        appendDecor();
+        builder.append("Def ");
+        builder.append(levels);
+        builder.append('\n');
+    }
+
+    private void appendDecor() {
+        builder.append("|    ".repeat(Math.max(0, indent - 1)));
+        builder.append("|-- ");
+    }
+
+    private void append(String key, AbstractSchemaNode node) {
+        appendDecor();
+        builder.append(key);
+        builder.append(": ");
+        builder.append(node.getTypeTag().toString());
+        builder.append(" <level: ");
+        builder.append(level);
+        if (!node.isNested()) {
+            final PrimitiveSchemaNode primitiveNode = (PrimitiveSchemaNode) node;
+            builder.append(", index: ");
+            builder.append(primitiveNode.getColumnIndex());
+        }
+        builder.append(">\n");
+    }
+}
diff --git a/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/test/bytes/AbstractBytesTest.java b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/test/bytes/AbstractBytesTest.java
new file mode 100644
index 0000000000..03c14aea17
--- /dev/null
+++ b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/test/bytes/AbstractBytesTest.java
@@ -0,0 +1,291 @@
+/*
+ * 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.test.bytes;
+
+import static org.apache.hyracks.storage.am.lsm.btree.column.impls.btree.AbstractColumnBTreeLeafFrame.HEADER_SIZE;
+import static org.apache.hyracks.storage.am.lsm.btree.column.impls.btree.AbstractColumnBTreeLeafFrame.NUMBER_OF_COLUMNS_OFFSET;
+import static org.apache.hyracks.storage.am.lsm.btree.column.impls.btree.AbstractColumnBTreeLeafFrame.NUMBER_OF_COLUMN_PAGES;
+import static org.apache.hyracks.storage.am.lsm.btree.column.impls.btree.AbstractColumnBTreeLeafFrame.TUPLE_COUNT_OFFSET;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.asterix.column.bytes.stream.in.MultiByteBufferInputStream;
+import org.apache.asterix.column.common.buffer.DummyBufferCache;
+import org.apache.asterix.column.common.buffer.DummyPage;
+import org.apache.asterix.column.common.buffer.TestWriteMultiPageOp;
+import org.apache.asterix.column.common.row.DummyLSMBTreeTupleReference;
+import org.apache.asterix.column.common.row.NoOpRowTupleWriter;
+import org.apache.asterix.column.common.test.TestBase;
+import org.apache.asterix.column.common.test.TestCase;
+import org.apache.asterix.column.operation.lsm.flush.FlushColumnMetadata;
+import org.apache.asterix.column.operation.lsm.flush.FlushColumnTupleWriter;
+import org.apache.asterix.column.operation.query.ColumnAssembler;
+import org.apache.asterix.column.operation.query.QueryColumnMetadata;
+import org.apache.asterix.column.test.bytes.components.TestColumnBufferProvider;
+import org.apache.asterix.column.values.IColumnValuesWriterFactory;
+import org.apache.asterix.column.values.writer.ColumnValuesWriterFactory;
+import org.apache.asterix.om.pointables.ARecordVisitablePointable;
+import org.apache.asterix.om.pointables.base.DefaultOpenFieldType;
+import org.apache.asterix.om.pointables.printer.json.clean.APrintVisitor;
+import org.apache.asterix.om.types.ATypeTag;
+import org.apache.commons.lang3.mutable.Mutable;
+import org.apache.commons.lang3.mutable.MutableObject;
+import org.apache.hyracks.algebricks.common.utils.Pair;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.data.std.api.IValueReference;
+import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
+import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference;
+import org.apache.hyracks.storage.am.common.api.ITreeIndexTupleWriter;
+import org.apache.hyracks.storage.am.lsm.btree.column.api.AbstractColumnTupleWriter;
+import org.apache.hyracks.storage.am.lsm.btree.column.api.IColumnWriteMultiPageOp;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+public abstract class AbstractBytesTest extends TestBase {
+    private static final Logger LOGGER = LogManager.getLogger();
+    /* ***************************************
+     * Writer configuration
+     * ***************************************
+     */
+    /**
+     * Default is 4KB pages
+     */
+    public final static int PAGE_SIZE = 4 * 1024;
+    /**
+     * Empty space tolerance
+     */
+    public static final float TOLERANCE = 0.15f;
+    /**
+     * Cap the maximum number of tuples stored per AMAX page
+     */
+    public static final int MAX_NUMBER_OF_TUPLES = 100;
+
+    /* ***************************************
+     * Test static instances
+     * ***************************************
+     */
+    /**
+     * NoOp row tuple writer
+     */
+    public static final ITreeIndexTupleWriter ROW_TUPLE_WRITER = new NoOpRowTupleWriter();
+
+    /* ***************************************
+     * Test member fields
+     * ***************************************
+     */
+    protected final DummyBufferCache dummyBufferCache;
+    private final ARecordVisitablePointable recordPointable;
+    private final APrintVisitor printVisitor;
+
+    protected AbstractBytesTest(TestCase testCase) throws HyracksDataException {
+        super(testCase);
+        dummyBufferCache = new DummyBufferCache(PAGE_SIZE);
+        recordPointable = new ARecordVisitablePointable(DefaultOpenFieldType.NESTED_OPEN_RECORD_TYPE);
+        printVisitor = new APrintVisitor();
+    }
+
+    protected int createFile() {
+        return dummyBufferCache.createFile();
+    }
+
+    protected FlushColumnMetadata prepareNewFile(int fileId) throws HyracksDataException {
+        Mutable<IColumnWriteMultiPageOp> multiPageOpRef = new MutableObject<>();
+        IColumnValuesWriterFactory writerFactory = new ColumnValuesWriterFactory(multiPageOpRef);
+        FlushColumnMetadata columnMetadata = new FlushColumnMetadata(DefaultOpenFieldType.NESTED_OPEN_RECORD_TYPE, null,
+                Collections.emptyList(), null, writerFactory, multiPageOpRef);
+        IColumnWriteMultiPageOp multiPageOp = new TestWriteMultiPageOp(dummyBufferCache, fileId);
+        columnMetadata.init(multiPageOp);
+        return columnMetadata;
+    }
+
+    protected void clear() {
+        dummyBufferCache.clear();
+    }
+
+    protected List<IValueReference> getParsedRecords() throws IOException {
+        List<IValueReference> records = new ArrayList<>();
+        prepareParser(testCase.getTestFile());
+
+        ArrayBackedValueStorage storage = new ArrayBackedValueStorage();
+        while (parser.parse(storage.getDataOutput())) {
+            records.add(storage);
+            storage = new ArrayBackedValueStorage();
+        }
+        return records;
+    }
+
+    /* *************************************************
+     * Write
+     * *************************************************
+     */
+    protected List<DummyPage> transform(int fileId, FlushColumnMetadata columnMetadata, List<IValueReference> records,
+            int numberOfTuplesToWrite) throws IOException {
+        IColumnWriteMultiPageOp multiPageOp = columnMetadata.getMultiPageOpRef().getValue();
+        FlushColumnTupleWriter writer =
+                new FlushColumnTupleWriter(columnMetadata, PAGE_SIZE, MAX_NUMBER_OF_TUPLES, TOLERANCE);
+
+        try {
+            return writeTuples(fileId, writer, records, numberOfTuplesToWrite, multiPageOp);
+        } finally {
+            writer.close();
+        }
+    }
+
+    private List<DummyPage> writeTuples(int fileId, AbstractColumnTupleWriter writer, List<IValueReference> records,
+            int numberOfTuplesToWrite, IColumnWriteMultiPageOp multiPageOp) throws IOException {
+
+        DummyLSMBTreeTupleReference tuple = new DummyLSMBTreeTupleReference();
+        List<DummyPage> pageZeroList = new ArrayList<>();
+        ByteBuffer pageZero = allocate(pageZeroList, fileId);
+        int tupleCount = 0;
+        for (int i = 0; i < numberOfTuplesToWrite; i++) {
+            tuple.set(records.get(i % records.size()));
+            if (isFull(writer, tupleCount, tuple)) {
+                writeFullPage(pageZero, writer, tupleCount, multiPageOp);
+                pageZero = allocate(pageZeroList, fileId);
+                tupleCount = 0;
+            }
+            writer.writeTuple(tuple);
+            tupleCount++;
+        }
+
+        //Flush remaining tuples
+        if (tupleCount > 0) {
+            writeFullPage(pageZero, writer, tupleCount, multiPageOp);
+        }
+        return pageZeroList;
+    }
+
+    protected void writeFullPage(ByteBuffer pageZero, AbstractColumnTupleWriter writer, int tupleCount,
+            IColumnWriteMultiPageOp multiPageOp) throws HyracksDataException {
+        pageZero.clear();
+        //Reserve the header space
+        pageZero.position(HEADER_SIZE);
+        writer.flush(pageZero);
+        //Write page header
+        int numberOfColumn = writer.getNumberOfColumns();
+        int numberOfColumnsPages = multiPageOp.getNumberOfPersistentBuffers() - 1;
+        pageZero.putInt(TUPLE_COUNT_OFFSET, tupleCount);
+        pageZero.putInt(NUMBER_OF_COLUMNS_OFFSET, numberOfColumn);
+        pageZero.putInt(NUMBER_OF_COLUMN_PAGES, numberOfColumnsPages);
+    }
+
+    protected boolean isFull(AbstractColumnTupleWriter columnWriter, int tupleCount, ITupleReference tuple) {
+        if (tupleCount == 0) {
+            return false;
+        } else if (tupleCount >= columnWriter.getMaxNumberOfTuples()) {
+            //We reached the maximum number of tuples
+            return true;
+        }
+        //Reserved for the number of pages
+        int requiredFreeSpace = HEADER_SIZE;
+        //Columns' Offsets
+        requiredFreeSpace += columnWriter.getColumnOffsetsSize();
+        //Occupied space from previous writes
+        requiredFreeSpace += columnWriter.getOccupiedSpace();
+        //New tuple required space
+        requiredFreeSpace += columnWriter.bytesRequired(tuple);
+        return PAGE_SIZE <= requiredFreeSpace;
+    }
+
+    protected ByteBuffer allocate(List<DummyPage> pageZeroList, int fileId) {
+        DummyPage page = dummyBufferCache.allocate(fileId);
+        pageZeroList.add(page);
+        return page.getBuffer();
+    }
+
+    /* *************************************************
+     * Read
+     * *************************************************
+     */
+
+    protected void writeResult(int fileId, QueryColumnMetadata readMetadata, List<DummyPage> pageZeroList)
+            throws IOException {
+        int numberOfColumns = readMetadata.getNumberOfColumns();
+        ColumnAssembler assembler = readMetadata.getAssembler();
+        TestColumnBufferProvider[] providers = createBufferProviders(fileId, numberOfColumns, assembler);
+        MultiByteBufferInputStream[] streams = createInputStreams(numberOfColumns);
+        writeResult(pageZeroList, assembler, providers, streams);
+    }
+
+    private int prepareRead(DummyPage pageZero, TestColumnBufferProvider[] providers,
+            MultiByteBufferInputStream[] streams) throws HyracksDataException {
+        for (int i = 0; i < providers.length; i++) {
+            TestColumnBufferProvider provider = providers[i];
+            MultiByteBufferInputStream stream = streams[i];
+            provider.reset(pageZero);
+            stream.reset(provider);
+        }
+        return pageZero.getBuffer().getInt(TUPLE_COUNT_OFFSET);
+    }
+
+    private TestColumnBufferProvider[] createBufferProviders(int fileId, int size, ColumnAssembler assembler) {
+        TestColumnBufferProvider[] providers = new TestColumnBufferProvider[size];
+        for (int i = 0; i < size; i++) {
+            int columnIndex = assembler.getColumnIndex(i);
+            providers[i] = new TestColumnBufferProvider(fileId, columnIndex, dummyBufferCache);
+        }
+        return providers;
+    }
+
+    private MultiByteBufferInputStream[] createInputStreams(int size) {
+        MultiByteBufferInputStream[] streams = new MultiByteBufferInputStream[size];
+        for (int i = 0; i < size; i++) {
+            streams[i] = new MultiByteBufferInputStream();
+        }
+        return streams;
+    }
+
+    private void writeResult(List<DummyPage> pageZeroList, ColumnAssembler assembler,
+            TestColumnBufferProvider[] providers, MultiByteBufferInputStream[] streams)
+            throws FileNotFoundException, HyracksDataException {
+        File resultFile = testCase.getOutputFile();
+
+        try (PrintStream ps = new PrintStream(new FileOutputStream(resultFile))) {
+            int pageNumber = 0;
+            for (DummyPage pageZero : pageZeroList) {
+                LOGGER.info("READ PageZero {}", pageNumber++);
+                assembler.reset(prepareRead(pageZero, providers, streams));
+                for (int i = 0; i < streams.length; i++) {
+                    assembler.resetColumn(streams[i], 0, i);
+                }
+                writeForPageZero(ps, assembler);
+            }
+        }
+    }
+
+    private void writeForPageZero(PrintStream ps, ColumnAssembler assembler) throws HyracksDataException {
+        Pair<PrintStream, ATypeTag> pair = new Pair<>(ps, ATypeTag.OBJECT);
+        while (assembler.hasNext()) {
+            IValueReference record = assembler.nextValue();
+            recordPointable.set(record);
+            recordPointable.accept(printVisitor, pair);
+            ps.println();
+        }
+    }
+
+}
diff --git a/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/test/bytes/FlushLargeTest.java b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/test/bytes/FlushLargeTest.java
new file mode 100644
index 0000000000..398c909a9d
--- /dev/null
+++ b/asterixdb/asterix-column/src/test/java/org/apache/asterix/column/test/bytes/FlushLargeTest.java
@@ -0,0 +1,74 @@
+/*
+ * 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.test.bytes;
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import org.apache.asterix.column.assembler.value.ValueGetterFactory;
+import org.apache.asterix.column.common.buffer.DummyPage;
+import org.apache.asterix.column.common.test.TestCase;
+import org.apache.asterix.column.operation.lsm.flush.FlushColumnMetadata;
+import org.apache.asterix.column.operation.query.QueryColumnMetadata;
... 3198 lines suppressed ...