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