You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "abdullah alamoudi (Code Review)" <do...@asterixdb.incubator.apache.org> on 2015/11/06 11:01:46 UTC

Change in asterixdb[master]: Add Upsert Operation

Hello Jenkins,

I'd like you to reexamine a change.  Please visit

    https://asterix-gerrit.ics.uci.edu/477

to look at the new patch set (#3).

Change subject: Add Upsert Operation
......................................................................

Add Upsert Operation

this change allows users to execute upsert commands which
couples delete if found with insert. It locks the primary
keys before doing the search ensuring consistency.

Change-Id: I8999000331795a5949d621d2dd003903e057a521
---
M asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/CommitOperator.java
M asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/CommitPOperator.java
M asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/CommitRuntime.java
M asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/CommitRuntimeFactory.java
A asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/UpsertCommitRuntime.java
M asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceSecondaryIndexInsertDeleteRule.java
M asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ReplaceSinkOpWithCommitOpRule.java
M asterix-algebra/src/main/java/org/apache/asterix/translator/AqlExpressionToPlanTranslator.java
M asterix-algebra/src/main/java/org/apache/asterix/translator/CompiledStatements.java
A asterix-app/data/dblp-small/more-dblp-small-id.txt
A asterix-app/data/more-fbm-with-send-time.adm
A asterix-app/data/semistructured/tiny01/more-customer.adm
A asterix-app/data/spatial/moreSpatialData.json
A asterix-app/data/tpch0.001/other-orders.tbl
A asterix-app/data/upsert/raw-data/more-data.txt
A asterix-app/data/upsert/raw-data/overlapping.data
A asterix-app/data/upsert/raw-data/test-data.txt
M asterix-app/src/main/java/org/apache/asterix/api/http/servlet/APIServlet.java
M asterix-app/src/main/java/org/apache/asterix/api/http/servlet/RESTAPIServlet.java
M asterix-app/src/main/java/org/apache/asterix/api/http/servlet/UpdateAPIServlet.java
M asterix-app/src/main/java/org/apache/asterix/aql/translator/AqlTranslator.java
M asterix-app/src/test/java/org/apache/asterix/test/runtime/HDFSCluster.java
A asterix-app/src/test/resources/runtimets/queries/upsert/filtered-dataset/filtered-dataset.1.ddl.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/filtered-dataset/filtered-dataset.2.update.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/filtered-dataset/filtered-dataset.3.query.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/multiple-secondaries/multiple-secondaries.1.ddl.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/multiple-secondaries/multiple-secondaries.2.update.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/multiple-secondaries/multiple-secondaries.3.query.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/nested-index/nested-index.1.ddl.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/nested-index/nested-index.2.update.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/nested-index/nested-index.3.query.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/nullable-index/nullable-index.1.ddl.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/nullable-index/nullable-index.2.update.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/nullable-index/nullable-index.3.query.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/open-index/open-index.1.ddl.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/open-index/open-index.2.update.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/open-index/open-index.3.query.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/primary-index/primary-index.1.ddl.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/primary-index/primary-index.2.update.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/primary-index/primary-index.3.query.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/primary-secondary-btree/primary-secondary-btree.1.ddl.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/primary-secondary-btree/primary-secondary-btree.2.update.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/primary-secondary-btree/primary-secondary-btree.3.query.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/primary-secondary-inverted/primary-secondary-inverted.1.ddl.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/primary-secondary-inverted/primary-secondary-inverted.2.update.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/primary-secondary-inverted/primary-secondary-inverted.3.query.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/primary-secondary-rtree/primary-secondary-rtree.1.ddl.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/primary-secondary-rtree/primary-secondary-rtree.2.update.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/primary-secondary-rtree/primary-secondary-rtree.3.query.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/upsert-with-self-read/upsert-with-self-read.1.ddl.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/upsert-with-self-read/upsert-with-self-read.2.update.aql
A asterix-app/src/test/resources/runtimets/queries/upsert/upsert-with-self-read/upsert-with-self-read.3.query.aql
A asterix-app/src/test/resources/runtimets/results/upsert/filtered-dataset/filtered-dataset.1.adm
A asterix-app/src/test/resources/runtimets/results/upsert/multiple-secondaries/multiple-secondaries.1.adm
A asterix-app/src/test/resources/runtimets/results/upsert/nested-index/nested-index.1.adm
A asterix-app/src/test/resources/runtimets/results/upsert/nullable-index/nullable-index.1.adm
A asterix-app/src/test/resources/runtimets/results/upsert/open-index/open-index.1.adm
A asterix-app/src/test/resources/runtimets/results/upsert/primary-index/primary-index.1.adm
A asterix-app/src/test/resources/runtimets/results/upsert/primary-secondary-btree/primary-secondary-btree.1.adm
A asterix-app/src/test/resources/runtimets/results/upsert/primary-secondary-inverted/primary-secondary-inverted.1.adm
A asterix-app/src/test/resources/runtimets/results/upsert/primary-secondary-rtree/primary-secondary-rtree.1.adm
A asterix-app/src/test/resources/runtimets/results/upsert/upsert-with-self-read/upsert-with-self-read.1.adm
M asterix-app/src/test/resources/runtimets/testsuite.xml
D asterix-common/src/main/java/org/apache/asterix/common/dataflow/AsterixLSMTreeInsertDeleteOperatorDescriptor.java
M asterix-common/src/main/java/org/apache/asterix/common/feeds/api/IDatasourceAdapter.java
M asterix-common/src/main/java/org/apache/asterix/common/parse/ITupleForwardPolicy.java
M asterix-common/src/main/java/org/apache/asterix/common/transactions/AbstractOperationCallback.java
M asterix-common/src/main/java/org/apache/asterix/common/transactions/ILogRecord.java
M asterix-common/src/main/java/org/apache/asterix/common/transactions/LogRecord.java
M asterix-common/src/main/java/org/apache/asterix/common/transactions/LogType.java
M asterix-external-data/src/main/java/org/apache/asterix/external/adapter/factory/CNNFeedAdapterFactory.java
M asterix-external-data/src/main/java/org/apache/asterix/external/adapter/factory/HDFSAdapterFactory.java
M asterix-external-data/src/main/java/org/apache/asterix/external/adapter/factory/HiveAdapterFactory.java
M asterix-external-data/src/main/java/org/apache/asterix/external/adapter/factory/NCFileSystemAdapterFactory.java
M asterix-external-data/src/main/java/org/apache/asterix/external/adapter/factory/PullBasedAzureTwitterAdapterFactory.java
M asterix-external-data/src/main/java/org/apache/asterix/external/adapter/factory/PullBasedTwitterAdapterFactory.java
M asterix-external-data/src/main/java/org/apache/asterix/external/adapter/factory/PushBasedTwitterAdapterFactory.java
M asterix-external-data/src/main/java/org/apache/asterix/external/adapter/factory/RSSFeedAdapterFactory.java
M asterix-external-data/src/main/java/org/apache/asterix/external/adapter/factory/StreamBasedAdapterFactory.java
M asterix-external-data/src/main/java/org/apache/asterix/external/dataset/adapter/ClientBasedFeedAdapter.java
M asterix-external-data/src/main/java/org/apache/asterix/external/dataset/adapter/FileSystemBasedAdapter.java
M asterix-external-data/src/main/java/org/apache/asterix/external/dataset/adapter/PullBasedAzureTwitterAdapter.java
M asterix-external-data/src/main/java/org/apache/asterix/external/dataset/adapter/StreamBasedAdapter.java
M asterix-external-data/src/test/java/org/apache/asterix/external/library/adapter/TestTypedAdapterFactory.java
M asterix-lang-aql/src/main/javacc/AQL.jj
M asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/Statement.java
M asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/InsertStatement.java
M asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/AqlMetadataProvider.java
M asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/FieldExtractingAdapter.java
M asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/FieldExtractingAdapterFactory.java
M asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/PKGeneratingAdapter.java
M asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/PKGeneratingAdapterFactory.java
M asterix-metadata/src/main/java/org/apache/asterix/metadata/external/IAdapterFactory.java
M asterix-metadata/src/main/java/org/apache/asterix/metadata/feeds/AbstractDatasourceAdapter.java
M asterix-metadata/src/main/java/org/apache/asterix/metadata/feeds/AbstractFeedDatasourceAdapter.java
M asterix-metadata/src/main/java/org/apache/asterix/metadata/feeds/ExternalDataScanOperatorDescriptor.java
M asterix-metadata/src/main/java/org/apache/asterix/metadata/feeds/FeedUtil.java
M asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
R asterix-runtime/src/main/java/org/apache/asterix/runtime/dataflow/AsterixLSMInvertedIndexInsertDeleteOperatorDescriptor.java
A asterix-runtime/src/main/java/org/apache/asterix/runtime/dataflow/AsterixLSMPrimaryUpsertOperatorNodePushable.java
A asterix-runtime/src/main/java/org/apache/asterix/runtime/dataflow/AsterixLSMSecondaryUpsertOperatorNodePushable.java
A asterix-runtime/src/main/java/org/apache/asterix/runtime/dataflow/AsterixLSMTreeInsertDeleteOperatorDescriptor.java
M asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessByIndexEvalFactory.java
M asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/file/AbstractTupleParser.java
M asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/file/CounterTimerTupleForwardPolicy.java
M asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/file/FrameFullTupleForwardPolicy.java
M asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/file/RateControlledTupleForwardPolicy.java
M asterix-tools/src/main/java/org/apache/asterix/tools/external/data/GenericSocketFeedAdapterFactory.java
M asterix-tools/src/main/java/org/apache/asterix/tools/external/data/SocketClientAdapter.java
M asterix-tools/src/main/java/org/apache/asterix/tools/external/data/SocketClientAdapterFactory.java
M asterix-tools/src/main/java/org/apache/asterix/tools/external/data/TwitterFirehoseFeedAdapterFactory.java
M asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/AbstractIndexModificationOperationCallback.java
A asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/LockThenSearchOperationCallback.java
A asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/LockThenSearchOperationCallbackFactory.java
M asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/PrimaryIndexInstantSearchOperationCallback.java
M asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/PrimaryIndexSearchOperationCallback.java
M asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/SecondaryIndexSearchOperationCallback.java
A asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/UpsertOperationCallback.java
A asterix-transactions/src/main/java/org/apache/asterix/transaction/management/opcallbacks/UpsertOperationCallbackFactory.java
M asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogBuffer.java
M asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/logging/LogManager.java
M asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/recovery/RecoveryManager.java
122 files changed, 5,059 insertions(+), 640 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/77/477/3
-- 
To view, visit https://asterix-gerrit.ics.uci.edu/477
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I8999000331795a5949d621d2dd003903e057a521
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>