>From Ali Alsuliman <[email protected]>:
Ali Alsuliman has uploaded this change for review. (
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21135?usp=email )
Change subject: [NO ISSUE][OTH] Extend statements in QueryTranslator
......................................................................
[NO ISSUE][OTH] Extend statements in QueryTranslator
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
Extend truncate/compact/catalog statements.
Ext-ref: MB-68032
Change-Id: Ibbf84366f24b8721e6ddaa50b6fbf05d4154304f
---
M
asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
M
asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/handlers/IcebergCatalogStatementHandler.java
2 files changed, 19 insertions(+), 9 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/35/21135/1
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
index 4b43845..39c6ff3 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
@@ -2473,7 +2473,7 @@
}
}
- protected void doTruncateDataset(String databaseName, DataverseName
dataverseName, String datasetName,
+ protected boolean doTruncateDataset(String databaseName, DataverseName
dataverseName, String datasetName,
MetadataProvider metadataProvider, boolean ifExists,
SourceLocation sourceLoc) throws Exception {
MetadataTransactionContext mdTxnCtx =
MetadataManager.INSTANCE.beginTransaction();
metadataProvider.setMetadataTxnContext(mdTxnCtx);
@@ -2490,7 +2490,7 @@
.dataverseName(databaseName, dataverseName,
metadataProvider.isUsingDatabase())));
}
MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
- return;
+ return false;
} else {
throw new
CompilationException(ErrorCode.UNKNOWN_DATAVERSE, sourceLoc, MetadataUtil
.dataverseName(databaseName, dataverseName,
metadataProvider.isUsingDatabase()));
@@ -2500,7 +2500,7 @@
if (ds == null) {
if (ifExists) {
MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
- return;
+ return false;
} else {
throw new
CompilationException(ErrorCode.UNKNOWN_DATASET_IN_DATAVERSE, sourceLoc,
datasetName,
MetadataUtil.dataverseName(databaseName,
dataverseName,
@@ -2518,6 +2518,7 @@
DatasetUtil.truncate(metadataProvider, ds);
MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
+ return true;
} catch (Exception e) {
LOGGER.error("failed to truncate collection {}",
new DatasetFullyQualifiedName(databaseName, dataverseName,
datasetName), e);
@@ -5453,11 +5454,21 @@
if (isCompileOnly()) {
return;
}
+ lockUtil.compactBegin(lockManager, metadataProvider.getLocks(),
databaseName, dataverseName, datasetName);
+ try {
+ doCompactStatement(metadataProvider, hcc, databaseName,
dataverseName, datasetName, sourceLoc);
+ } finally {
+ metadataProvider.getLocks().unlock();
+ }
+ }
+
+ protected boolean doCompactStatement(MetadataProvider metadataProvider,
IHyracksClientConnection hcc,
+ String databaseName, DataverseName dataverseName, String
datasetName, SourceLocation sourceLoc)
+ throws Exception {
MetadataTransactionContext mdTxnCtx =
MetadataManager.INSTANCE.beginTransaction();
boolean bActiveTxn = true;
metadataProvider.setMetadataTxnContext(mdTxnCtx);
List<JobSpecification> jobsToExecute = new ArrayList<>();
- lockUtil.compactBegin(lockManager, metadataProvider.getLocks(),
databaseName, dataverseName, datasetName);
try {
Dataset ds = metadataProvider.findDataset(databaseName,
dataverseName, datasetName);
if (ds == null) {
@@ -5492,13 +5503,12 @@
for (JobSpecification jobSpec : jobsToExecute) {
runJob(hcc, jobSpec);
}
+ return true;
} catch (Exception e) {
if (bActiveTxn) {
abort(e, e, mdTxnCtx);
}
throw e;
- } finally {
- metadataProvider.getLocks().unlock();
}
}
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/handlers/IcebergCatalogStatementHandler.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/handlers/IcebergCatalogStatementHandler.java
index e0e9d02..eb0cf27 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/handlers/IcebergCatalogStatementHandler.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/handlers/IcebergCatalogStatementHandler.java
@@ -53,7 +53,7 @@
public class IcebergCatalogStatementHandler {
private final Statement.Kind kind;
- private final MetadataProvider metadataProvider;
+ protected final MetadataProvider metadataProvider;
private final CatalogStatement statement;
private final Creator creator;
private final SessionConfig sessionConfig;
@@ -99,7 +99,7 @@
}
}
- private boolean doHandleCreate(CatalogCreateStatement statement) throws
Exception {
+ protected boolean doHandleCreate(CatalogCreateStatement statement) throws
Exception {
MetadataTransactionContext mdTxnCtx =
MetadataManager.INSTANCE.beginTransaction();
metadataProvider.setMetadataTxnContext(mdTxnCtx);
try {
@@ -143,7 +143,7 @@
}
}
- private boolean doDropCatalog(CatalogDropStatement statement) throws
Exception {
+ protected boolean doDropCatalog(CatalogDropStatement statement) throws
Exception {
MetadataTransactionContext mdTxnCtx =
MetadataManager.INSTANCE.beginTransaction();
metadataProvider.setMetadataTxnContext(mdTxnCtx);
try {
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21135?usp=email
To unsubscribe, or for help writing mail filters, visit
https://asterix-gerrit.ics.uci.edu/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: asterixdb
Gerrit-Branch: lumina
Gerrit-Change-Id: Ibbf84366f24b8721e6ddaa50b6fbf05d4154304f
Gerrit-Change-Number: 21135
Gerrit-PatchSet: 1
Gerrit-Owner: Ali Alsuliman <[email protected]>