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

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

commit 40419aa5437f4489ec84861f2dfaf54cecd2fb00
Merge: 50d67194d4 a15494c44c
Author: preetham0202 <[email protected]>
AuthorDate: Thu Feb 13 23:36:29 2025 +0530

    Merge branch 'gerrit/ionic' into 'master'
    
    Change-Id: I7295ae44db8341e6f38c4a73a04bc9412cfa3136

 .../rules/PushValueAccessAndFilterDownRule.java    |    2 +
 .../asterix/optimizer/rules/cbo/JoinCondition.java |    1 +
 .../asterix/optimizer/rules/cbo/JoinEnum.java      |    7 +-
 .../apache/asterix/optimizer/rules/cbo/Stats.java  |  172 ++--
 .../DeltaTableFilterPushdownProcessor.java         |   64 ++
 .../org/apache/asterix/test/common/TestHelper.java |   55 +-
 .../external_dataset/ExternalDatasetTestUtils.java |    3 +-
 .../deltalake/DeltaTableGenerator.java             |  146 +++
 .../asterix/test/optimizer/OptimizerTest.java      |    9 +-
 .../optimizerts/results/ASTERIXDB-2402.plan        |  217 ++++-
 .../aggregate-sql-sugar/array_agg/array_agg.1.plan |    6 +
 .../distinct_mixed/distinct_mixed.10.plan          |   40 +-
 .../distinct_mixed/distinct_mixed.11.plan          |   49 +-
 .../distinct_mixed/distinct_mixed.12.plan          |   46 +-
 .../distinct_mixed/distinct_mixed.13.plan          |   66 +-
 .../distinct_mixed/distinct_mixed.14.plan          |   74 +-
 .../distinct_mixed/distinct_mixed.15.plan          |  162 ++++
 .../distinct_mixed/distinct_mixed.16.plan          |   57 +-
 .../distinct_mixed/distinct_mixed.17.plan          |  104 +-
 .../distinct_mixed/distinct_mixed.3.plan           |   27 +-
 .../distinct_mixed/distinct_mixed.4.plan           |   27 +-
 .../distinct_mixed/distinct_mixed.5.plan           |   63 +-
 .../distinct_mixed/distinct_mixed.6.plan           |   65 +-
 .../distinct_mixed/distinct_mixed.7.plan           |  146 ++-
 .../distinct_mixed/distinct_mixed.8.plan           |  209 +++-
 .../distinct_mixed/distinct_mixed.9.plan           |   40 +-
 .../agg_filter_01/agg_filter_01.10.plan            |   33 +-
 .../agg_filter_01/agg_filter_01.3.plan             |   16 +-
 .../agg_filter_01/agg_filter_01.4.plan             |   33 +-
 .../agg_filter_01/agg_filter_01.5.plan             |   79 +-
 .../agg_filter_01/agg_filter_01.6.plan             |   32 +-
 .../agg_filter_01/agg_filter_01.7.plan             |   59 +-
 .../agg_filter_01/agg_filter_01.8.plan             |   34 +-
 .../agg_filter_01/agg_filter_01.9.plan             |   16 +-
 .../results/aggregate/constant-agg.plan            |   12 +-
 .../results/aggregate/constant-gby-agg.plan        |   30 +-
 .../results/aggregate/count-dataset.plan           |   11 +-
 .../results/aggregate/list-dataset.plan            |   11 +-
 .../results/aggregate/query-ASTERIXDB-1626-2.plan  |   15 +-
 .../results/aggregate/query-ASTERIXDB-1626-3.plan  |   15 +-
 .../results/aggregate/query-ASTERIXDB-1626.plan    |   15 +-
 .../optimizerts/results/aggregate/serial-agg.plan  |   30 +-
 .../optimizerts/results/any-and-every-1.plan       |   22 +-
 .../optimizerts/results/any-and-every-2.plan       |   32 +-
 .../optimizerts/results/any-and-every-3.plan       |   23 +-
 .../atomic-and-array-queries/query1.plan           |   25 +-
 .../atomic-and-array-queries/query2.plan           |   25 +-
 .../atomic-and-array-queries/query3.plan           |   28 +-
 .../atomic-and-array-queries/query4.plan           |   36 +-
 .../atomic-and-array-queries/query5.plan           |   48 +-
 .../atomic-and-array-queries/query6.plan           |   34 +-
 .../atomic-and-array-queries/query7.plan           |   34 +-
 .../atomic-and-array-queries/query8.plan           |   45 +-
 .../atomic-and-array-queries/query9.plan           |   57 +-
 .../join-quantified-queries/use-case-1/query1.plan |   45 +-
 .../join-quantified-queries/use-case-1/query2.plan |   45 +-
 .../join-quantified-queries/use-case-1/query3.plan |   45 +-
 .../join-quantified-queries/use-case-1/query4.plan |   76 +-
 .../join-quantified-queries/use-case-1/query5.plan |   44 +-
 .../join-quantified-queries/use-case-2/query1.plan |   45 +-
 .../join-quantified-queries/use-case-2/query2.plan |   44 +-
 .../join-quantified-queries/use-case-2/query3.plan |   39 +-
 .../join-quantified-queries/use-case-3/query1.plan |   46 +-
 .../join-quantified-queries/use-case-3/query2.plan |   45 +-
 .../join-quantified-queries/use-case-4/query1.plan |   56 +-
 .../join-quantified-queries/use-case-4/query2.plan |   56 +-
 .../join-quantified-queries/use-case-4/query3.plan |   54 +-
 .../join-quantified-queries/use-case-4/query4.plan |   94 +-
 .../join-unnest-queries/use-case-1/query1.plan     |   33 +-
 .../join-unnest-queries/use-case-1/query2.plan     |   33 +-
 .../join-unnest-queries/use-case-1/query3.plan     |   36 +-
 .../join-unnest-queries/use-case-1/query4.plan     |   38 +-
 .../join-unnest-queries/use-case-2/query1.plan     |   33 +-
 .../join-unnest-queries/use-case-2/query2.plan     |   33 +-
 .../join-unnest-queries/use-case-2/query3.plan     |   36 +-
 .../join-unnest-queries/use-case-2/query4.plan     |   38 +-
 .../join-unnest-queries/use-case-3/query1.plan     |   33 +-
 .../join-unnest-queries/use-case-3/query2.plan     |   33 +-
 .../join-unnest-queries/use-case-3/query3.plan     |   33 +-
 .../join-unnest-queries/use-case-3/query4.plan     |   36 +-
 .../join-unnest-queries/use-case-3/query5.plan     |   38 +-
 .../join-unnest-queries/use-case-4/query1.plan     |   35 +-
 .../join-unnest-queries/use-case-4/query2.plan     |   36 +-
 .../join-unnest-queries/use-case-4/query3.plan     |   35 +-
 .../join-unnest-queries/use-case-4/query4.plan     |   38 +-
 .../join-unnest-queries/use-case-4/query5.plan     |   40 +-
 .../multiple-indexes/query1.plan                   |   50 +-
 .../multiple-indexes/query2.plan                   |   63 +-
 .../multiple-quantifiers/query1.plan               |   36 +-
 .../multiple-quantifiers/query10.plan              |   44 +-
 .../multiple-quantifiers/query11.plan              |   54 +-
 .../multiple-quantifiers/query2.plan               |   36 +-
 .../multiple-quantifiers/query3.plan               |   38 +-
 .../multiple-quantifiers/query4.plan               |   38 +-
 .../multiple-quantifiers/query5.plan               |   52 +-
 .../multiple-quantifiers/query6.plan               |   52 +-
 .../multiple-quantifiers/query7.plan               |   36 +-
 .../multiple-quantifiers/query8.plan               |   48 +-
 .../multiple-quantifiers/query9.plan               |   48 +-
 .../use-case-1/query1.plan                         |   34 +-
 .../use-case-1/query2.plan                         |   37 +-
 .../use-case-1/query3.plan                         |   38 +-
 .../use-case-1/query4.plan                         |   36 +-
 .../use-case-1/query5.plan                         |   27 +-
 .../use-case-2/query1.plan                         |   34 +-
 .../use-case-2/query2.plan                         |   37 +-
 .../use-case-2/query3.plan                         |   36 +-
 .../use-case-2/query4.plan                         |   25 +-
 .../use-case-2/query5.plan                         |   25 +-
 .../use-case-3/query1.plan                         |   35 +-
 .../use-case-3/query2.plan                         |   35 +-
 .../use-case-3/query3.plan                         |   34 +-
 .../use-case-3/query4.plan                         |   23 +-
 .../use-case-4/query1.plan                         |   45 +-
 .../use-case-4/query2.plan                         |   45 +-
 .../use-case-4/query3.plan                         |   44 +-
 .../use-case-4/query4.plan                         |   44 +-
 .../use-case-4/query5.plan                         |   43 +-
 .../use-case-4/query6.plan                         |   34 +-
 .../use-case-4/query7.plan                         |   46 +-
 .../closed/use-case-1/query1.plan                  |   24 +-
 .../closed/use-case-1/query2.plan                  |   27 +-
 .../closed/use-case-2/query1.plan                  |   24 +-
 .../closed/use-case-2/query2.plan                  |   27 +-
 .../closed/use-case-3/query1.plan                  |   24 +-
 .../closed/use-case-3/query2.plan                  |   28 +-
 .../closed/use-case-3/query3.plan                  |   24 +-
 .../closed/use-case-4/query1.plan                  |   26 +-
 .../closed/use-case-4/query2.plan                  |   29 +-
 .../closed/with-3-level-record-path/query1.plan    |   24 +-
 .../closed/with-3-level-record-path/query2.plan    |   27 +-
 .../closed/with-composite-pk/query1.plan           |   24 +-
 .../closed/with-composite-pk/query2.plan           |   27 +-
 .../closed/with-composite-sk/query1.plan           |   25 +-
 .../closed/with-composite-sk/query2.plan           |   28 +-
 .../closed/with-composite-sk/query3.plan           |   17 +-
 .../closed/with-filter-fields/query1.plan          |   25 +-
 .../closed/with-filter-fields/query2.plan          |   27 +-
 .../open/complex-structures/query1.plan            |   24 +-
 .../open/complex-structures/query2.plan            |   24 +-
 .../open/complex-structures/query3.plan            |   26 +-
 .../open/complex-structures/query4.plan            |   26 +-
 .../open/complex-structures/query5.plan            |   24 +-
 .../open/complex-structures/query6.plan            |   24 +-
 .../open/complex-structures/query7.plan            |   26 +-
 .../open/complex-structures/query8.plan            |   26 +-
 .../open/multiple-indexes/query1.plan              |   39 +-
 .../open/multiple-indexes/query2.plan              |   52 +-
 .../open/use-case-1/query1.plan                    |   24 +-
 .../open/use-case-1/query2.plan                    |   27 +-
 .../open/use-case-2/query1.plan                    |   24 +-
 .../open/use-case-2/query2.plan                    |   27 +-
 .../open/use-case-3/query1.plan                    |   24 +-
 .../open/use-case-3/query2.plan                    |   28 +-
 .../open/use-case-3/query3.plan                    |   24 +-
 .../open/use-case-4/query1.plan                    |   26 +-
 .../open/use-case-4/query2.plan                    |   29 +-
 .../open/with-3-level-record-path/query1.plan      |   24 +-
 .../open/with-3-level-record-path/query2.plan      |   27 +-
 .../open/with-composite-sk/query1.plan             |   25 +-
 .../hints-indexnl-params-3.plan                    |   29 +-
 .../hints-indexnl-params-4.plan                    |   26 +-
 .../hints-indexnl-params-5.plan                    |   26 +-
 .../hints-indexnl-params-6.plan                    |   26 +-
 .../hints-indexnl-params-7.plan                    |   26 +-
 .../hints-indexnl-params-8.plan                    |   29 +-
 ...join-probe-pidx-with-join-btree-sidx_01_ps.plan |  128 ++-
 ...terjoin-probe-pidx-with-join-btree-sidx_02.plan |   40 +-
 ...join-probe-pidx-with-join-btree-sidx_02_ps.plan |   90 +-
 ...be-pidx-with-join-btree-sidx_03-index-only.plan |   54 +-
 ...terjoin-probe-pidx-with-join-btree-sidx_03.plan |   35 +-
 .../btree-index-join/primary-between-join_01.plan  |   17 +-
 .../btree-index-join/primary-equi-join_04.plan     |   19 +-
 .../secondary-equi-join-multiindex.plan            |   26 +-
 .../btree-index-join/secondary-equi-join_02.plan   |   26 +-
 .../btree-index-join/secondary-equi-join_03.plan   |   26 +-
 .../btree-index-join/secondary-equi-join_04.plan   |   39 +-
 .../btree-index-join/secondary-equi-join_05.plan   |   21 +-
 .../btree-index-join/secondary-equi-join_06.plan   |   46 +-
 .../btree-index-composite-key-04.plan              |   35 +-
 .../cast-default-null/cast-default-null-01.plan    |   14 +-
 .../cast-default-null/cast-default-null-02.plan    |   23 +-
 .../cast-default-null/cast-default-null-03.plan    |   14 +-
 .../cast-default-null/cast-default-null-04.plan    |   14 +-
 .../cast-default-null/cast-default-null-05.plan    |   30 +-
 .../cast-default-null/cast-default-null-06.plan    |   25 +-
 .../cast-default-null/cast-default-null-07.plan    |   25 +-
 .../cast-default-null/cast-default-null-08.plan    |   25 +-
 .../cast-default-null/cast-default-null-09.plan    |   25 +-
 .../cast-default-null/cast-default-null-10.plan    |   23 +-
 .../cast-default-null/cast-default-null-11.plan    |   23 +-
 .../cast-default-null/cast-default-null-12.plan    |   23 +-
 .../cast-default-null/cast-default-null-13.plan    |   23 +-
 .../cast-default-null/cast-default-null-14.plan    |   23 +-
 .../cast-default-null/cast-default-null-15.plan    |   23 +-
 .../cast-default-null/cast-default-null-16.plan    |   14 +-
 .../cast-default-null/cast-default-null-17.plan    |   14 +-
 .../cast-default-null/cast-default-null-18.plan    |   14 +-
 .../cast-default-null/cast-default-null-19.plan    |   30 +-
 .../cast-default-null/cast-default-null-20.plan    |   23 +-
 .../cast-default-null/cast-default-null-21.plan    |   14 +-
 .../cast-default-null/cast-default-null-22.plan    |   14 +-
 .../cast-default-null/cast-default-null-23.plan    |   23 +-
 .../cast-default-null/cast-default-null-24.plan    |   35 +-
 .../cast-default-null/cast-default-null-25.plan    |   23 +-
 .../disjunctive-predicate-1.plan                   |   16 +-
 .../disjunctive-predicate-2.plan                   |   19 +-
 .../disjunctive-predicate-3.plan                   |   17 +-
 .../disjunctive-predicate-4.plan                   |   12 +-
 .../disjunctive-predicate-5.plan                   |   13 +-
 .../function-on-pk/function-on-pk-01.plan          |   10 +-
 .../function-on-pk/function-on-pk-02.plan          |   10 +-
 .../hints-skip-index/hints-skip-index-10.plan      |   22 +-
 .../hints-skip-index/hints-skip-index-11.plan      |   19 +-
 .../hints-skip-index/hints-skip-index-12.plan      |   23 +-
 .../hints-skip-index/hints-skip-index-13.plan      |   22 +-
 .../hints-skip-index/hints-skip-index-3.plan       |   13 +-
 .../hints-skip-index/hints-skip-index-4.plan       |   22 +-
 .../hints-skip-index/hints-skip-index-5.plan       |   13 +-
 .../hints-skip-index/hints-skip-index-6.plan       |   22 +-
 .../hints-skip-index/hints-skip-index-7.plan       |   35 +-
 .../hints-skip-index/hints-skip-index-8.plan       |   22 +-
 .../hints-skip-index/hints-skip-index-9.plan       |   22 +-
 .../hints-use-index/hints-use-index-10.plan        |   22 +-
 .../hints-use-index/hints-use-index-11.plan        |   22 +-
 .../hints-use-index/hints-use-index-12.plan        |   41 +-
 .../hints-use-index/hints-use-index-13.plan        |   22 +-
 .../hints-use-index/hints-use-index-14.plan        |   22 +-
 .../hints-use-index/hints-use-index-15.plan        |   22 +-
 .../hints-use-index/hints-use-index-16.plan        |   41 +-
 .../hints-use-index/hints-use-index-17.plan        |   22 +-
 .../hints-use-index/hints-use-index-18.plan        |   22 +-
 .../hints-use-index/hints-use-index-19.plan        |   22 +-
 .../hints-use-index/hints-use-index-20.plan        |   28 +-
 .../hints-use-index/hints-use-index-21.plan        |   28 +-
 .../hints-use-index/hints-use-index-3.plan         |   22 +-
 .../hints-use-index/hints-use-index-4.plan         |   41 +-
 .../hints-use-index/hints-use-index-5.plan         |   41 +-
 .../hints-use-index/hints-use-index-6.plan         |   22 +-
 .../hints-use-index/hints-use-index-7.plan         |   22 +-
 .../hints-use-index/hints-use-index-8.plan         |   35 +-
 .../hints-use-index/hints-use-index-9.plan         |   35 +-
 .../intersection-misc/intersection-misc-01.plan    |  141 ++-
 .../intersection-misc/intersection-misc-02.plan    |  127 ++-
 .../intersection-misc/intersection-misc-03.plan    |  122 ++-
 .../intersection-misc/intersection-misc-04.plan    |  112 ++-
 .../btree-index/btree-composite-key-03.plan        |   21 +-
 .../results/btree-index/btree-secondary-33.plan    |   21 +-
 .../results/btree-index/btree-secondary-34.plan    |   21 +-
 .../results/btree-index/btree-secondary-35.plan    |   21 +-
 .../results/btree-index/btree-secondary-36.plan    |   21 +-
 .../results/btree-index/btree-secondary-40.plan    |   21 +-
 .../results/btree-index/btree-secondary-42.plan    |   21 +-
 .../results/btree-index/btree-secondary-43.plan    |   21 +-
 .../results/btree-index/btree-secondary-44.plan    |   21 +-
 .../results/btree-index/btree-secondary-45.plan    |   21 +-
 .../results/btree-index/btree-secondary-46.plan    |   21 +-
 .../results/btree-index/btree-secondary-47.plan    |   20 +-
 .../results/btree-index/btree-secondary-48.plan    |   20 +-
 .../results/btree-index/btree-secondary-49.plan    |   21 +-
 .../results/btree-index/btree-secondary-51.plan    |   20 +-
 .../results/btree-index/btree-secondary-52.plan    |   20 +-
 .../results/btree-index/btree-secondary-53.plan    |   20 +-
 .../results/btree-index/btree-secondary-54.plan    |   21 +-
 .../results/btree-index/btree-secondary-55.plan    |   21 +-
 .../results/btree-index/btree-secondary-56.plan    |   21 +-
 .../results/btree-index/btree-secondary-57.plan    |   21 +-
 .../results/btree-index/btree-secondary-58.plan    |   20 +-
 .../results/btree-index/btree-secondary-59.plan    |   20 +-
 .../results/btree-index/btree-secondary-60.plan    |   21 +-
 .../results/btree-index/btree-secondary-61.plan    |   20 +-
 .../results/btree-index/btree-secondary-62.plan    |   21 +-
 .../results/btree-index/btree-secondary-63.plan    |   21 +-
 .../results/btree-index/btree-secondary-68.plan    |   36 +-
 .../results/btree-index/btree-secondary-68_ps.plan |   78 +-
 .../btree-sidx-idxonly-01-disable-idxonly.plan     |   23 +-
 .../btree-sidx-idxonly-01-disable-idxonly_ps.plan  |   52 +-
 .../results/btree-index/btree-sidx-idxonly-01.plan |   35 +-
 .../btree-index/btree-sidx-idxonly-01_ps.plan      |   76 +-
 .../results/btree-index/btree-sidx-idxonly-10.plan |   37 +-
 .../results/btree-ternary-inlj/query1.plan         |   43 +-
 .../results/btree-ternary-inlj/query2.plan         |   44 +-
 .../results/btree-ternary-inlj/query3.plan         |   59 +-
 .../results/btree-ternary-inlj/query4.plan         |   36 +-
 .../resources/optimizerts/results/ch2/ch2_q1.plan  |   33 +-
 .../resources/optimizerts/results/ch2/ch2_q10.plan |   64 +-
 .../resources/optimizerts/results/ch2/ch2_q11.plan |  125 ++-
 .../resources/optimizerts/results/ch2/ch2_q12.plan |   33 +-
 .../resources/optimizerts/results/ch2/ch2_q13.plan |   66 +-
 .../resources/optimizerts/results/ch2/ch2_q14.plan |   31 +-
 .../resources/optimizerts/results/ch2/ch2_q15.plan |  132 ++-
 .../resources/optimizerts/results/ch2/ch2_q16.plan |   71 +-
 .../resources/optimizerts/results/ch2/ch2_q17.plan |   71 +-
 .../resources/optimizerts/results/ch2/ch2_q18.plan |   54 +-
 .../resources/optimizerts/results/ch2/ch2_q19.plan |   32 +-
 .../resources/optimizerts/results/ch2/ch2_q2.plan  |  171 +++-
 .../resources/optimizerts/results/ch2/ch2_q20.plan |  121 ++-
 .../resources/optimizerts/results/ch2/ch2_q21.plan |  124 ++-
 .../resources/optimizerts/results/ch2/ch2_q22.plan |  118 ++-
 .../resources/optimizerts/results/ch2/ch2_q3.plan  |   62 +-
 .../resources/optimizerts/results/ch2/ch2_q4.plan  |   44 +-
 .../resources/optimizerts/results/ch2/ch2_q5.plan  |  104 +-
 .../resources/optimizerts/results/ch2/ch2_q6.plan  |   17 +-
 .../resources/optimizerts/results/ch2/ch2_q7.plan  |  107 +-
 .../resources/optimizerts/results/ch2/ch2_q8.plan  |  136 ++-
 .../resources/optimizerts/results/ch2/ch2_q9.plan  |   87 +-
 .../resources/optimizerts/results/collocated.plan  |   22 +-
 .../results/column-pushdown/meta.001.plan          |  125 ++-
 .../optimizerts/results/common-expr-01.plan        |   74 +-
 .../composite-key/composite-prefix-low-high.plan   |   12 +-
 .../optimizerts/results/copy-to/copy-to.0.plan     |   33 +-
 .../optimizerts/results/copy-to/copy-to.1.plan     |   35 +-
 .../optimizerts/results/copy-to/copy-to.2.plan     |   14 +-
 .../optimizerts/results/copy-to/copy-to.3.plan     |   15 +-
 .../optimizerts/results/cust_group_no_agg.plan     |   19 +-
 .../optimizerts/results/denorm-cust-order.plan     |   33 +-
 .../results/disjunction-to-join-delete-3.plan      |   29 +-
 .../results/external-cross-product.plan            |   48 +-
 .../extract-common-operators.01.plan               |  100 +-
 ...nverted-btree-search-return-optional-field.plan |   31 +-
 .../optimizerts/results/filter_on_meta_0.plan      |   12 +-
 .../optimizerts/results/filter_on_meta_1.plan      |   12 +-
 .../optimizerts/results/filter_on_meta_2.plan      |   12 +-
 .../optimizerts/results/filter_on_meta_3.plan      |   12 +-
 .../optimizerts/results/filter_on_meta_4.plan      |   12 +-
 .../optimizerts/results/filter_on_meta_5.plan      |   12 +-
 .../results/filter_on_meta_with_idx_0.plan         |   57 +-
 .../results/filter_on_meta_with_idx_1.plan         |   26 +-
 .../results/filter_on_meta_with_idx_2.plan         |   26 +-
 .../results/filter_on_meta_with_idx_3.plan         |   26 +-
 .../resources/optimizerts/results/flwr/at07.plan   |   39 +-
 .../optimizerts/results/flwr/select-let-1.plan     |    6 +-
 .../results/gby_partitioning_property_01.plan      |   43 +-
 .../results/group-by/gby-case-01.3.plan            |   30 +-
 .../results/group-by/gby-case-01.4.plan            |   30 +-
 .../results/group-by/grouping-sets-1.1.plan        |  144 ++-
 .../results/group-by/grouping-sets-1.2.plan        |  425 ++++++--
 .../optimizerts/results/group-by/listify-3.1.plan  |   36 +
 .../results/group-by/sugar-06-distinct.plan        |   30 +-
 .../hash-join-with-redundant-variable.1.plan       |   79 +-
 .../hash-join-with-redundant-variable.2.plan       |   38 +-
 .../hash-join-with-redundant-variable.3.plan       |   38 +-
 .../hash-join-with-redundant-variable.4.plan       |   26 +-
 .../broadcast_join_hint/broadcast_join_hint_1.plan |   24 +-
 .../broadcast_join_hint/broadcast_join_hint_2.plan |   24 +-
 .../broadcast_join_hint/broadcast_join_hint_3.plan |   24 +-
 .../broadcast_join_hint/broadcast_join_hint_4.plan |   37 +-
 .../broadcast_join_hint/broadcast_join_hint_5.plan |   37 +-
 .../broadcast_join_hint/broadcast_join_hint_6.plan |   37 +-
 .../broadcast_join_hint/broadcast_join_hint_7.plan |   37 +-
 .../hints/hashjoin_hint/hashjoin_hint_1.plan       |   37 +-
 .../hints/hashjoin_hint/hashjoin_hint_2.plan       |   37 +-
 .../hints/hashjoin_hint/hashjoin_hint_3.plan       |   37 +-
 .../hints/hashjoin_hint/hashjoin_hint_4.plan       |   37 +-
 .../hints/hashjoin_hint/hashjoin_hint_5.plan       |   37 +-
 .../hints/hashjoin_hint/hashjoin_hint_6.plan       |   37 +-
 .../index-through-object.1.plan                    |   21 +-
 .../index-through-object.10.plan                   |   23 +-
 .../index-through-object.11.plan                   |   43 +-
 .../index-through-object.2.plan                    |   21 +-
 .../index-through-object.3.plan                    |   21 +-
 .../index-through-object.4.plan                    |   21 +-
 .../index-through-object.5.plan                    |   12 +-
 .../index-through-object.6.plan                    |   23 +-
 .../index-through-object.7.plan                    |   12 +-
 .../index-through-object.8.plan                    |   21 +-
 .../index-through-object.9.plan                    |   46 +-
 .../inline-single-reference_1.plan                 |   14 +-
 .../inline-single-reference_2.plan                 |   11 +-
 .../inline-single-reference_3.plan                 |   12 +-
 .../inline-single-reference_4.plan                 |   27 +-
 .../results/insert-and-scan-dataset.plan           |   16 +-
 .../results/introhashpartitionmerge.plan           |   26 +-
 .../inverted-index-basic/ngram-contains-panic.plan |   13 +-
 .../ngram-contains-panic_ps.plan                   |   32 +-
 .../inverted-index-basic/ngram-contains.plan       |   20 +-
 .../inverted-index-basic/ngram-contains_ps.plan    |   54 +-
 .../ngram-edit-distance-check.plan                 |   19 +-
 .../inverted-index-basic/ngram-edit-distance.plan  |   19 +-
 .../ngram-fuzzyeq-edit-distance.plan               |   19 +-
 .../ngram-fuzzyeq-jaccard.plan                     |   19 +-
 .../inverted-index-basic/ngram-jaccard-check.plan  |   19 +-
 .../inverted-index-basic/ngram-jaccard.plan        |   19 +-
 .../olist-edit-distance-check-panic.plan           |   13 +-
 .../olist-edit-distance-check-panic_ps.plan        |   32 +-
 .../olist-edit-distance-check.plan                 |   20 +-
 .../olist-edit-distance-check_ps.plan              |   54 +-
 .../olist-edit-distance-panic.plan                 |   13 +-
 .../olist-edit-distance-panic_ps.plan              |   32 +-
 .../inverted-index-basic/olist-edit-distance.plan  |   20 +-
 .../olist-edit-distance_ps.plan                    |   54 +-
 .../olist-fuzzyeq-edit-distance.plan               |   20 +-
 .../olist-fuzzyeq-edit-distance_ps.plan            |   54 +-
 .../olist-fuzzyeq-jaccard.plan                     |   19 +-
 .../inverted-index-basic/olist-jaccard-check.plan  |   19 +-
 .../inverted-index-basic/olist-jaccard.plan        |   19 +-
 .../ulist-fuzzyeq-jaccard.plan                     |   19 +-
 .../inverted-index-basic/ulist-jaccard-check.plan  |   19 +-
 .../inverted-index-basic/ulist-jaccard.plan        |   19 +-
 .../inverted-index-basic/word-contains.plan        |   13 +-
 .../inverted-index-basic/word-contains_ps.plan     |   32 +-
 .../inverted-index-basic/word-fuzzyeq-jaccard.plan |   19 +-
 .../inverted-index-basic/word-jaccard-check.plan   |   19 +-
 .../results/inverted-index-basic/word-jaccard.plan |   19 +-
 ...m-edit-distance-check-let-panic-nopanic_01.plan |   18 +-
 ...m-edit-distance-check-let-panic-nopanic_02.plan |   18 +-
 .../ngram-edit-distance-check-let.plan             |   19 +-
 .../ngram-edit-distance-check-substring.plan       |   18 +-
 .../ngram-jaccard-check-let.plan                   |   19 +-
 .../ngram-jaccard-check-multi-let.plan             |   19 +-
 .../olist-edit-distance-check-let-panic.plan       |   13 +-
 .../olist-edit-distance-check-let-panic_ps.plan    |   32 +-
 .../olist-edit-distance-check-let.plan             |   20 +-
 .../olist-edit-distance-check-let_ps.plan          |   54 +-
 .../olist-jaccard-check-let.plan                   |   19 +-
 .../ulist-jaccard-check-let.plan                   |   19 +-
 .../word-jaccard-check-let.plan                    |   19 +-
 .../word-jaccard-check-multi-let.plan              |   19 +-
 .../ngram-edit-distance-inline.plan                |   64 +-
 .../ngram-fuzzyeq-edit-distance.plan               |   55 +-
 .../ngram-jaccard-inline.plan                      |   37 +-
 .../olist-edit-distance-inline.plan                |   64 +-
 .../olist-jaccard-inline.plan                      |   25 +-
 .../ulist-jaccard-inline.plan                      |   25 +-
 .../word-jaccard-inline.plan                       |   37 +-
 .../results/inverted-index-join/issue741.plan      |   50 +-
 ...-pidx-with-join-edit-distance-check-idx_01.plan |   86 +-
 ...dx-with-join-edit-distance-check-idx_01_ps.plan |  182 +++-
 ...-probe-pidx-with-join-jaccard-check-idx_01.plan |   55 +-
 ...obe-pidx-with-join-jaccard-check-idx_01_ps.plan |  120 ++-
 .../inverted-index-join/ngram-contains_ps.plan     |   61 +-
 .../ngram-edit-distance-check_02.plan              |   63 +-
 .../ngram-edit-distance-check_03.plan              |   63 +-
 .../ngram-edit-distance-check_04.plan              |   65 +-
 .../ngram-edit-distance_02.plan                    |   63 +-
 .../ngram-edit-distance_03.plan                    |   63 +-
 .../ngram-edit-distance_04.plan                    |   65 +-
 .../ngram-fuzzyeq-edit-distance_01.plan            |   63 +-
 .../ngram-fuzzyeq-edit-distance_03.plan            |   63 +-
 .../ngram-fuzzyeq-jaccard_02.plan                  |   33 +-
 .../ngram-fuzzyeq-jaccard_03.plan                  |   33 +-
 .../ngram-jaccard-check_02.plan                    |   33 +-
 .../ngram-jaccard-check_03.plan                    |   33 +-
 .../ngram-jaccard-check_04.plan                    |   36 +-
 .../inverted-index-join/ngram-jaccard_02.plan      |   33 +-
 .../inverted-index-join/ngram-jaccard_03.plan      |   33 +-
 .../inverted-index-join/ngram-jaccard_04.plan      |   36 +-
 .../olist-edit-distance-check_02.plan              |   63 +-
 .../olist-edit-distance-check_03.plan              |   63 +-
 .../olist-edit-distance-check_04.plan              |   65 +-
 .../olist-edit-distance_02.plan                    |   63 +-
 .../olist-edit-distance_03.plan                    |   63 +-
 .../olist-edit-distance_04.plan                    |   65 +-
 .../olist-fuzzyeq-edit-distance_02.plan            |   63 +-
 .../olist-fuzzyeq-edit-distance_03.plan            |   63 +-
 .../olist-fuzzyeq-jaccard_02.plan                  |   33 +-
 .../olist-fuzzyeq-jaccard_03.plan                  |   33 +-
 .../olist-jaccard-check_02.plan                    |   33 +-
 .../olist-jaccard-check_03.plan                    |   33 +-
 .../olist-jaccard-check_04.plan                    |   34 +-
 .../inverted-index-join/olist-jaccard_02.plan      |   33 +-
 .../inverted-index-join/olist-jaccard_03.plan      |   33 +-
 .../inverted-index-join/olist-jaccard_04.plan      |   34 +-
 .../ulist-fuzzyeq-jaccard_02.plan                  |   33 +-
 .../ulist-fuzzyeq-jaccard_03.plan                  |   33 +-
 .../ulist-jaccard-check_02.plan                    |   33 +-
 .../ulist-jaccard-check_03.plan                    |   33 +-
 .../ulist-jaccard-check_04.plan                    |   34 +-
 .../inverted-index-join/ulist-jaccard_02.plan      |   33 +-
 .../inverted-index-join/ulist-jaccard_03.plan      |   33 +-
 .../inverted-index-join/ulist-jaccard_04.plan      |   34 +-
 .../word-fuzzyeq-jaccard_02.plan                   |   33 +-
 .../word-fuzzyeq-jaccard_03.plan                   |   33 +-
 .../word-jaccard-check-after-btree-access.plan     |   43 +-
 .../inverted-index-join/word-jaccard-check_02.plan |   33 +-
 .../inverted-index-join/word-jaccard-check_03.plan |   33 +-
 .../inverted-index-join/word-jaccard-check_04.plan |   36 +-
 .../inverted-index-join/word-jaccard_02.plan       |   33 +-
 .../inverted-index-join/word-jaccard_03.plan       |   33 +-
 .../inverted-index-join/word-jaccard_04.plan       |   36 +-
 .../results/join-singletonbranch-2.plan            |   29 +-
 .../results/join-singletonbranch-3.plan            |   23 +-
 .../optimizerts/results/join-singletonbranch.plan  |   29 +-
 .../optimizerts/results/join-super-key_01.plan     |   23 +-
 .../optimizerts/results/join-super-key_02.plan     |   23 +-
 .../optimizerts/results/joins/fnds_join_ds.plan    |   25 +-
 .../results/joins/inner_right_corr.plan            |   63 +-
 .../results/joins/nested_query_with_bcast.plan     |   41 +-
 .../results/joins/nlj_partitioning_property_1.plan |   34 +-
 .../results/joins/nlj_partitioning_property_2.plan |   34 +-
 .../results/joins/query-ASTERIXDB-2986.plan        |   41 +-
 .../results/leftouterjoin/loj-03-no-listify.plan   |  149 ++-
 .../leftouterjoin/query-ASTERIXDB-2857.plan        |   40 +-
 .../leftouterjoin/query-ASTERIXDB-2988.plan        |   21 +-
 .../resources/optimizerts/results/loj-core.plan    |   26 +-
 .../resources/optimizerts/results/loj-core_ps.plan |   58 +-
 .../resources/optimizerts/results/loj-sugar.plan   |   26 +-
 .../optimizerts/results/loj-sugar_ps.plan          |   58 +-
 .../optimizerts/results/loj-super-key_01.plan      |   36 +-
 .../optimizerts/results/loj-super-key_02.plan      |   37 +-
 .../meta/field_access_with_data_and_meta_1.plan    |   14 +-
 .../meta/field_access_with_data_and_meta_2.plan    |   12 +-
 .../meta/field_access_with_data_and_meta_3.plan    |   12 +-
 .../meta/field_access_with_data_and_meta_4.plan    |   14 +-
 .../meta/indexes_on_dataset_with_meta_01.plan      |   11 +-
 .../meta/indexes_on_dataset_with_meta_02.plan      |   11 +-
 .../meta/indexes_on_dataset_with_meta_03.plan      |   11 +-
 .../meta/indexes_on_dataset_with_meta_04.plan      |   11 +-
 .../meta/indexes_on_dataset_with_meta_05.plan      |   27 +-
 .../meta/indexes_on_dataset_with_meta_06.plan      |   22 +-
 .../meta/indexes_on_dataset_with_meta_07.plan      |   23 +-
 .../meta/indexes_on_dataset_with_meta_08.plan      |   20 +-
 .../meta/indexes_on_dataset_with_meta_09.plan      |   11 +-
 .../meta/indexes_on_dataset_with_meta_10.plan      |   29 +-
 .../meta/indexes_on_dataset_with_meta_11.plan      |   22 +-
 .../optimizerts/results/meta/with_clause_meta.plan |   42 +-
 .../micro_external_sort/micro_external_sort.plan   |   31 +-
 .../multipart-dataverse/index/index-01.plan        |   21 +-
 .../multipart-dataverse/index/index-02.plan        |   21 +-
 .../btree-index-join/ASTERIXDB-2199.plan           |   18 +-
 ...join-probe-pidx-with-join-btree-sidx_01_ps.plan |   95 +-
 ...join-probe-pidx-with-join-btree-sidx_02_ps.plan |   95 +-
 .../ngram-contains-panic_ps.plan                   |   32 +-
 .../inverted-index-basic/ngram-contains_ps.plan    |   54 +-
 .../olist-edit-distance-check-panic_ps.plan        |   32 +-
 .../olist-edit-distance-check_ps.plan              |   54 +-
 .../olist-edit-distance-panic_ps.plan              |   32 +-
 .../olist-edit-distance_ps.plan                    |   54 +-
 .../olist-fuzzyeq-edit-distance_ps.plan            |   54 +-
 .../inverted-index-basic/word-contains_ps.plan     |   32 +-
 .../olist-edit-distance-check-let-panic_ps.plan    |   32 +-
 .../olist-edit-distance-check-let_ps.plan          |   54 +-
 ...dx-with-join-edit-distance-check-idx_01_ps.plan |  197 +++-
 ...obe-pidx-with-join-jaccard-check-idx_01_ps.plan |  127 ++-
 ...join-probe-pidx-with-join-rtree-sidx_01_ps.plan |   99 +-
 ...join-probe-pidx-with-join-rtree-sidx_02_ps.plan |   99 +-
 ...in-probe-pidx-with-join-btree-sidx_01_1_ps.plan |   95 +-
 ...in-probe-pidx-with-join-btree-sidx_01_2_ps.plan |   95 +-
 ...in-probe-pidx-with-join-btree-sidx_02_1_ps.plan |   95 +-
 ...in-probe-pidx-with-join-btree-sidx_02_2_ps.plan |   95 +-
 .../non-enforced-composite-key-equi-join/01.plan   |   26 +-
 .../non-enforced-composite-key-equi-join/02.plan   |   26 +-
 .../non-enforced-composite-key-equi-join/03.plan   |   29 +-
 .../non-enforced-composite-key-equi-join/04.plan   |   29 +-
 .../non-enforced-composite-key-equi-join/05.plan   |   29 +-
 .../non-enforced-composite-key-equi-join/06.plan   |   32 +-
 .../non-enforced-composite-key-equi-join/07.plan   |   32 +-
 .../btree-index/non-enforced-composite-key/01.plan |   21 +-
 .../btree-index/non-enforced-composite-key/02.plan |   21 +-
 .../btree-index/non-enforced-composite-key/03.plan |   24 +-
 .../btree-index/non-enforced-composite-key/04.plan |   25 +-
 .../btree-index/non-enforced-composite-key/05.plan |   25 +-
 .../btree-index/non-enforced-composite-key/06.plan |   25 +-
 .../btree-index/non-enforced-composite-key/07.plan |   25 +-
 .../btree-index/non-enforced-composite-key/08.plan |   25 +-
 .../btree-index/non-enforced-composite-key/09.plan |   25 +-
 .../btree-index/non-enforced-composite-key/10.plan |   25 +-
 .../btree-index/non-enforced-composite-key/11.plan |   25 +-
 .../btree-index/non-enforced-composite-key/12.plan |   38 +-
 .../ngram-contains-panic_ps.plan                   |   32 +-
 .../inverted-index-basic/ngram-contains_ps.plan    |   54 +-
 .../inverted-index-basic/word-contains_ps.plan     |   32 +-
 ...dx-with-join-edit-distance-check-idx_01_ps.plan |  197 +++-
 .../inverted-index-join/ngram-contains_01_ps.plan  |   53 +-
 .../inverted-index-join/ngram-contains_02_ps.plan  |   53 +-
 .../inverted-index-join/ngram-contains_03_ps.plan  |   61 +-
 .../inverted-index-join/ngram-contains_04_ps.plan  |   61 +-
 ...join-probe-pidx-with-join-rtree-sidx_01_ps.plan |   99 +-
 ...join-probe-pidx-with-join-rtree-sidx_02_ps.plan |   99 +-
 .../resources/optimizerts/results/nested_loj2.plan |   54 +-
 ...in-probe-pidx-with-join-btree-sidx_01_1_ps.plan |   90 +-
 ...in-probe-pidx-with-join-btree-sidx_01_2_ps.plan |   90 +-
 ...in-probe-pidx-with-join-btree-sidx_02_1_ps.plan |   90 +-
 ...in-probe-pidx-with-join-btree-sidx_02_2_ps.plan |   90 +-
 .../ngram-contains-panic_ps.plan                   |   32 +-
 .../inverted-index-basic/ngram-contains_ps.plan    |   54 +-
 .../inverted-index-basic/word-contains_ps.plan     |   32 +-
 ...dx-with-join-edit-distance-check-idx_01_ps.plan |  182 +++-
 .../inverted-index-join/ngram-contains_01_ps.plan  |   53 +-
 .../inverted-index-join/ngram-contains_02_ps.plan  |   61 +-
 .../inverted-index-join/ngram-contains_03_ps.plan  |   61 +-
 .../inverted-index-join/ngram-contains_04_ps.plan  |   61 +-
 ...join-probe-pidx-with-join-rtree-sidx_01_ps.plan |   94 +-
 ...join-probe-pidx-with-join-rtree-sidx_02_ps.plan |   94 +-
 .../btree-composite-key-non-enforced-03.plan       |   20 +-
 .../btree-composite-key-non-enforced-04.plan       |   20 +-
 .../btree-equi-join-non-enforced-05.plan           |   27 +-
 .../btree-equi-join-non-enforced-05_ps.plan        |   59 +-
 .../btree-equi-join-non-enforced-06.plan           |   27 +-
 .../btree-equi-join-non-enforced-06_ps.plan        |   59 +-
 .../btree-equi-join-non-enforced-07.plan           |   27 +-
 .../btree-equi-join-non-enforced-07_ps.plan        |   59 +-
 .../btree-equi-join-non-enforced-08.plan           |   30 +-
 .../btree-equi-join-non-enforced-08_ps.plan        |   65 +-
 .../btree-equi-join-non-enforced-09.plan           |   30 +-
 .../btree-equi-join-non-enforced-09_ps.plan        |   65 +-
 .../btree-index-non-enforced-04.plan               |   24 +-
 .../btree-index-non-enforced-04_ps.plan            |   53 +-
 .../btree-index-non-enforced-05.plan               |   24 +-
 .../btree-index-non-enforced-05_ps.plan            |   53 +-
 .../btree-index-non-enforced-06.plan               |   24 +-
 .../btree-index-non-enforced-06_ps.plan            |   53 +-
 .../btree-index-non-enforced-07.plan               |   24 +-
 .../btree-index-non-enforced-07_ps.plan            |   53 +-
 .../btree-index-non-enforced-08.plan               |   24 +-
 .../btree-index-non-enforced-08_ps.plan            |   53 +-
 .../btree-index-non-enforced-09.plan               |   24 +-
 .../btree-index-non-enforced-09_ps.plan            |   53 +-
 .../btree-index-non-enforced-10.plan               |   24 +-
 .../btree-index-non-enforced-105.plan              |   37 +-
 .../btree-index-non-enforced-105_ps.plan           |   79 +-
 .../btree-index-non-enforced-10_ps.plan            |   53 +-
 .../btree-index-non-enforced-11.plan               |   24 +-
 .../btree-index-non-enforced-11_ps.plan            |   53 +-
 .../results/orderby-desc-using-gby_ps.plan         |   51 +-
 .../results/orderby-nulls-first-last.plan          |   17 +-
 .../orders-index-search-conjunctive-open_01.plan   |   36 +-
 ...orders-index-search-conjunctive-open_01_ps.plan |   65 +-
 .../orders-index-search-conjunctive-open_02.plan   |   36 +-
 ...orders-index-search-conjunctive-open_02_ps.plan |   65 +-
 .../orders-index-search-conjunctive_01.plan        |   36 +-
 .../orders-index-search-conjunctive_01_ps.plan     |   65 +-
 .../orders-index-search-conjunctive_02.plan        |   36 +-
 .../orders-index-search-conjunctive_02_ps.plan     |   65 +-
 .../results/p_sort_join/p_sort_join.plan           |   85 +-
 .../results/p_sort_seq_merge/p_sort_seq_merge.plan |   36 +-
 .../parallel_sort_enabled_disabled.1.plan          |   34 +-
 .../parallel_sort_enabled_disabled.2.plan          |   14 +-
 .../delete-primary-key-index-with-secondary.plan   |   22 +-
 ...-and-scan-primary-key-index-with-secondary.plan |   20 +-
 .../insert-primary-key-index-with-auto-gen-pk.plan |    9 +
 .../insert-primary-key-index.plan                  |    8 +
 .../load-primary-key-index-with-secondary.plan     |   72 +-
 .../primary-key-index/load-primary-key-index.plan  |   19 +-
 .../upsert-primary-key-index-with-secondary.plan   |   15 +
 .../results/pull_select_above_eq_join.plan         |   23 +-
 .../results/push-project-through-group.plan        |   36 +-
 .../results/q01_pricing_summary_report_nt_ps.plan  |   87 +-
 .../optimizerts/results/q08_group_by.plan          |   84 +-
 .../optimizerts/results/q09_group_by.plan          |   59 +-
 .../results/quantifiers/query-ASTERIXDB-2696.plan  |   29 +-
 .../optimizerts/results/query-ASTERIXDB-159-3.plan |   59 +-
 .../optimizerts/results/query-ASTERIXDB-1671.plan  |   18 +-
 .../optimizerts/results/query-ASTERIXDB-1806.plan  |   31 +-
 .../results/query-ASTERIXDB-1806_ps.plan           |   72 +-
 .../optimizerts/results/query-ASTERIXDB-2354.plan  |   48 +-
 .../results/query-ASTERIXDB-2354_ps.plan           |  102 +-
 .../optimizerts/results/query-ASTERIXDB-2408.plan  |   40 +-
 .../results/query-ASTERIXDB-2408_ps.plan           |   85 +-
 .../optimizerts/results/query-ASTERIXDB-2700.plan  |   40 +-
 .../optimizerts/results/query-ASTERIXDB-3334.plan  |   72 +-
 .../optimizerts/results/query-ASTERIXDB-3512.plan  |   32 +-
 .../optimizerts/results/query-ASTERIXDB-810-2.plan |   48 +-
 .../results/query-ASTERIXDB-810-2_ps.plan          |  106 +-
 .../optimizerts/results/query-ASTERIXDB-810-3.plan |   48 +-
 .../results/query-ASTERIXDB-810-3_ps.plan          |  106 +-
 .../optimizerts/results/query-ASTERIXDB-810.plan   |   48 +-
 .../results/query-ASTERIXDB-810_ps.plan            |  106 +-
 .../optimizerts/results/query-issue562_ps.plan     |  162 +++-
 .../optimizerts/results/query-issue601.plan        |   29 +-
 .../optimizerts/results/query_issue3316.plan       | 1017 ++++++++++++++++++--
 .../optimizerts/results/query_issue849-2.plan      |   32 +-
 .../optimizerts/results/query_issue849.plan        |   34 +-
 .../optimizerts/results/remove_listify.plan        |   40 +-
 .../results/rightouterjoin/roj-01-core.1.plan      |   28 +-
 .../results/rightouterjoin/roj-01-core.2.plan      |   43 +-
 .../rtree-sidx-idxonly-01.plan                     |   18 +-
 .../rtree-sidx-idxonly-02.plan                     |   18 +-
 .../rtree-sidx-idxonly-03.plan                     |   18 +-
 .../rtree-sidx-idxonly-04.plan                     |   18 +-
 .../rtree-sidx-idxonly-05.plan                     |   18 +-
 .../rtree-sidx-idxonly-06.plan                     |   18 +-
 .../rtree-sidx-idxonly-07.plan                     |   18 +-
 .../rtree-index-geometry/skip-rtree-sidx-01.plan   |    9 +-
 .../rtree-index-geometry/skip-rtree-sidx-02.plan   |    9 +-
 .../rtree-index-geometry/skip-rtree-sidx-03.plan   |    9 +-
 .../rtree-index-geometry/skip-rtree-sidx-04.plan   |    9 +-
 .../rtree-index-geometry/skip-rtree-sidx-05.plan   |    9 +-
 .../rtree-index-geometry/skip-rtree-sidx-06.plan   |    9 +-
 .../rtree-index-geometry/skip-rtree-sidx-07.plan   |    9 +-
 ...join-probe-pidx-with-join-rtree-sidx_01_ps.plan |  146 ++-
 ...terjoin-probe-pidx-with-join-rtree-sidx_02.plan |   42 +-
 ...join-probe-pidx-with-join-rtree-sidx_02_ps.plan |   94 +-
 .../spatial-intersect-point_02.plan                |   27 +-
 .../spatial-intersect-point_03.plan                |   27 +-
 .../rtree-sidx-idxonly-01-disable-idxonly.plan     |   23 +-
 .../results/rtree-index/rtree-sidx-idxonly-01.plan |   40 +-
 .../results/skip-index/skip-ngram-index_ps.plan    |   32 +-
 .../skip-index/skip-secondary-btree-index-2.plan   |   20 +-
 .../skip-index/skip-secondary-btree-index-3.plan   |   17 +-
 .../skip-index/skip-secondary-btree-index-4.plan   |   14 +-
 .../spatial_intersect_dynamic_partitioning.plan    |  156 ++-
 .../spatial_intersect_static_partitioning.plan     |   33 +-
 .../st_distance_static_partitioning.plan           |   35 +-
 .../st_intersects_static_partitioning.plan         |   35 +-
 .../optimizerts/results/split-materialization.plan |   31 +-
 .../results/split-materialization_ps.plan          |   68 +-
 .../statement-params/statement-params-01.plan      |   19 +-
 .../statement-params/statement-params-02.plan      |   19 +-
 .../statement-params/statement-params-03.plan      |   19 +-
 .../statement-params-index-01.plan                 |   23 +-
 .../statement-params-index-02.plan                 |   36 +-
 .../optimizerts/results/subquery/exists.plan       |   86 +-
 .../optimizerts/results/subquery/exists_ps.plan    |  182 +++-
 .../resources/optimizerts/results/subquery/in.plan |   38 +-
 .../optimizerts/results/subquery/in_as_or_1.plan   |   18 +-
 .../results/subquery/in_as_or_1_ps.plan            |   43 +-
 .../optimizerts/results/subquery/in_as_or_2.plan   |   31 +-
 .../results/subquery/in_as_or_2_ps.plan            |   73 +-
 .../optimizerts/results/subquery/in_as_or_3.plan   |   18 +-
 .../results/subquery/in_as_or_3_ps.plan            |   43 +-
 .../optimizerts/results/subquery/in_as_or_4.plan   |   31 +-
 .../results/subquery/in_as_or_4_ps.plan            |   73 +-
 .../optimizerts/results/subquery/in_as_or_5.plan   |   18 +-
 .../results/subquery/in_as_or_5_ps.plan            |   43 +-
 .../optimizerts/results/subquery/in_as_or_6.plan   |   31 +-
 .../results/subquery/in_as_or_6_ps.plan            |   73 +-
 .../results/subquery/in_correlated.plan            |   36 +-
 .../results/subquery/in_correlated_ps.plan         |   81 +-
 .../optimizerts/results/subquery/in_let_3.plan     |   77 +-
 .../optimizerts/results/subquery/in_let_4.plan     |   77 +-
 .../optimizerts/results/subquery/in_let_5.plan     |   77 +-
 .../optimizerts/results/subquery/in_let_6.plan     |   73 +-
 .../optimizerts/results/subquery/in_let_7.plan     |   73 +-
 .../optimizerts/results/subquery/in_let_8.plan     |   76 +-
 .../optimizerts/results/subquery/in_ps.plan        |   85 +-
 .../optimizerts/results/subquery/not_exists.plan   |   86 +-
 .../results/subquery/not_exists_ps.plan            |  182 +++-
 .../results/subquery/query-ASTERIXDB-1572-2.plan   |   12 +-
 .../results/subquery/query-ASTERIXDB-1572.plan     |   38 +-
 .../results/subquery/query-ASTERIXDB-2815-2.plan   |   78 +-
 .../results/subquery/query-ASTERIXDB-2815-3.plan   |   79 +-
 .../results/subquery/query-ASTERIXDB-2815.plan     |   79 +-
 .../results/subquery/query-ASTERIXDB-2845.plan     |  150 ++-
 .../results/subquery/query-ASTERIXDB-3006.plan     |   48 +-
 .../interval_after/interval_after.3.query.plan     |   32 +-
 .../interval_before/interval_before.3.query.plan   |   32 +-
 .../interval_covered_by.3.query.plan               |   32 +-
 .../interval_covers/interval_covers.3.query.plan   |   32 +-
 .../interval_ended_by.3.query.plan                 |   25 +-
 .../interval_ends/interval_ends.3.query.plan       |   25 +-
 .../interval_meets/interval_meets.3.query.plan     |   22 +-
 .../interval_met_by/interval_met_by.3.query.plan   |   22 +-
 .../interval_overlapped_by.3.query.plan            |   32 +-
 .../interval_overlapping.3.query.plan              |   32 +-
 .../interval_overlaps.3.query.plan                 |   32 +-
 .../interval_started_by.3.query.plan               |   25 +-
 .../interval_starts/interval_starts.3.query.plan   |   25 +-
 .../results/tpcds/query-ASTERIXDB-1580.plan        |   85 +-
 .../results/tpcds/query-ASTERIXDB-1581-2.plan      |  133 ++-
 .../tpcds/query-ASTERIXDB-1581-correlated-2.plan   |  381 +++++++-
 .../tpcds/query-ASTERIXDB-1581-correlated.plan     |  380 +++++++-
 .../results/tpcds/query-ASTERIXDB-1581.plan        |  207 +++-
 .../results/tpcds/query-ASTERIXDB-1591.plan        |  180 +++-
 .../results/tpcds/query-ASTERIXDB-1596.plan        |   32 +-
 .../results/tpcds/query-ASTERIXDB-1596_ps.plan     |   69 +-
 .../optimizerts/results/tpch/q12_shipping.plan     |   50 +-
 .../results/tpch/q12_shipping_broadcast.plan       |   50 +-
 .../results/tpch/q12_shipping_broadcast_ps.plan    |  110 ++-
 .../optimizerts/results/tpch/q12_shipping_ps.plan  |  110 ++-
 .../optimizerts/results/union/union_opt_1_1.plan   |   49 +-
 .../optimizerts/results/union/union_opt_1_2.plan   |   51 +-
 .../optimizerts/results/union/union_opt_1_3.plan   |   51 +-
 .../optimizerts/results/union/union_opt_1_4.plan   |   53 +-
 .../results/window/pg_win/pg_win_01.plan           |    8 +
 .../results/window/win_misc/win_misc_01.plan       |   25 +-
 .../results/window/win_misc/win_misc_02.plan       |   26 +-
 .../results/window/win_opt_01/win_opt_01_1.plan    |   10 +
 .../results/window/win_opt_01/win_opt_01_10.plan   |   17 +-
 .../results/window/win_opt_01/win_opt_01_11.plan   |   17 +-
 .../results/window/win_opt_01/win_opt_01_12.plan   |   26 +-
 .../results/window/win_opt_01/win_opt_01_2.plan    |   17 +-
 .../results/window/win_opt_01/win_opt_01_3.plan    |   17 +-
 .../results/window/win_opt_01/win_opt_01_4.plan    |   17 +-
 .../results/window/win_opt_01/win_opt_01_5.plan    |   10 +
 .../results/window/win_opt_01/win_opt_01_6.plan    |   11 +
 .../results/window/win_opt_01/win_opt_01_7.plan    |   19 +-
 .../results/window/win_opt_01/win_opt_01_8.plan    |    8 +-
 .../results/window/win_opt_01/win_opt_01_9.plan    |   16 +-
 .../results/window/win_opt_02/win_opt_02_1.plan    |   27 +-
 .../optimizerts/results_cbo/ASTERIXDB-2402.plan    |  199 +++-
 .../distinct_mixed/distinct_mixed.10.plan          |   40 +-
 .../distinct_mixed/distinct_mixed.11.plan          |   49 +-
 .../distinct_mixed/distinct_mixed.12.plan          |   46 +-
 .../distinct_mixed/distinct_mixed.13.plan          |   66 +-
 .../distinct_mixed/distinct_mixed.14.plan          |   74 +-
 .../distinct_mixed/distinct_mixed.9.plan           |   40 +-
 .../atomic-and-array-queries/query1.plan           |   14 +-
 .../atomic-and-array-queries/query2.plan           |   14 +-
 .../atomic-and-array-queries/query3.plan           |   17 +-
 .../atomic-and-array-queries/query4.plan           |   25 +-
 .../atomic-and-array-queries/query5.plan           |   37 +-
 .../atomic-and-array-queries/query8.plan           |   45 +-
 .../atomic-and-array-queries/query9.plan           |   57 +-
 .../multiple-indexes/query1.plan                   |   24 +-
 .../multiple-indexes/query2.plan                   |   24 +-
 .../multiple-quantifiers/query7.plan               |   25 +-
 .../use-case-1/query1.plan                         |   23 +-
 .../use-case-1/query2.plan                         |   26 +-
 .../use-case-1/query4.plan                         |   25 +-
 .../use-case-2/query1.plan                         |   23 +-
 .../use-case-2/query2.plan                         |   26 +-
 .../use-case-2/query3.plan                         |   25 +-
 .../use-case-3/query1.plan                         |   24 +-
 .../use-case-3/query2.plan                         |   24 +-
 .../use-case-3/query3.plan                         |   23 +-
 .../closed/use-case-1/query1.plan                  |   13 +-
 .../closed/use-case-1/query2.plan                  |   16 +-
 .../closed/use-case-2/query1.plan                  |   13 +-
 .../closed/use-case-2/query2.plan                  |   16 +-
 .../closed/use-case-3/query1.plan                  |   13 +-
 .../closed/use-case-3/query2.plan                  |   17 +-
 .../closed/use-case-3/query3.plan                  |   13 +-
 .../closed/use-case-4/query1.plan                  |   15 +-
 .../closed/use-case-4/query2.plan                  |   18 +-
 .../closed/with-3-level-record-path/query1.plan    |   13 +-
 .../closed/with-3-level-record-path/query2.plan    |   16 +-
 .../closed/with-composite-pk/query1.plan           |   13 +-
 .../closed/with-composite-pk/query2.plan           |   16 +-
 .../closed/with-composite-sk/query1.plan           |   14 +-
 .../closed/with-composite-sk/query2.plan           |   17 +-
 .../closed/with-filter-fields/query1.plan          |   15 +-
 .../closed/with-filter-fields/query2.plan          |   16 +-
 .../open/complex-structures/query1.plan            |   13 +-
 .../open/complex-structures/query2.plan            |   13 +-
 .../open/complex-structures/query3.plan            |   15 +-
 .../open/complex-structures/query4.plan            |   15 +-
 .../open/complex-structures/query5.plan            |   13 +-
 .../open/complex-structures/query6.plan            |   13 +-
 .../open/complex-structures/query7.plan            |   15 +-
 .../open/complex-structures/query8.plan            |   15 +-
 .../open/multiple-indexes/query1.plan              |   13 +-
 .../open/multiple-indexes/query2.plan              |   13 +-
 .../open/use-case-1/query1.plan                    |   13 +-
 .../open/use-case-1/query2.plan                    |   16 +-
 .../open/use-case-2/query1.plan                    |   13 +-
 .../open/use-case-2/query2.plan                    |   16 +-
 .../open/use-case-3/query1.plan                    |   13 +-
 .../open/use-case-3/query2.plan                    |   17 +-
 .../open/use-case-3/query3.plan                    |   13 +-
 .../open/use-case-4/query1.plan                    |   15 +-
 .../open/use-case-4/query2.plan                    |   18 +-
 .../open/with-3-level-record-path/query1.plan      |   13 +-
 .../open/with-3-level-record-path/query2.plan      |   16 +-
 .../open/with-composite-sk/query1.plan             |   14 +-
 .../hints-indexnl-params-3.plan                    |   29 +-
 .../hints-indexnl-params-4.plan                    |   26 +-
 .../hints-indexnl-params-5.plan                    |   44 +
 .../hints-indexnl-params-6.plan                    |   26 +-
 .../hints-indexnl-params-7.plan                    |   44 +
 .../btree-index-join/secondary-equi-join_04.plan   |   39 +-
 .../btree-index-composite-key-04.plan              |   14 +-
 .../cast-default-null/cast-default-null-02.plan    |   14 +-
 .../cast-default-null/cast-default-null-10.plan    |   14 +-
 .../cast-default-null/cast-default-null-11.plan    |   14 +-
 .../cast-default-null/cast-default-null-12.plan    |   14 +-
 .../cast-default-null/cast-default-null-13.plan    |   14 +-
 .../cast-default-null/cast-default-null-14.plan    |   14 +-
 .../cast-default-null/cast-default-null-15.plan    |   14 +-
 .../cast-default-null/cast-default-null-20.plan    |   14 +-
 .../cast-default-null/cast-default-null-23.plan    |   14 +-
 .../cast-default-null/cast-default-null-24.plan    |   14 +-
 .../cast-default-null/cast-default-null-25.plan    |   14 +-
 .../disjunctive-predicate-1.plan                   |   12 +-
 .../disjunctive-predicate-2.plan                   |   19 +-
 .../hints-skip-index/hints-skip-index-10.plan      |   13 +-
 .../hints-skip-index/hints-skip-index-11.plan      |   19 +-
 .../hints-skip-index/hints-skip-index-12.plan      |   23 +-
 .../hints-skip-index/hints-skip-index-13.plan      |   13 +-
 .../hints-skip-index/hints-skip-index-4.plan       |   13 +-
 .../hints-skip-index/hints-skip-index-6.plan       |   13 +-
 .../hints-skip-index/hints-skip-index-7.plan       |   13 +-
 .../hints-skip-index/hints-skip-index-8.plan       |   13 +-
 .../hints-skip-index/hints-skip-index-9.plan       |   13 +-
 .../hints-use-index/hints-use-index-10.plan        |   13 +-
 .../hints-use-index/hints-use-index-11.plan        |   13 +-
 .../hints-use-index/hints-use-index-12.plan        |   13 +-
 .../hints-use-index/hints-use-index-13.plan        |   13 +-
 .../hints-use-index/hints-use-index-14.plan        |   13 +-
 .../hints-use-index/hints-use-index-15.plan        |   13 +-
 .../hints-use-index/hints-use-index-16.plan        |   13 +-
 .../hints-use-index/hints-use-index-17.plan        |   22 +-
 .../hints-use-index/hints-use-index-18.plan        |   13 +-
 .../hints-use-index/hints-use-index-19.plan        |   13 +-
 .../hints-use-index/hints-use-index-3.plan         |   22 +-
 .../hints-use-index/hints-use-index-4.plan         |   41 +-
 .../hints-use-index/hints-use-index-5.plan         |   41 +-
 .../hints-use-index/hints-use-index-7.plan         |   22 +-
 .../hints-use-index/hints-use-index-8.plan         |   35 +-
 .../hints-use-index/hints-use-index-9.plan         |   35 +-
 .../intersection-misc/intersection-misc-01.plan    |  112 ++-
 .../intersection-misc/intersection-misc-02.plan    |  112 ++-
 .../intersection-misc/intersection-misc-03.plan    |  112 ++-
 .../btree-index/btree-composite-key-03.plan        |   10 +-
 .../btree-index/btree-secondary-33.plan            |   10 +-
 .../btree-index/btree-secondary-34.plan            |   10 +-
 .../btree-index/btree-secondary-35.plan            |   10 +-
 .../btree-index/btree-secondary-36.plan            |   10 +-
 .../btree-index/btree-secondary-40.plan            |   10 +-
 .../btree-index/btree-secondary-42.plan            |   10 +-
 .../btree-index/btree-secondary-43.plan            |   10 +-
 .../btree-index/btree-secondary-44.plan            |   10 +-
 .../btree-index/btree-secondary-45.plan            |   10 +-
 .../btree-index/btree-secondary-46.plan            |   10 +-
 .../btree-index/btree-secondary-47.plan            |   11 +-
 .../btree-index/btree-secondary-48.plan            |   11 +-
 .../btree-index/btree-secondary-49.plan            |   10 +-
 .../btree-index/btree-secondary-51.plan            |   11 +-
 .../btree-index/btree-secondary-52.plan            |   11 +-
 .../btree-index/btree-secondary-53.plan            |   11 +-
 .../btree-index/btree-secondary-54.plan            |   10 +-
 .../btree-index/btree-secondary-55.plan            |   10 +-
 .../btree-index/btree-secondary-56.plan            |   10 +-
 .../btree-index/btree-secondary-57.plan            |   10 +-
 .../btree-index/btree-secondary-58.plan            |   11 +-
 .../btree-index/btree-secondary-59.plan            |   11 +-
 .../btree-index/btree-secondary-60.plan            |   10 +-
 .../btree-index/btree-secondary-61.plan            |   11 +-
 .../btree-index/btree-secondary-62.plan            |   10 +-
 .../btree-index/btree-secondary-63.plan            |   10 +-
 .../btree-index/btree-secondary-68.plan            |   14 +-
 .../btree-index/btree-secondary-68_ps.plan         |   34 +-
 .../btree-sidx-idxonly-01-disable-idxonly.plan     |   14 +-
 .../btree-sidx-idxonly-01-disable-idxonly_ps.plan  |   34 +-
 .../btree-index/btree-sidx-idxonly-01.plan         |   14 +-
 .../btree-index/btree-sidx-idxonly-01_ps.plan      |   34 +-
 .../btree-index/btree-sidx-idxonly-10.plan         |   15 +-
 .../results_cbo/btree-ternary-inlj/query4.plan     |   36 +-
 .../optimizerts/results_cbo/ch2/ch2_q10.plan       |   64 +-
 .../optimizerts/results_cbo/ch2/ch2_q11.plan       |  125 ++-
 .../optimizerts/results_cbo/ch2/ch2_q16.plan       |   71 +-
 .../optimizerts/results_cbo/ch2/ch2_q18.plan       |   54 +-
 .../optimizerts/results_cbo/ch2/ch2_q2.plan        |  171 +++-
 .../optimizerts/results_cbo/ch2/ch2_q21.plan       |  124 ++-
 .../optimizerts/results_cbo/ch2/ch2_q5.plan        |  104 +-
 .../optimizerts/results_cbo/ch2/ch2_q7.plan        |  150 ++-
 .../optimizerts/results_cbo/ch2/ch2_q8.plan        |  136 ++-
 .../optimizerts/results_cbo/ch2/ch2_q9.plan        |   87 +-
 .../results_cbo/column-pushdown/meta.001.plan      |  125 ++-
 .../extract-common-operators.01.plan               |  100 +-
 ...nverted-btree-search-return-optional-field.plan |   31 +-
 .../results_cbo/filter_on_meta_with_idx_2.plan     |   26 +-
 .../results_cbo/group-by/listify-3.1.plan          |   36 +
 .../hash-join-with-redundant-variable.1.plan       |  125 ++-
 .../hash-join-with-redundant-variable.2.plan       |   38 +-
 .../hash-join-with-redundant-variable.3.plan       |   40 +-
 .../index-through-object.1.plan                    |   12 +-
 .../index-through-object.2.plan                    |   12 +-
 .../index-through-object.3.plan                    |   12 +-
 .../index-through-object.4.plan                    |   12 +-
 .../index-through-object.8.plan                    |   12 +-
 .../index-through-object.9.plan                    |   35 +-
 .../results_cbo/insert-and-scan-dataset.plan       |   16 +-
 .../inverted-index-basic/ngram-contains.plan       |   13 +-
 .../inverted-index-basic/ngram-contains_ps.plan    |   32 +-
 .../ngram-edit-distance-check.plan                 |   17 +-
 .../inverted-index-basic/ngram-edit-distance.plan  |   17 +-
 .../ngram-fuzzyeq-edit-distance.plan               |   17 +-
 .../ngram-fuzzyeq-jaccard.plan                     |   17 +-
 .../inverted-index-basic/ngram-jaccard-check.plan  |   17 +-
 .../inverted-index-basic/ngram-jaccard.plan        |   17 +-
 .../olist-edit-distance-check.plan                 |   20 +-
 .../olist-edit-distance-check_ps.plan              |   46 +-
 .../inverted-index-basic/olist-edit-distance.plan  |   20 +-
 .../olist-edit-distance_ps.plan                    |   46 +-
 .../olist-fuzzyeq-edit-distance.plan               |   20 +-
 .../olist-fuzzyeq-edit-distance_ps.plan            |   46 +-
 .../olist-fuzzyeq-jaccard.plan                     |   17 +-
 .../inverted-index-basic/olist-jaccard-check.plan  |   17 +-
 .../inverted-index-basic/olist-jaccard.plan        |   17 +-
 .../ulist-fuzzyeq-jaccard.plan                     |   17 +-
 .../inverted-index-basic/ulist-jaccard-check.plan  |   17 +-
 .../inverted-index-basic/ulist-jaccard.plan        |   17 +-
 .../inverted-index-basic/word-fuzzyeq-jaccard.plan |   17 +-
 .../inverted-index-basic/word-jaccard-check.plan   |   17 +-
 .../inverted-index-basic/word-jaccard.plan         |   17 +-
 ...m-edit-distance-check-let-panic-nopanic_01.plan |   18 +-
 ...m-edit-distance-check-let-panic-nopanic_02.plan |   18 +-
 .../ngram-edit-distance-check-let.plan             |   17 +-
 .../ngram-edit-distance-check-substring.plan       |   18 +-
 .../ngram-jaccard-check-let.plan                   |   17 +-
 .../ngram-jaccard-check-multi-let.plan             |   19 +-
 .../olist-edit-distance-check-let.plan             |   20 +-
 .../olist-edit-distance-check-let_ps.plan          |   46 +-
 .../olist-jaccard-check-let.plan                   |   17 +-
 .../ulist-jaccard-check-let.plan                   |   17 +-
 .../word-jaccard-check-let.plan                    |   17 +-
 .../word-jaccard-check-multi-let.plan              |   19 +-
 .../results_cbo/joins/inner_right_corr.plan        |   63 +-
 .../joins/nlj_partitioning_property_1.plan         |   34 +-
 .../joins/nlj_partitioning_property_2.plan         |   34 +-
 .../leftouterjoin/loj-03-no-listify.plan           |  149 ++-
 .../leftouterjoin/query-ASTERIXDB-2857.plan        |   40 +-
 .../meta/indexes_on_dataset_with_meta_05.plan      |   23 +-
 .../meta/indexes_on_dataset_with_meta_08.plan      |   11 +-
 .../multipart-dataverse/index/index-01.plan        |   10 +-
 .../multipart-dataverse/index/index-02.plan        |   10 +-
 .../btree-index-join/ASTERIXDB-2199.plan           |   18 +-
 .../inverted-index-basic/ngram-contains_ps.plan    |   32 +-
 .../olist-edit-distance-check_ps.plan              |   46 +-
 .../olist-edit-distance_ps.plan                    |   46 +-
 .../olist-fuzzyeq-edit-distance_ps.plan            |   46 +-
 .../olist-edit-distance-check-let_ps.plan          |   46 +-
 .../non-enforced-composite-key-equi-join/05.plan   |   29 +-
 .../btree-index/non-enforced-composite-key/01.plan |   10 +-
 .../btree-index/non-enforced-composite-key/02.plan |   10 +-
 .../btree-index/non-enforced-composite-key/03.plan |   15 +-
 .../btree-index/non-enforced-composite-key/04.plan |   16 +-
 .../btree-index/non-enforced-composite-key/05.plan |   16 +-
 .../btree-index/non-enforced-composite-key/06.plan |   16 +-
 .../btree-index/non-enforced-composite-key/07.plan |   16 +-
 .../btree-index/non-enforced-composite-key/08.plan |   16 +-
 .../btree-index/non-enforced-composite-key/09.plan |   16 +-
 .../btree-index/non-enforced-composite-key/10.plan |   16 +-
 .../btree-index/non-enforced-composite-key/11.plan |   16 +-
 .../btree-index/non-enforced-composite-key/12.plan |   16 +-
 .../inverted-index-basic/ngram-contains_ps.plan    |   32 +-
 .../inverted-index-join/ngram-contains_01_ps.plan  |   47 +-
 .../inverted-index-join/ngram-contains_02_ps.plan  |   47 +-
 .../optimizerts/results_cbo/nested_loj2.plan       |   54 +-
 .../inverted-index-basic/ngram-contains_ps.plan    |   32 +-
 .../inverted-index-join/ngram-contains_01_ps.plan  |   47 +-
 .../btree-composite-key-non-enforced-03.plan       |   11 +-
 .../btree-composite-key-non-enforced-04.plan       |   11 +-
 .../btree-equi-join-non-enforced-07.plan           |   27 +-
 .../btree-equi-join-non-enforced-07_ps.plan        |   59 +-
 .../btree-index-non-enforced-04.plan               |   15 +-
 .../btree-index-non-enforced-04_ps.plan            |   35 +-
 .../btree-index-non-enforced-05.plan               |   15 +-
 .../btree-index-non-enforced-05_ps.plan            |   35 +-
 .../btree-index-non-enforced-06.plan               |   15 +-
 .../btree-index-non-enforced-06_ps.plan            |   35 +-
 .../btree-index-non-enforced-07.plan               |   15 +-
 .../btree-index-non-enforced-07_ps.plan            |   35 +-
 .../btree-index-non-enforced-08.plan               |   15 +-
 .../btree-index-non-enforced-08_ps.plan            |   35 +-
 .../btree-index-non-enforced-09.plan               |   15 +-
 .../btree-index-non-enforced-09_ps.plan            |   35 +-
 .../btree-index-non-enforced-10.plan               |   15 +-
 .../btree-index-non-enforced-105.plan              |   15 +-
 .../btree-index-non-enforced-105_ps.plan           |   35 +-
 .../btree-index-non-enforced-10_ps.plan            |   35 +-
 .../btree-index-non-enforced-11.plan               |   15 +-
 .../btree-index-non-enforced-11_ps.plan            |   35 +-
 .../orders-index-search-conjunctive-open_01.plan   |   27 +-
 ...orders-index-search-conjunctive-open_01_ps.plan |   47 +-
 .../orders-index-search-conjunctive-open_02.plan   |   27 +-
 ...orders-index-search-conjunctive-open_02_ps.plan |   47 +-
 .../orders-index-search-conjunctive_01.plan        |   27 +-
 .../orders-index-search-conjunctive_01_ps.plan     |   47 +-
 .../orders-index-search-conjunctive_02.plan        |   27 +-
 .../orders-index-search-conjunctive_02_ps.plan     |   47 +-
 .../optimizerts/results_cbo/q08_group_by.plan      |   84 +-
 .../optimizerts/results_cbo/q09_group_by.plan      |   59 +-
 .../results_cbo/query-ASTERIXDB-2700.plan          |   31 +-
 .../results_cbo/query-ASTERIXDB-3334.plan          |   72 +-
 .../optimizerts/results_cbo/query_issue3316.plan   | 1017 ++++++++++++++++++--
 .../optimizerts/results_cbo/query_issue849-2.plan  |   32 +-
 .../optimizerts/results_cbo/query_issue849.plan    |   34 +-
 .../rtree-sidx-idxonly-01.plan                     |    9 +-
 .../rtree-sidx-idxonly-02.plan                     |    9 +-
 .../rtree-sidx-idxonly-03.plan                     |    9 +-
 .../rtree-sidx-idxonly-04.plan                     |    9 +-
 .../rtree-sidx-idxonly-05.plan                     |    9 +-
 .../rtree-sidx-idxonly-06.plan                     |    9 +-
 .../rtree-sidx-idxonly-07.plan                     |    9 +-
 .../rtree-sidx-idxonly-01-disable-idxonly.plan     |   14 +-
 .../rtree-index/rtree-sidx-idxonly-01.plan         |   14 +-
 .../skip-index/skip-secondary-btree-index-2.plan   |   11 +-
 .../results_cbo/split-materialization.plan         |   21 +-
 .../results_cbo/split-materialization_ps.plan      |   48 +-
 .../statement-params/statement-params-01.plan      |   10 +-
 .../statement-params/statement-params-02.plan      |   10 +-
 .../statement-params/statement-params-03.plan      |   10 +-
 .../statement-params-index-01.plan                 |   14 +-
 .../statement-params-index-02.plan                 |   14 +-
 .../results_cbo/subquery/in_as_or_2.plan           |   31 +-
 .../results_cbo/subquery/in_as_or_2_ps.plan        |   73 +-
 .../results_cbo/subquery/in_as_or_4.plan           |   31 +-
 .../results_cbo/subquery/in_as_or_4_ps.plan        |   73 +-
 .../results_cbo/subquery/in_as_or_6.plan           |   31 +-
 .../results_cbo/subquery/in_as_or_6_ps.plan        |   73 +-
 .../results_cbo/tpcds/query-ASTERIXDB-1580.plan    |   85 +-
 .../results_cbo/tpcds/query-ASTERIXDB-1581.plan    |  207 +++-
 .../results_cbo/tpcds/query-ASTERIXDB-1591.plan    |  180 +++-
 .../results_cbo/tpcds/query-ASTERIXDB-1596.plan    |   32 +-
 .../results_cbo/tpcds/query-ASTERIXDB-1596_ps.plan |   69 +-
 .../results_cbo/tpch/q12_broadcast.plan            |   43 -
 .../results_cbo/tpch/q12_broadcast_ps.plan         |   95 --
 .../optimizerts/results_cbo/tpch/q12_shipping.plan |   50 +-
 .../results_cbo/tpch/q12_shipping_broadcast.plan   |   50 +-
 .../tpch/q12_shipping_broadcast_ps.plan            |  110 ++-
 .../results_cbo/tpch/q12_shipping_ps.plan          |  110 ++-
 .../deltalake-partitioned-file-read.00.ddl.sqlpp   |   35 +
 .../deltalake-partitioned-file-read.01.query.sqlpp |   22 +
 .../query-ASTERIXDB-3562.1.ddl.sqlpp               |   29 +
 .../query-ASTERIXDB-3562.2.update.sqlpp            |   22 +
 .../query-ASTERIXDB-3562.3.query.sqlpp             |   22 +
 .../query-ASTERIXDB-3562.4.query.sqlpp             |   23 +
 .../query-ASTERIXDB-3562.5.ddl.sqlpp               |   20 +
 .../read-data.2.adm                                |    5 +
 .../query-ASTERIXDB-3562.3.adm                     |    1 +
 .../query-ASTERIXDB-3562.4.plan                    |   34 +
 .../join-queries/join-queries.5.plan               |   18 +-
 .../join-queries/join-queries.6.plan               |   26 +-
 .../join-queries/join-queries.7.plan               |   26 +-
 .../join-queries/join-queries.8.plan               |   24 +-
 .../field-access-pushdown.008.plan                 |   20 +-
 .../hash-join-with-redundant-variable.04.plan      |   96 +-
 .../hash-join-with-redundant-variable.10.plan      |   98 +-
 .../hash-join-with-redundant-variable.12.plan      |   18 +-
 .../hash-join-with-redundant-variable.14.plan      |   36 +-
 .../hash-join-with-redundant-variable.16.plan      |   28 +-
 .../index-only-leftouterjoin.007.plan              |   14 +-
 .../index-only-leftouterjoin.008.plan              |   14 +-
 .../index-only-leftouterjoin.009.plan              |   14 +-
 .../index-only-leftouterjoin.010.plan              |   14 +-
 .../push-limit-to-primary-scan-select.5.plan       |   18 +-
 .../query-ASTERIXDB-3562.4.plan                    |   34 +
 .../tpch/query-plans/query-plans.04.plan           |   40 +-
 .../tpch/query-plans/query-plans.07.plan           |   50 +-
 .../tpch/query-plans/query-plans.08.plan           |   36 +-
 .../tpch/query-plans/query-plans.09.plan           |   26 +-
 .../tpch/query-plans/query-plans.10.plan           |   24 +-
 .../tpch/query-plans/query-plans.11.plan           |   40 +-
 .../query-ASTERIXDB-3562.4.plan                    |   34 +
 .../src/test/resources/runtimets/sqlpp_queries.xml |    5 +
 .../runtimets/testsuite_external_dataset_s3.xml    |    6 +
 .../filter/DeltaTableFilterEvaluatorFactory.java   |   53 +
 .../NoOpDeltaTableFilterEvaluatorFactory.java      |   46 +
 .../reader/aws/delta/DeltaReaderFactory.java       |   23 +-
 .../apache/asterix/metadata/utils/DatasetUtil.java |    5 +
 .../apache/asterix/metadata/utils/IndexUtil.java   |   30 +-
 .../utils/filter/AbstractFilterBuilder.java        |    2 +-
 .../utils/filter/DeltaTableFilterBuilder.java      |  180 ++++
 .../algebra/operators/logical/SubplanOperator.java |    2 +-
 hyracks-fullstack/pom.xml                          |    2 +-
 1137 files changed, 40718 insertions(+), 5701 deletions(-)

diff --cc 
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java
index 87f8f9156c,7df9b477b2..8bcf7a2f69
--- 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java
+++ 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/DatasetUtil.java
@@@ -756,95 -745,8 +756,100 @@@ public class DatasetUtil 
                  && dataset.getDatasetFormatInfo().getFormat() == 
DatasetConfig.DatasetFormat.COLUMN;
      }
  
 +    public static void truncate(MetadataProvider metadataProvider, Dataset 
ds) throws Exception {
 +        if (ds.getDatasetType() == DatasetType.INTERNAL) {
 +            IHyracksClientConnection hcc;
 +            Map<String, List<DatasetPartitions>> nc2Resources = 
getNodeResources(metadataProvider, ds);
 +            AlgebricksAbsolutePartitionConstraint nodeSet =
 +                    new 
AlgebricksAbsolutePartitionConstraint(nc2Resources.keySet().toArray(new 
String[0]));
 +            JobSpecification job = new JobSpecification();
 +            IOperatorDescriptor truncateOp = new 
TruncateOperatorDescriptor(job, nc2Resources);
 +            
AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(job, 
truncateOp, nodeSet);
 +            hcc = metadataProvider.getApplicationContext().getHcc();
 +            JobUtils.runJobIfActive(hcc, job, true);
 +        } else {
 +            throw new IllegalArgumentException("Cannot truncate a 
non-internal dataset.");
 +        }
 +    }
 +
 +    public static DatasetPartitions 
getPartitionsAndDataflowHelperFactory(Dataset dataset,
 +            List<DatasetPartitions> ncResources, IIndexDataflowHelperFactory 
primary,
 +            List<IIndexDataflowHelperFactory> secondaries) {
 +        DatasetPartitions partitionsAndDataflowHelperFactory;
 +        if (ncResources.isEmpty()) {
 +            partitionsAndDataflowHelperFactory =
 +                    new DatasetPartitions(dataset, new ArrayList<>(), 
primary, secondaries);
 +            ncResources.add(partitionsAndDataflowHelperFactory);
 +        } else {
 +            DatasetPartitions last = ncResources.get(ncResources.size() - 1);
 +            if (last.getPrimaryIndexDataflowHelperFactory() == primary) {
 +                partitionsAndDataflowHelperFactory = last;
 +            } else {
 +                partitionsAndDataflowHelperFactory =
 +                        new DatasetPartitions(dataset, new ArrayList<>(), 
primary, secondaries);
 +                ncResources.add(partitionsAndDataflowHelperFactory);
 +            }
 +        }
 +        return partitionsAndDataflowHelperFactory;
 +    }
 +
 +    public static Map<String, List<DatasetPartitions>> 
getNodeResources(MetadataProvider metadataProvider,
 +            Dataset dataset) throws AlgebricksException {
 +        Map<String, List<DatasetPartitions>> nc2Resources = new HashMap<>();
 +        IStorageManager storageManager = 
metadataProvider.getStorageComponentProvider().getStorageManager();
 +
 +        // get secondary indexes
 +        List<Index> secondaryIndexes =
 +                metadataProvider
 +                        .getDatasetIndexes(dataset.getDatabaseName(), 
dataset.getDataverseName(),
 +                                dataset.getDatasetName())
 +                        
.stream().filter(Index::isSecondaryIndex).collect(Collectors.toList());
 +        PartitioningProperties partitioningProperties = 
metadataProvider.getPartitioningProperties(dataset);
 +        IIndexDataflowHelperFactory primary =
 +                new IndexDataflowHelperFactory(storageManager, 
partitioningProperties.getSplitsProvider());
 +        List<IIndexDataflowHelperFactory> secondaries =
 +                secondaryIndexes.isEmpty() ? Collections.emptyList() : new 
ArrayList<>();
 +        for (Index index : secondaryIndexes) {
 +            PartitioningProperties idxPartitioningProperties =
 +                    metadataProvider.getPartitioningProperties(dataset, 
index.getIndexName());
 +            secondaries
 +                    .add(new IndexDataflowHelperFactory(storageManager, 
idxPartitioningProperties.getSplitsProvider()));
 +        }
 +        AlgebricksAbsolutePartitionConstraint computeLocations =
 +                (AlgebricksAbsolutePartitionConstraint) 
partitioningProperties.getConstraints();
 +        int[][] computeStorageMap = 
partitioningProperties.getComputeStorageMap();
 +        for (int j = 0; j < computeLocations.getLocations().length; j++) {
 +            String loc = computeLocations.getLocations()[j];
 +            DatasetPartitions partitionsAndDataflowHelperFactories = 
getPartitionsAndDataflowHelperFactory(dataset,
 +                    nc2Resources.computeIfAbsent(loc, key -> new 
ArrayList<>()), primary, secondaries);
 +            List<Integer> dsPartitions = 
partitionsAndDataflowHelperFactories.getPartitions();
 +            int[] computeStoragePartitions = computeStorageMap[j];
 +            for (int storagePartition : computeStoragePartitions) {
 +                dsPartitions.add(storagePartition);
 +            }
 +        }
 +        return nc2Resources;
 +    }
 +
 +    public static DatasetResource getDatasetResource(DatasetLifecycleManager 
dslMgr, Integer partition,
 +            IndexDataflowHelper indexHelper) throws HyracksDataException {
 +        LocalResource lr = indexHelper.getResource();
 +        DatasetLocalResource dslr = (DatasetLocalResource) lr.getResource();
 +        int datasetId = dslr.getDatasetId();
 +        DatasetResource dsr = dslMgr.getDatasetLifecycle(datasetId);
 +        // Ensure that no active operations exists
 +        int numActiveOperations =
 +                dslMgr.getOperationTracker(datasetId, partition, 
lr.getPath()).getNumActiveOperations();
 +        if (numActiveOperations > 0) {
 +            throw new IllegalStateException("Can't truncate the collection " 
+ dsr.getDatasetInfo().getDatasetID()
 +                    + " because the number of active operations = " + 
numActiveOperations + " in the partition "
 +                    + partition);
 +        }
 +        return dsr;
 +    }
++
+     public static boolean isDeltaTable(Dataset dataset) {
+         return dataset.getDatasetType() == DatasetType.EXTERNAL && 
ExternalDataUtils
+                 .isDeltaTable(((ExternalDatasetDetails) 
dataset.getDatasetDetails()).getProperties());
+     }
  }

Reply via email to