[ASTERIXDB-3025][HYR] Introduce ITupleProjector
authorWail Alkowaileet <wael.y.k@gmail.com>
Sat, 26 Feb 2022 00:07:43 +0000 (16:07 -0800)
committerWail Alkowaileet <wael.y.k@gmail.com>
Thu, 3 Mar 2022 02:24:47 +0000 (02:24 +0000)
commitaf65cd9aa3ac2ed11633973d1fa10c78b1d4c59e
tree99d4f670e43bda01121bdce1801e0aaad00cf450
parent51543d9d28f13107514d900e0b3bb4e7b09ccc58
[ASTERIXDB-3025][HYR] Introduce ITupleProjector

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

Details:
The TupleProjector is a way to pushdown value accesses
for the internal datasets (similar to Parquet's).

The current default implementation is basically a no-op.
This patch introduces the mechanism for the columnar
format's tuple projector implementation.

Change-Id: I1fadcef70451a7616e021771a1110413de4fb711
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/15465
Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Wail Alkowaileet <wael.y.k@gmail.com>
Reviewed-by: Ali Alsuliman <ali.al.solaiman@gmail.com>
Reviewed-by: Murtadha Hubail <mhubail@apache.org>
14 files changed:
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/BTreeSearchPOperator.java
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DatasetDataSource.java
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
hyracks-fullstack/hyracks/hyracks-api/src/main/java/org/apache/hyracks/api/util/HyracksConstants.java
hyracks-fullstack/hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/dataflow/BTreeSearchOperatorDescriptor.java
hyracks-fullstack/hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/dataflow/BTreeSearchOperatorNodePushable.java
hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexSearchOperatorNodePushable.java
hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/impls/DefaultTupleProjector.java [new file with mode: 0644]
hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/impls/DefaultTupleProjectorFactory.java [new file with mode: 0644]
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/LSMBTreeBatchPointSearchOperatorDescriptor.java
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/LSMBTreeBatchPointSearchOperatorNodePushable.java
hyracks-fullstack/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/dataflow/RTreeSearchOperatorNodePushable.java
hyracks-fullstack/hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/projection/ITupleProjector.java [new file with mode: 0644]
hyracks-fullstack/hyracks/hyracks-storage-common/src/main/java/org/apache/hyracks/storage/common/projection/ITupleProjectorFactory.java [new file with mode: 0644]