abdullah alamoudi has uploaded a new change for review.

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

Change subject: Pass executor context and client id to extention statements
......................................................................

Pass executor context and client id to extention statements

Change-Id: I1395817df00917bd9b4d5676d4f2cea3888b7221
---
M 
asterix-bad/src/main/java/org/apache/asterix/bad/lang/BADStatementExecutor.java
M 
asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/BrokerDropStatement.java
M 
asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelDropStatement.java
M 
asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelSubscribeStatement.java
M 
asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelUnsubscribeStatement.java
M 
asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateBrokerStatement.java
M 
asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateChannelStatement.java
M 
asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateProcedureStatement.java
M 
asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ExecuteProcedureStatement.java
M 
asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ProcedureDropStatement.java
10 files changed, 42 insertions(+), 34 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb-bad 
refs/changes/75/2775/1

diff --git 
a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/BADStatementExecutor.java
 
b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/BADStatementExecutor.java
index b95ca11..a1c2729 100644
--- 
a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/BADStatementExecutor.java
+++ 
b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/BADStatementExecutor.java
@@ -250,7 +250,6 @@
             metadataProvider.getLocks().unlock();
         }
 
-
     }
 
     @Override
@@ -343,7 +342,7 @@
             tempMdProvider.getLocks().reset();
             ChannelDropStatement drop =
                     new ChannelDropStatement(dvId, new 
Identifier(channel.getChannelId().getEntityName()), false);
-            drop.handle(hcc, this, requestParameters, tempMdProvider, 0);
+            drop.handle(hcc, this, requestParameters, tempMdProvider, 0, null, 
null);
         }
         for (Procedure procedure : procedures) {
             if 
(!procedure.getEntityId().getDataverse().equals(dvId.getValue())) {
@@ -352,13 +351,13 @@
             tempMdProvider.getLocks().reset();
             ProcedureDropStatement drop = new ProcedureDropStatement(new 
FunctionSignature(dvId.getValue(),
                     procedure.getEntityId().getEntityName(), 
procedure.getArity()), false);
-            drop.handle(hcc, this, requestParameters, tempMdProvider, 0);
+            drop.handle(hcc, this, requestParameters, tempMdProvider, 0, null, 
null);
         }
         List<Broker> brokers = BADLangExtension.getBrokers(mdTxnCtx, 
dvId.getValue());
         for (Broker broker : brokers) {
             tempMdProvider.getLocks().reset();
             BrokerDropStatement drop = new BrokerDropStatement(dvId, new 
Identifier(broker.getBrokerName()), false);
-            drop.handle(hcc, this, requestParameters, tempMdProvider, 0);
+            drop.handle(hcc, this, requestParameters, tempMdProvider, 0, null, 
null);
         }
         MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
         super.handleDataverseDropStatement(metadataProvider, stmt, hcc);
diff --git 
a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/BrokerDropStatement.java
 
b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/BrokerDropStatement.java
index 4f68f40..430e18f 100644
--- 
a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/BrokerDropStatement.java
+++ 
b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/BrokerDropStatement.java
@@ -22,6 +22,7 @@
 import org.apache.asterix.app.translator.QueryTranslator;
 import org.apache.asterix.bad.lang.BADLangExtension;
 import org.apache.asterix.bad.metadata.Broker;
+import org.apache.asterix.common.api.IStatementExecutorContext;
 import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.lang.common.struct.Identifier;
 import org.apache.asterix.lang.common.visitor.base.ILangVisitor;
@@ -70,7 +71,8 @@
 
     @Override
     public void handle(IHyracksClientConnection hcc, IStatementExecutor 
statementExecutor,
-            IRequestParameters requestParameters, MetadataProvider 
metadataProvider, int resultSetId)
+            IRequestParameters requestParameters, MetadataProvider 
metadataProvider, int resultSetId,
+            IStatementExecutorContext executorCtx, String clientContextId)
             throws HyracksDataException, AlgebricksException {
         //TODO: dont drop a broker that's being used
         String dataverse = ((QueryTranslator) 
statementExecutor).getActiveDataverse(dataverseName);
diff --git 
a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelDropStatement.java
 
b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelDropStatement.java
index 8403fcc..a4ebad3 100644
--- 
a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelDropStatement.java
+++ 
b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelDropStatement.java
@@ -30,6 +30,7 @@
 import org.apache.asterix.bad.lang.BADLangExtension;
 import org.apache.asterix.bad.metadata.Channel;
 import org.apache.asterix.bad.metadata.DeployedJobSpecEventListener;
+import org.apache.asterix.common.api.IStatementExecutorContext;
 import org.apache.asterix.common.dataflow.ICcApplicationContext;
 import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.lang.common.statement.DropDatasetStatement;
@@ -82,7 +83,8 @@
 
     @Override
     public void handle(IHyracksClientConnection hcc, IStatementExecutor 
statementExecutor,
-            IRequestParameters requestParameters, MetadataProvider 
metadataProvider, int resultSetId)
+            IRequestParameters requestParameters, MetadataProvider 
metadataProvider, int resultSetId,
+            IStatementExecutorContext executorCtx, String clientContextId)
             throws HyracksDataException, AlgebricksException {
         String dataverse = ((QueryTranslator) 
statementExecutor).getActiveDataverse(dataverseName);
         boolean txnActive = false;
@@ -111,9 +113,8 @@
             if (listener == null) {
                 //TODO: Channels need to better handle cluster failures
                 LOGGER.log(Level.SEVERE,
-                        "Tried to drop a Deployed Job  whose listener no 
longer exists:  "
-                                + entityId.getExtensionName() + " " + 
entityId.getDataverse() + "."
-                                + entityId.getEntityName() + ".");
+                        "Tried to drop a Deployed Job  whose listener no 
longer exists:  " + entityId.getExtensionName()
+                                + " " + entityId.getDataverse() + "." + 
entityId.getEntityName() + ".");
 
             } else {
                 listener.getExecutorService().shutdown();
diff --git 
a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelSubscribeStatement.java
 
b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelSubscribeStatement.java
index 7583f0b..1b677e7 100644
--- 
a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelSubscribeStatement.java
+++ 
b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelSubscribeStatement.java
@@ -27,6 +27,7 @@
 import org.apache.asterix.bad.lang.BADLangExtension;
 import org.apache.asterix.bad.metadata.Broker;
 import org.apache.asterix.bad.metadata.Channel;
+import org.apache.asterix.common.api.IStatementExecutorContext;
 import org.apache.asterix.common.exceptions.AsterixException;
 import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.common.functions.FunctionSignature;
@@ -120,7 +121,8 @@
 
     @Override
     public void handle(IHyracksClientConnection hcc, IStatementExecutor 
statementExecutor,
-            IRequestParameters requestParameters, MetadataProvider 
metadataProvider, int resultSetId)
+            IRequestParameters requestParameters, MetadataProvider 
metadataProvider, int resultSetId,
+            IStatementExecutorContext executorCtx, String clientContextId)
             throws HyracksDataException, AlgebricksException {
         String dataverse = ((QueryTranslator) 
statementExecutor).getActiveDataverse(dataverseName);
         String brokerDataverse = ((QueryTranslator) 
statementExecutor).getActiveDataverse(brokerDataverseName);
diff --git 
a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelUnsubscribeStatement.java
 
b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelUnsubscribeStatement.java
index b23bf3b..bb966cc 100644
--- 
a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelUnsubscribeStatement.java
+++ 
b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelUnsubscribeStatement.java
@@ -26,6 +26,7 @@
 import org.apache.asterix.bad.BADConstants;
 import org.apache.asterix.bad.lang.BADLangExtension;
 import org.apache.asterix.bad.metadata.Channel;
+import org.apache.asterix.common.api.IStatementExecutorContext;
 import org.apache.asterix.common.exceptions.AsterixException;
 import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.common.functions.FunctionSignature;
@@ -100,7 +101,8 @@
 
     @Override
     public void handle(IHyracksClientConnection hcc, IStatementExecutor 
statementExecutor,
-            IRequestParameters requestParameters, MetadataProvider 
metadataProvider, int resultSetId)
+            IRequestParameters requestParameters, MetadataProvider 
metadataProvider, int resultSetId,
+            IStatementExecutorContext executorCtx, String clientContextId)
             throws HyracksDataException, AlgebricksException {
         String dataverse = ((QueryTranslator) 
statementExecutor).getActiveDataverse(dataverseName);
 
@@ -139,8 +141,7 @@
             MetadataProvider tempMdProvider = new 
MetadataProvider(metadataProvider.getApplicationContext(),
                     metadataProvider.getDefaultDataverse());
             tempMdProvider.getConfig().putAll(metadataProvider.getConfig());
-            ((QueryTranslator) 
statementExecutor).handleDeleteStatement(tempMdProvider, delete, hcc, false, 
null,
-                    null);
+            ((QueryTranslator) 
statementExecutor).handleDeleteStatement(tempMdProvider, delete, hcc, false, 
null, null);
             MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
         } catch (Exception e) {
             QueryTranslator.abort(e, e, mdTxnCtx);
diff --git 
a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateBrokerStatement.java
 
b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateBrokerStatement.java
index 367599b..5f3ade2 100644
--- 
a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateBrokerStatement.java
+++ 
b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateBrokerStatement.java
@@ -25,6 +25,7 @@
 import org.apache.asterix.app.translator.QueryTranslator;
 import org.apache.asterix.bad.lang.BADLangExtension;
 import org.apache.asterix.bad.metadata.Broker;
+import org.apache.asterix.common.api.IStatementExecutorContext;
 import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.lang.common.struct.Identifier;
 import org.apache.asterix.lang.common.visitor.base.ILangVisitor;
@@ -74,7 +75,8 @@
 
     @Override
     public void handle(IHyracksClientConnection hcc, IStatementExecutor 
statementExecutor,
-            IRequestParameters requestParameters, MetadataProvider 
metadataProvider, int resultSetId)
+            IRequestParameters requestParameters, MetadataProvider 
metadataProvider, int resultSetId,
+            IStatementExecutorContext executorCtx, String clientContextId)
             throws HyracksDataException, AlgebricksException {
         String dataverse = ((QueryTranslator) 
statementExecutor).getActiveDataverse(dataverseName);
         MetadataTransactionContext mdTxnCtx = null;
diff --git 
a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateChannelStatement.java
 
b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateChannelStatement.java
index a28666a..c133522 100644
--- 
a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateChannelStatement.java
+++ 
b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateChannelStatement.java
@@ -38,6 +38,7 @@
 import org.apache.asterix.bad.metadata.Channel;
 import org.apache.asterix.bad.metadata.DeployedJobSpecEventListener;
 import 
org.apache.asterix.bad.metadata.DeployedJobSpecEventListener.PrecompiledType;
+import org.apache.asterix.common.api.IStatementExecutorContext;
 import org.apache.asterix.common.config.DatasetConfig.DatasetType;
 import org.apache.asterix.common.config.DatasetConfig.IndexType;
 import org.apache.asterix.common.dataflow.ICcApplicationContext;
@@ -138,8 +139,7 @@
         return null;
     }
 
-    public void initialize(MetadataTransactionContext mdTxnCtx)
-            throws AlgebricksException, HyracksDataException {
+    public void initialize(MetadataTransactionContext mdTxnCtx) throws 
AlgebricksException, HyracksDataException {
         Function lookup = MetadataManager.INSTANCE.getFunction(mdTxnCtx, 
function);
         if (lookup == null) {
             throw new MetadataException(" Unknown function " + 
function.getName());
@@ -258,7 +258,8 @@
 
     @Override
     public void handle(IHyracksClientConnection hcc, IStatementExecutor 
statementExecutor,
-            IRequestParameters requestContext, MetadataProvider 
metadataProvider, int resultSetId)
+            IRequestParameters requestContext, MetadataProvider 
metadataProvider, int resultSetId,
+            IStatementExecutorContext executorCtx, String clientContextId)
             throws HyracksDataException, AlgebricksException {
         //This function performs three tasks:
         //1. Create datasets for the Channel
diff --git 
a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateProcedureStatement.java
 
b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateProcedureStatement.java
index aaf2bfa..302e362 100644
--- 
a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateProcedureStatement.java
+++ 
b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateProcedureStatement.java
@@ -40,6 +40,7 @@
 import org.apache.asterix.bad.metadata.DeployedJobSpecEventListener;
 import 
org.apache.asterix.bad.metadata.DeployedJobSpecEventListener.PrecompiledType;
 import org.apache.asterix.bad.metadata.Procedure;
+import org.apache.asterix.common.api.IStatementExecutorContext;
 import org.apache.asterix.common.dataflow.ICcApplicationContext;
 import org.apache.asterix.common.exceptions.AsterixException;
 import org.apache.asterix.common.exceptions.CompilationException;
@@ -175,8 +176,7 @@
     }
 
     private Pair<JobSpecification, PrecompiledType> 
createProcedureJob(IStatementExecutor statementExecutor,
-            MetadataProvider metadataProvider, IHyracksClientConnection hcc, 
Stats stats)
-            throws Exception {
+            MetadataProvider metadataProvider, IHyracksClientConnection hcc, 
Stats stats) throws Exception {
         if (getProcedureBodyStatement().getKind() == Statement.Kind.INSERT) {
             if (!varList.isEmpty()) {
                 throw new CompilationException("Insert procedures cannot have 
parameters");
@@ -193,8 +193,7 @@
             
dependencies.get(1).addAll(FunctionUtil.getFunctionDependencies(fact.createQueryRewriter(),
                     ((Query) getProcedureBodyStatement()).getBody(), 
metadataProvider).get(1));
             Pair<JobSpecification, PrecompiledType> pair = new 
Pair<>(BADJobService.compileQueryJob(statementExecutor,
-                    metadataProvider, hcc, (Query) 
getProcedureBodyStatement()),
-                    PrecompiledType.QUERY);
+                    metadataProvider, hcc, (Query) 
getProcedureBodyStatement()), PrecompiledType.QUERY);
             
dependencies.get(0).addAll(FunctionUtil.getFunctionDependencies(fact.createQueryRewriter(),
                     ((Query) getProcedureBodyStatement()).getBody(), 
metadataProvider).get(0));
             return pair;
@@ -216,8 +215,7 @@
     }
 
     private void setupDeployedJobSpec(EntityId entityId, JobSpecification 
jobSpec, IHyracksClientConnection hcc,
-            DeployedJobSpecEventListener listener, ResultSetId resultSetId, 
Stats stats)
-            throws Exception {
+            DeployedJobSpecEventListener listener, ResultSetId resultSetId, 
Stats stats) throws Exception {
         
jobSpec.setProperty(ActiveNotificationHandler.ACTIVE_ENTITY_PROPERTY_NAME, 
entityId);
         DeployedJobSpecId deployedJobSpecId = hcc.deployJobSpec(jobSpec);
         listener.setDeployedJobSpecId(deployedJobSpecId);
@@ -225,7 +223,8 @@
 
     @Override
     public void handle(IHyracksClientConnection hcc, IStatementExecutor 
statementExecutor,
-            IRequestParameters requestParameters, MetadataProvider 
metadataProvider, int resultSetId)
+            IRequestParameters requestParameters, MetadataProvider 
metadataProvider, int resultSetId,
+            IStatementExecutorContext executorCtx, String clientContextId)
             throws HyracksDataException, AlgebricksException {
         ICcApplicationContext appCtx = 
metadataProvider.getApplicationContext();
         ActiveNotificationHandler activeEventHandler =
diff --git 
a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ExecuteProcedureStatement.java
 
b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ExecuteProcedureStatement.java
index b794538..86791d3 100644
--- 
a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ExecuteProcedureStatement.java
+++ 
b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ExecuteProcedureStatement.java
@@ -33,6 +33,7 @@
 import org.apache.asterix.bad.lang.BADLangExtension;
 import org.apache.asterix.bad.metadata.DeployedJobSpecEventListener;
 import org.apache.asterix.bad.metadata.Procedure;
+import org.apache.asterix.common.api.IStatementExecutorContext;
 import org.apache.asterix.common.dataflow.ICcApplicationContext;
 import org.apache.asterix.common.exceptions.AsterixException;
 import org.apache.asterix.common.exceptions.CompilationException;
@@ -96,7 +97,8 @@
 
     @Override
     public void handle(IHyracksClientConnection hcc, IStatementExecutor 
statementExecutor,
-            IRequestParameters requestParameters, MetadataProvider 
metadataProvider, int resultSetId)
+            IRequestParameters requestParameters, MetadataProvider 
metadataProvider, int resultSetId,
+            IStatementExecutorContext executorCtx, String clientContextId)
             throws HyracksDataException, AlgebricksException {
         ICcApplicationContext appCtx = 
metadataProvider.getApplicationContext();
         ActiveNotificationHandler activeEventHandler =
@@ -119,9 +121,8 @@
             DeployedJobSpecId deployedJobSpecId = 
listener.getDeployedJobSpecId();
             if (procedure.getDuration().equals("")) {
                 BADJobService.runDeployedJobSpec(deployedJobSpecId, hcc, 
requestParameters.getHyracksDataset(),
-                        contextRuntimeVarMap, entityId,
-                        metadataProvider.getTxnIdFactory(), appCtx, listener, 
(QueryTranslator) statementExecutor);
-
+                        contextRuntimeVarMap, entityId, 
metadataProvider.getTxnIdFactory(), appCtx, listener,
+                        (QueryTranslator) statementExecutor);
 
             } else {
                 ScheduledExecutorService ses = 
BADJobService.startRepetitiveDeployedJobSpec(deployedJobSpecId, hcc,
@@ -142,8 +143,7 @@
         }
     }
 
-    private Map<byte[], byte[]> createParameterMap(Procedure procedure)
-            throws AsterixException, HyracksDataException {
+    private Map<byte[], byte[]> createParameterMap(Procedure procedure) throws 
AsterixException, HyracksDataException {
         Map<byte[], byte[]> map = new HashMap<>();
         if (procedure.getParams().size() != argList.size()) {
             throw 
AsterixException.create(ErrorCode.COMPILATION_INVALID_PARAMETER_NUMBER,
diff --git 
a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ProcedureDropStatement.java
 
b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ProcedureDropStatement.java
index 95531bd..a95f409 100644
--- 
a/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ProcedureDropStatement.java
+++ 
b/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ProcedureDropStatement.java
@@ -30,6 +30,7 @@
 import org.apache.asterix.bad.lang.BADLangExtension;
 import org.apache.asterix.bad.metadata.DeployedJobSpecEventListener;
 import org.apache.asterix.bad.metadata.Procedure;
+import org.apache.asterix.common.api.IStatementExecutorContext;
 import org.apache.asterix.common.dataflow.ICcApplicationContext;
 import org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.common.functions.FunctionSignature;
@@ -76,7 +77,8 @@
 
     @Override
     public void handle(IHyracksClientConnection hcc, IStatementExecutor 
statementExecutor,
-            IRequestParameters requestParameters, MetadataProvider 
metadataProvider, int resultSetId)
+            IRequestParameters requestParameters, MetadataProvider 
metadataProvider, int resultSetId,
+            IStatementExecutorContext executorCtx, String clientContextId)
             throws HyracksDataException, AlgebricksException {
         ICcApplicationContext appCtx = 
metadataProvider.getApplicationContext();
         ActiveNotificationHandler activeEventHandler =
@@ -115,9 +117,8 @@
             if (listener == null) {
                 //TODO: Channels need to better handle cluster failures
                 LOGGER.log(Level.SEVERE,
-                        "Tried to drop a Deployed Job  whose listener no 
longer exists:  "
-                                + entityId.getExtensionName() + " " + 
entityId.getDataverse() + "."
-                                + entityId.getEntityName() + ".");
+                        "Tried to drop a Deployed Job  whose listener no 
longer exists:  " + entityId.getExtensionName()
+                                + " " + entityId.getDataverse() + "." + 
entityId.getEntityName() + ".");
             } else {
                 if (listener.getExecutorService() != null) {
                     listener.getExecutorService().shutdown();

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2775
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1395817df00917bd9b4d5676d4f2cea3888b7221
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb-bad
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <[email protected]>

Reply via email to