>From Hussain Towaileb <[email protected]>:

Hussain Towaileb has uploaded this change for review. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20844?usp=email )


Change subject: Make catalog methods extendable
......................................................................

Make catalog methods extendable

Change-Id: Ie4328e05b951500da6272bb6a013fd3a7a0dcd19
---
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/CatalogStatementHandler.java
M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
3 files changed, 20 insertions(+), 13 deletions(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/44/20844/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 0c5cd98..f5baed6 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
@@ -1074,7 +1074,7 @@
                     ExternalDataUtils.normalize(properties);
                     ExternalDataUtils.validate(properties);
                     ExternalDataUtils.validateType(properties, (ARecordType) 
itemType);
-                    validateIfIcebergTable(properties, mdTxnCtx, sourceLoc);
+                    validateIfIcebergTable(metadataProvider, 
requestParameters, properties, mdTxnCtx, sourceLoc);
                     validateExternalDatasetProperties(externalDetails, 
properties, dd.getSourceLocation(), mdTxnCtx,
                             appCtx, metadataProvider);
                     datasetDetails = new 
ExternalDatasetDetails(externalDetails.getAdapter(), properties, new Date(),
@@ -1187,8 +1187,9 @@
         return Optional.of(dataset);
     }

-    protected void validateIfIcebergTable(Map<String, String> properties, 
MetadataTransactionContext mdTxnCtx,
-            SourceLocation srcLoc) throws AlgebricksException {
+    protected void validateIfIcebergTable(MetadataProvider metadataProvider, 
IRequestParameters requestParameters,
+            Map<String, String> properties, MetadataTransactionContext 
mdTxnCtx, SourceLocation srcLoc)
+            throws AlgebricksException {
         if (!IcebergUtils.isIcebergTable(properties)) {
             return;
         }
@@ -5897,8 +5898,8 @@

     protected void handleCatalogStatement(Statement.Kind kind, 
MetadataProvider metadataProvider, Statement stmt,
             IHyracksClientConnection hcc, IRequestParameters 
requestParameters) throws Exception {
-        CatalogStatementHandler statement = new CatalogStatementHandler(kind, 
metadataProvider, stmt,
-                Creator.DEFAULT_CREATOR, sessionConfig, lockUtil, lockManager);
+        CatalogStatementHandler statement = new 
CatalogStatementHandler(appCtx, kind, metadataProvider, stmt,
+                Creator.DEFAULT_CREATOR, sessionConfig, lockUtil, lockManager, 
requestParameters);
         statement.handle();
     }

diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/handlers/CatalogStatementHandler.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/handlers/CatalogStatementHandler.java
index 8c33407..fbffb6a 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/handlers/CatalogStatementHandler.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/handlers/CatalogStatementHandler.java
@@ -25,6 +25,7 @@

 import org.apache.asterix.common.api.IMetadataLockManager;
 import org.apache.asterix.common.config.CatalogConfig;
+import org.apache.asterix.common.dataflow.ICcApplicationContext;
 import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.common.exceptions.ErrorCode;
 import org.apache.asterix.common.metadata.IMetadataLockUtil;
@@ -47,23 +48,27 @@
 import org.apache.asterix.metadata.entities.IcebergCatalogDetails;
 import org.apache.asterix.metadata.utils.Creator;
 import org.apache.asterix.object.base.AdmObjectNode;
+import org.apache.asterix.translator.IRequestParameters;
 import org.apache.asterix.translator.SessionConfig;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.api.exceptions.SourceLocation;

 public class CatalogStatementHandler {

+    protected final ICcApplicationContext appCtx;
+    protected final MetadataProvider metadataProvider;
     private final Statement.Kind kind;
-    private final MetadataProvider metadataProvider;
     private final CatalogStatement statement;
     private final Creator creator;
     private final SessionConfig sessionConfig;
     private final IMetadataLockUtil lockUtil;
     private final IMetadataLockManager lockManager;
+    protected IRequestParameters requestParameters;

-    public CatalogStatementHandler(Statement.Kind kind, MetadataProvider 
metadataProvider, Statement statement,
-            Creator creator, SessionConfig sessionConfig, IMetadataLockUtil 
lockUtil,
-            IMetadataLockManager lockManager) {
+    public CatalogStatementHandler(ICcApplicationContext ccAppCtx, 
Statement.Kind kind,
+            MetadataProvider metadataProvider, Statement statement, Creator 
creator, SessionConfig sessionConfig,
+            IMetadataLockUtil lockUtil, IMetadataLockManager lockManager, 
IRequestParameters requestParameters) {
+        this.appCtx = ccAppCtx;
         this.kind = kind;
         this.metadataProvider = metadataProvider;
         this.statement = (CatalogStatement) statement;
@@ -71,6 +76,7 @@
         this.sessionConfig = sessionConfig;
         this.lockUtil = lockUtil;
         this.lockManager = lockManager;
+        this.requestParameters = requestParameters;
     }

     public void handle() throws Exception {
@@ -100,7 +106,7 @@
         }
     }

-    private boolean doHandleCreate(CatalogCreateStatement statement) throws 
Exception {
+    protected boolean doHandleCreate(CatalogCreateStatement statement) throws 
Exception {
         MetadataTransactionContext mdTxnCtx = 
MetadataManager.INSTANCE.beginTransaction();
         metadataProvider.setMetadataTxnContext(mdTxnCtx);
         try {
@@ -138,13 +144,13 @@
         }
         lockUtil.dropCatalogBegin(lockManager, metadataProvider.getLocks(), 
catalogName);
         try {
-            doDropCatalog(dropStatement);
+            doHandleDrop(dropStatement);
         } finally {
             metadataProvider.getLocks().unlock();
         }
     }

-    private boolean doDropCatalog(CatalogDropStatement statement) throws 
Exception {
+    protected boolean doHandleDrop(CatalogDropStatement statement) throws 
Exception {
         MetadataTransactionContext mdTxnCtx = 
MetadataManager.INSTANCE.beginTransaction();
         metadataProvider.setMetadataTxnContext(mdTxnCtx);
         try {
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj 
b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
index e04afb6..c5aefa8 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
+++ b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
@@ -285,7 +285,7 @@
     private static final String CONFIG = "CONFIG";
     private static final String STATISTICS = "STATISTICS";
     private static final String ADVISE = "ADVISE";
-    private static final String CATALOG = "CATALOG";
+    protected static final String CATALOG = "CATALOG";
     private static final String SOURCE = "SOURCE";
     private static final String CASCADE = "CASCADE";


--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20844?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: master
Gerrit-Change-Id: Ie4328e05b951500da6272bb6a013fd3a7a0dcd19
Gerrit-Change-Number: 20844
Gerrit-PatchSet: 1
Gerrit-Owner: Hussain Towaileb <[email protected]>

Reply via email to