This is an automated email from the ASF dual-hosted git repository. mhubail pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit f4feb32e89380285cbe5bf018e710a8d3eab6548 Merge: faa22fabde 2cfe64a1eb Author: Ritik Raj <[email protected]> AuthorDate: Tue Jul 8 13:38:17 2025 +0530 Merge branch 'gerrit/ionic' to 'gerrit/master' Change-Id: If0793d8dcd2caf64b2f1f9676157f1fc88f97c8e .../processor/AbstractFilterPushdownProcessor.java | 86 ++++++++++---- .../processor/ColumnFilterPushdownProcessor.java | 32 ++++- .../ColumnRangeFilterPushdownProcessor.java | 17 +-- .../DeltaTableFilterPushdownProcessor.java | 6 +- .../ExternalDatasetFilterPushdownProcessor.java | 8 +- .../processor/ParquetFilterPushdownProcessor.java | 6 +- asterixdb/asterix-app/pom.xml | 3 +- .../test/cloud_storage/CloudStorageSparseTest.java | 130 +++++++++++++++++++++ .../runtime/SqlppSinglePartitionExecutionTest.java | 8 ++ ...d-storage.conf => cc-cloud-storage-sparse.conf} | 1 + .../src/test/resources/cc-cloud-storage.conf | 1 + .../filter/return-array/return-array.001.ddl.sqlpp | 30 +++++ .../return-array/return-array.002.update.sqlpp | 30 +++++ .../return-array/return-array.003.query.sqlpp | 23 ++++ .../return-array/return-array.004.query.sqlpp | 23 ++++ .../return-array/return-array.005.query.sqlpp | 25 ++++ .../return-array/return-array.006.query.sqlpp | 23 ++++ .../return-array/return-array.007.query.sqlpp | 24 ++++ .../return-array/return-array.008.query.sqlpp | 26 +++++ .../return-array/return-array.009.query.sqlpp | 26 +++++ .../index-leftouterjoin-example.1.ddl.sqlpp | 36 ++++++ .../index-leftouterjoin-example.2.update.sqlpp | 25 ++++ .../index-leftouterjoin-example.3.query.sqlpp | 23 ++++ .../index-leftouterjoin-example.4.query.sqlpp | 23 ++++ .../index-leftouterjoin-example.5.query.sqlpp | 23 ++++ .../filter/return-array/return-array.003.adm | 1 + .../filter/return-array/return-array.004.adm | 1 + .../filter/return-array/return-array.005.adm | 1 + .../filter/return-array/return-array.006.adm | 1 + .../filter/return-array/return-array.007.adm | 18 +++ .../filter/return-array/return-array.008.adm | 18 +++ .../filter/return-array/return-array.009.adm | 18 +++ .../index-leftouterjoin-example.1.adm | 2 + .../index-leftouterjoin-example.2.adm | 3 + .../index-leftouterjoin-example.3.adm | 2 + .../filter/return-array/return-array.007.adm | 18 +++ .../filter/return-array/return-array.008.adm | 18 +++ .../filter/return-array/return-array.009.adm | 18 +++ .../src/test/resources/runtimets/sqlpp_queries.xml | 10 ++ .../runtimets/testsuite_single_partition_sqlpp.xml | 5 + .../stream/in/MultiPageZeroByteBuffersReader.java | 53 +++++++-- .../lsm/flush/FlushColumnTupleWriter.java | 19 +-- .../lsm/merge/MergeColumnTupleWriter.java | 19 +-- .../column/zero/PageZeroWriterFlavorSelector.java | 2 +- .../zero/readers/DefaultColumnPageZeroReader.java | 20 ++-- .../zero/readers/SparseColumnPageZeroReader.java | 9 +- .../DefaultColumnMultiPageZeroReader.java | 27 +++-- .../DefaultColumnMultiPageZeroWriter.java | 8 +- .../multipage/SparseColumnMultiPageZeroReader.java | 76 +++++++----- .../multipage/SparseColumnMultiPageZeroWriter.java | 12 +- .../column/test/bytes/AbstractBytesTest.java | 4 +- .../column/api/AbstractColumnTupleWriter.java | 2 +- .../am/lsm/btree/column/cloud/ColumnRanges.java | 114 +++++++++--------- .../buffercache/read/CloudColumnReadContext.java | 12 +- .../column/impls/btree/ColumnBTreeBulkloader.java | 4 +- .../impls/btree/ColumnBTreeReadLeafFrame.java | 9 +- .../column/impls/btree/IColumnPageZeroReader.java | 4 +- .../tuples/ColumnMultiPageZeroBufferProvider.java | 42 ++++++- ...MBTreeBatchPointSearchOperatorNodePushable.java | 5 + 59 files changed, 1034 insertions(+), 199 deletions(-) diff --cc asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/return-array/return-array.007.adm index 0000000000,65a8abc378..bb24b8a2e5 mode 000000,100644..100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/return-array/return-array.007.adm +++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/return-array/return-array.007.adm @@@ -1,0 -1,18 +1,18 @@@ -distribute result [$$18] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0] ++distribute result [$$18] [cardinality: 0.0, doc-size: 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] ++ exchange [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - assign [$$18] <- [{"c": $$c}] project: [$$18] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0] ++ assign [$$18] <- [{"c": $$c}] project: [$$18] [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] + -- ASSIGN |PARTITIONED| - select (eq(numeric-add($$c.getField("n").getField("x"), 1), 13)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0] ++ select (eq(numeric-add($$c.getField("n").getField("x"), 1), 13)) [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] + -- STREAM_SELECT |PARTITIONED| - project ([$$c]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0] ++ project ([$$c]) [cardinality: 0.0, doc-size: 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] ++ exchange [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - data-scan []<-[$$19, $$c] <- test.ColumnDataset filter on: eq(numeric-add($$c.getField("n").getField("x"), 1), 13) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0] ++ data-scan []<-[$$19, $$c] <- test.ColumnDataset filter on: eq(numeric-add($$c.getField("n").getField("x"), 1), 13) [cardinality: 0.0, doc-size: 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] ++ exchange [cardinality: 0.0, doc-size: 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 [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] + -- EMPTY_TUPLE_SOURCE |PARTITIONED| diff --cc asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/return-array/return-array.008.adm index 0000000000,2f65f60a7d..1935885504 mode 000000,100644..100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/return-array/return-array.008.adm +++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/return-array/return-array.008.adm @@@ -1,0 -1,18 +1,18 @@@ -distribute result [$$18] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0] ++distribute result [$$18] [cardinality: 0.0, doc-size: 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] ++ exchange [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - assign [$$18] <- [{"c": $$c}] project: [$$18] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0] ++ assign [$$18] <- [{"c": $$c}] project: [$$18] [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] + -- ASSIGN |PARTITIONED| - select (eq($$c.getField("nested_field").getField("array_field"), ordered-list-constructor(1, "a", true))) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0] ++ select (eq($$c.getField("nested_field").getField("array_field"), ordered-list-constructor(1, "a", true))) [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] + -- STREAM_SELECT |PARTITIONED| - project ([$$c]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0] ++ project ([$$c]) [cardinality: 0.0, doc-size: 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] ++ exchange [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - data-scan []<-[$$19, $$c] <- test.ColumnDataset [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0] ++ data-scan []<-[$$19, $$c] <- test.ColumnDataset [cardinality: 0.0, doc-size: 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] ++ exchange [cardinality: 0.0, doc-size: 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 [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] + -- EMPTY_TUPLE_SOURCE |PARTITIONED| diff --cc asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/return-array/return-array.009.adm index 0000000000,1235754525..9b20402c8e mode 000000,100644..100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/return-array/return-array.009.adm +++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/column/filter/return-array/return-array.009.adm @@@ -1,0 -1,18 +1,18 @@@ -distribute result [$$17] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0] ++distribute result [$$17] [cardinality: 0.0, doc-size: 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] ++ exchange [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - assign [$$17] <- [{"c": $$c}] project: [$$17] [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0] ++ assign [$$17] <- [{"c": $$c}] project: [$$17] [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] + -- ASSIGN |PARTITIONED| - select (eq($$c.getField("nested_field").getField("a"), 1)) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0] ++ select (eq($$c.getField("nested_field").getField("a"), 1)) [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] + -- STREAM_SELECT |PARTITIONED| - project ([$$c]) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0] ++ project ([$$c]) [cardinality: 0.0, doc-size: 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] ++ exchange [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] + -- ONE_TO_ONE_EXCHANGE |PARTITIONED| - data-scan []<-[$$18, $$c] <- test.ColumnDataset filter on: eq($$c.getField("nested_field").getField("a"), 1) range-filter on: eq($$c.getField("nested_field").getField("a"), 1) [cardinality: 0.0, op-cost: 0.0, total-cost: 0.0] ++ data-scan []<-[$$18, $$c] <- test.ColumnDataset filter on: eq($$c.getField("nested_field").getField("a"), 1) range-filter on: eq($$c.getField("nested_field").getField("a"), 1) [cardinality: 0.0, doc-size: 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] ++ exchange [cardinality: 0.0, doc-size: 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 [cardinality: 0.0, doc-size: 0.0, op-cost: 0.0, total-cost: 0.0] + -- EMPTY_TUPLE_SOURCE |PARTITIONED|
