>From Murtadha Hubail <[email protected]>: Murtadha Hubail has submitted this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18773 )
Change subject: [ASTERIXDB-3494][STO] Column tuple projector fixes ...................................................................... [ASTERIXDB-3494][STO] Column tuple projector fixes - user model changes: no - storage format changes: no - interface changes: no - Fix column projection types for tuple projectors. - Use the proper ColumnReadContext on MODIFY operations. Ext-ref: MB-63316 Change-Id: I3672352d7c8213c0478f88521d64f75ae67fb6e5 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18773 Integration-Tests: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Reviewed-by: Wail Alkowaileet <[email protected]> --- M asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/upsert/UpsertPreviousColumnTupleWithMetaProjector.java M asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnTupleProjectorFactory.java M asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnWithMetaTupleProjector.java M asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/create/PrimaryScanColumnTupleWithMetaProjector.java M hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/cloud/CloudColumnIndexDiskCacheManager.java 5 files changed, 32 insertions(+), 10 deletions(-) Approvals: Wail Alkowaileet: Looks good to me, approved Jenkins: Verified; Verified Anon. E. Moose #1000171: diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/create/PrimaryScanColumnTupleWithMetaProjector.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/create/PrimaryScanColumnTupleWithMetaProjector.java index 79a1860..096134a 100644 --- a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/create/PrimaryScanColumnTupleWithMetaProjector.java +++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/create/PrimaryScanColumnTupleWithMetaProjector.java @@ -18,6 +18,8 @@ */ package org.apache.asterix.column.operation.lsm.secondary.create; +import static org.apache.hyracks.storage.am.lsm.btree.column.api.projection.ColumnProjectorType.MODIFY; + import java.io.DataOutput; import java.io.IOException; import java.util.Collections; @@ -40,7 +42,7 @@ int numberOfPrimaryKeys, ARecordType requestedType) { projector = new QueryColumnWithMetaTupleProjector(datasetType, metaType, numberOfPrimaryKeys, requestedType, Collections.emptyMap(), metaType, NoOpColumnFilterEvaluatorFactory.INSTANCE, - NoOpColumnFilterEvaluatorFactory.INSTANCE, NoOpWarningCollector.INSTANCE, null); + NoOpColumnFilterEvaluatorFactory.INSTANCE, NoOpWarningCollector.INSTANCE, null, MODIFY); } @Override diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/upsert/UpsertPreviousColumnTupleWithMetaProjector.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/upsert/UpsertPreviousColumnTupleWithMetaProjector.java index 271649a..65d6d21 100644 --- a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/upsert/UpsertPreviousColumnTupleWithMetaProjector.java +++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/lsm/secondary/upsert/UpsertPreviousColumnTupleWithMetaProjector.java @@ -18,6 +18,8 @@ */ package org.apache.asterix.column.operation.lsm.secondary.upsert; +import static org.apache.hyracks.storage.am.lsm.btree.column.api.projection.ColumnProjectorType.MODIFY; + import java.io.DataOutput; import java.io.IOException; import java.util.Collections; @@ -43,7 +45,7 @@ builder = new ArrayTupleBuilder(numberOfPrimaryKeys + 2); projector = new QueryColumnWithMetaTupleProjector(datasetType, metaType, numberOfPrimaryKeys, requestedType, Collections.emptyMap(), metaType, NoOpColumnFilterEvaluatorFactory.INSTANCE, - NoOpColumnFilterEvaluatorFactory.INSTANCE, NoOpWarningCollector.INSTANCE, null); + NoOpColumnFilterEvaluatorFactory.INSTANCE, NoOpWarningCollector.INSTANCE, null, MODIFY); } @Override diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnTupleProjectorFactory.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnTupleProjectorFactory.java index e333405..68362e8 100644 --- a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnTupleProjectorFactory.java +++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnTupleProjectorFactory.java @@ -68,6 +68,6 @@ // The dataset has a meta part return new QueryColumnWithMetaTupleProjector(datasetType, metaType, numberOfPrimaryKeys, requestedType, functionCallInfo, requestedMetaType, rangeFilterEvaluatorFactory, columnFilterEvaluatorFactory, - warningCollector, context); + warningCollector, context, QUERY); } } diff --git a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnWithMetaTupleProjector.java b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnWithMetaTupleProjector.java index 74524fe..d7fb662 100644 --- a/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnWithMetaTupleProjector.java +++ b/asterixdb/asterix-column/src/main/java/org/apache/asterix/column/operation/query/QueryColumnWithMetaTupleProjector.java @@ -18,8 +18,6 @@ */ package org.apache.asterix.column.operation.query; -import static org.apache.hyracks.storage.am.lsm.btree.column.api.projection.ColumnProjectorType.QUERY; - import java.io.DataOutput; import java.io.IOException; import java.util.Map; @@ -37,6 +35,7 @@ import org.apache.hyracks.data.std.api.IValueReference; import org.apache.hyracks.dataflow.common.comm.io.ArrayTupleBuilder; import org.apache.hyracks.dataflow.common.data.accessors.ITupleReference; +import org.apache.hyracks.storage.am.lsm.btree.column.api.projection.ColumnProjectorType; import org.apache.hyracks.storage.am.lsm.btree.column.api.projection.IColumnProjectionInfo; public class QueryColumnWithMetaTupleProjector extends QueryColumnTupleProjector { @@ -47,9 +46,9 @@ ARecordType requestedType, Map<String, FunctionCallInformation> functionCallInfoMap, ARecordType requestedMetaType, IColumnRangeFilterEvaluatorFactory filterEvaluator, IColumnIterableFilterEvaluatorFactory columnFilterEvaluatorFactory, IWarningCollector warningCollector, - IHyracksTaskContext context) { + IHyracksTaskContext context, ColumnProjectorType projectorType) { super(datasetType, numberOfPrimaryKeys, requestedType, functionCallInfoMap, filterEvaluator, - columnFilterEvaluatorFactory, warningCollector, context, QUERY); + columnFilterEvaluatorFactory, warningCollector, context, projectorType); this.metaType = metaType; this.requestedMetaType = requestedMetaType; } diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/cloud/CloudColumnIndexDiskCacheManager.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/cloud/CloudColumnIndexDiskCacheManager.java index 417322e..34d8344 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/cloud/CloudColumnIndexDiskCacheManager.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/cloud/CloudColumnIndexDiskCacheManager.java @@ -28,7 +28,6 @@ import org.apache.hyracks.storage.am.lsm.btree.column.cloud.buffercache.IColumnReadContext; import org.apache.hyracks.storage.am.lsm.btree.column.cloud.buffercache.IColumnWriteContext; import org.apache.hyracks.storage.am.lsm.btree.column.cloud.buffercache.read.CloudColumnReadContext; -import org.apache.hyracks.storage.am.lsm.btree.column.cloud.buffercache.read.DefaultColumnReadContext; import org.apache.hyracks.storage.am.lsm.btree.column.cloud.buffercache.write.CloudColumnWriteContext; import org.apache.hyracks.storage.am.lsm.btree.column.cloud.sweep.ColumnSweepPlanner; import org.apache.hyracks.storage.am.lsm.btree.column.cloud.sweep.ColumnSweeper; @@ -73,9 +72,8 @@ if (projectorType == ColumnProjectorType.QUERY) { planner.access(projectionInfo); } else if (projectorType == ColumnProjectorType.MODIFY) { - planner.setIndexedColumns(projectionInfo); // Requested (and indexed) columns will be persisted if space permits - return DefaultColumnReadContext.INSTANCE; + planner.setIndexedColumns(projectionInfo); } return new CloudColumnReadContext(projectionInfo, drive, planner.getPlanCopy()); } -- To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18773 To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: goldfish Gerrit-Change-Id: I3672352d7c8213c0478f88521d64f75ae67fb6e5 Gerrit-Change-Number: 18773 Gerrit-PatchSet: 5 Gerrit-Owner: Peeyush Gupta <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Murtadha Hubail <[email protected]> Gerrit-Reviewer: Wail Alkowaileet <[email protected]> Gerrit-MessageType: merged
