>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]>

Reply via email to