You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by sj...@apache.org on 2018/08/03 20:13:11 UTC

[01/14] asterixdb-bad git commit: [NO ISSUE][BAD] Coordinated Change for Multi-Statement

Repository: asterixdb-bad
Updated Branches:
  refs/heads/master 51819b77a -> 9d0499973
  refs/heads/resultsFinalVersion 0cf5a3ee2 -> f08062252


[NO ISSUE][BAD] Coordinated Change for Multi-Statement

Change-Id: I94acfecbf5aaa21ab103173dd2a8ab89080461e0


Project: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/commit/563520ad
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/tree/563520ad
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/diff/563520ad

Branch: refs/heads/resultsFinalVersion
Commit: 563520ad136c27f8b9a27548e2a7caf5164db918
Parents: 105ee6d
Author: Murtadha Hubail <mu...@couchbase.com>
Authored: Fri Jul 6 18:10:01 2018 +0300
Committer: Murtadha Hubail <mu...@couchbase.com>
Committed: Fri Jul 6 18:10:01 2018 +0300

----------------------------------------------------------------------
 .../java/org/apache/asterix/bad/lang/BADStatementExecutor.java   | 3 ++-
 .../apache/asterix/bad/recovery/BADGlobalRecoveryManager.java    | 4 ++--
 2 files changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/563520ad/asterix-bad/src/main/java/org/apache/asterix/bad/lang/BADStatementExecutor.java
----------------------------------------------------------------------
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 3ea2c0d..b95ca11 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
@@ -334,7 +334,8 @@ public class BADStatementExecutor extends QueryTranslator {
                 }
             }
         }
-        final IRequestParameters requestParameters = new RequestParameters(null, null, null, null, null, null, null);
+        final IRequestParameters requestParameters =
+                new RequestParameters(null, null, null, null, null, null, null, true);
         for (Channel channel : channels) {
             if (!channel.getChannelId().getDataverse().equals(dvId.getValue())) {
                 continue;

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/563520ad/asterix-bad/src/main/java/org/apache/asterix/bad/recovery/BADGlobalRecoveryManager.java
----------------------------------------------------------------------
diff --git a/asterix-bad/src/main/java/org/apache/asterix/bad/recovery/BADGlobalRecoveryManager.java b/asterix-bad/src/main/java/org/apache/asterix/bad/recovery/BADGlobalRecoveryManager.java
index 89d940e..f358986 100644
--- a/asterix-bad/src/main/java/org/apache/asterix/bad/recovery/BADGlobalRecoveryManager.java
+++ b/asterix-bad/src/main/java/org/apache/asterix/bad/recovery/BADGlobalRecoveryManager.java
@@ -122,7 +122,7 @@ public class BADGlobalRecoveryManager extends GlobalRecoveryManager {
             listener.suspend();
             activeEventHandler.registerListener(listener);
             BADJobService.redeployJobSpec(entityId, channel.getChannelBody(), metadataProvider, badStatementExecutor,
-                    hcc, new RequestParameters(null, null, null, null, null, null, null), true);
+                    hcc, new RequestParameters(null, null, null, null, null, null, null, true), true);
 
             ScheduledExecutorService ses = BADJobService.startRepetitiveDeployedJobSpec(listener.getDeployedJobSpecId(),
                     hcc,
@@ -149,7 +149,7 @@ public class BADGlobalRecoveryManager extends GlobalRecoveryManager {
                             new HyracksDataset(hcc, appCtx.getCompilerProperties().getFrameSize(),
                                     ResultReader.NUM_READERS),
                             new ResultProperties(IStatementExecutor.ResultDelivery.IMMEDIATE),
-                            new IStatementExecutor.Stats(), null, null, null, null),
+                            new IStatementExecutor.Stats(), null, null, null, null, true),
                     true);
             metadataProvider.getLocks().unlock();
             //Log that the procedure stopped by cluster restart. Procedure is available again now.


[13/14] asterixdb-bad git commit: Better push version

Posted by sj...@apache.org.
Better push version


Project: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/commit/f0806225
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/tree/f0806225
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/diff/f0806225

Branch: refs/heads/resultsFinalVersion
Commit: f080622527985317232140b551afd84cb205dc96
Parents: 18d4392
Author: Steven Glenn Jacobs <sj...@ucr.edu>
Authored: Thu Aug 2 14:14:37 2018 -0700
Committer: Steven Glenn Jacobs <sj...@ucr.edu>
Committed: Thu Aug 2 14:14:37 2018 -0700

----------------------------------------------------------------------
 .../lang/statement/CreateChannelStatement.java  | 11 ++--
 .../InsertBrokerNotifierForChannelRule.java     | 63 +++++++++++++-------
 .../bad/runtime/NotifyBrokerRuntime.java        |  2 -
 3 files changed, 46 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/f0806225/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateChannelStatement.java
----------------------------------------------------------------------
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 76e3e82..9a2c6b1 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
@@ -257,9 +257,9 @@ public class CreateChannelStatement extends ExtensionStatement {
      *
      * push version:
      * SET inline_with "false";
-     * select value {"payload": {"result":r, "subscriptionId": brokerSubId}} from (
+     * select value {"payload": {"result":result, "subscriptionId": brokerSubId}} from (
      * with channelExecutionTime as current_datetime()
-     * select b.BrokerEndPoint, result as r, bs.brokerSubId as brokerSubId, channelExecutionTime
+     * select b.BrokerEndPoint, result, bs.brokerSubId as brokerSubId, channelExecutionTime
      * from steven.EmergencyChannelChannelSubscriptions sub,
      * steven.RecentEmergenciesNearUser(sub.param0) result,
      * steven.EmergencyChannelBrokerSubscriptions bs,
@@ -291,7 +291,7 @@ public class CreateChannelStatement extends ExtensionStatement {
         } else {
             builder.append(
                     "select value {\"payload\": {\"" + FUNCTION_RESULT_VAR + "\":" + FUNCTION_RESULT_VAR
-                            + ", \"subscriptionIds\": brokerSubIds}} from (\n");
+                            + ", \"subscriptionId\": brokerSubId}} from (\n");
             builder.append("with " + BADConstants.ChannelExecutionTime + " as current_datetime() \n");
             builder.append(
                     "select " + BROKER_RECORD_VAR + "." + BADConstants.BrokerEndPoint + ", " + FUNCTION_RESULT_VAR
@@ -334,10 +334,7 @@ public class CreateChannelStatement extends ExtensionStatement {
             builder.append(" returning " + INSERTED_RECORD_VAR);
 
         } else {
-            builder.append(") results\n");
-            builder.append("group by " + BADConstants.BrokerEndPoint + "," + FUNCTION_RESULT_VAR + ", "
-                    + BADConstants.ChannelExecutionTime);
-            builder.append(" group as brokerSubIds (" + BADConstants.BrokerSubscriptionId + " as subscriptionId)");
+            builder.append(") results");
         }
 
         builder.append(";");

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/f0806225/asterix-bad/src/main/java/org/apache/asterix/bad/rules/InsertBrokerNotifierForChannelRule.java
----------------------------------------------------------------------
diff --git a/asterix-bad/src/main/java/org/apache/asterix/bad/rules/InsertBrokerNotifierForChannelRule.java b/asterix-bad/src/main/java/org/apache/asterix/bad/rules/InsertBrokerNotifierForChannelRule.java
index 18cd41a..2596421 100644
--- a/asterix-bad/src/main/java/org/apache/asterix/bad/rules/InsertBrokerNotifierForChannelRule.java
+++ b/asterix-bad/src/main/java/org/apache/asterix/bad/rules/InsertBrokerNotifierForChannelRule.java
@@ -92,9 +92,9 @@ public class InsertBrokerNotifierForChannelRule implements IAlgebraicRewriteRule
         String channelName;
         AssignOperator pushAssign = null;
         AssignOperator newAssign = null;
-        GroupByOperator pushGroupBy = null;
+        UnnestOperator pushUnnest = null;
         LogicalVariable brokerSubsVar = null;
-        LogicalVariable brokerEndpoint = null;
+        LogicalVariable brokerEndpoint = context.newVar();
         LogicalVariable brokerSubId = null;
 
         if (!push) {
@@ -138,12 +138,6 @@ public class InsertBrokerNotifierForChannelRule implements IAlgebraicRewriteRule
             }
             pushAssign = (AssignOperator) op2;
 
-            AbstractLogicalOperator op3 = (AbstractLogicalOperator) pushAssign.getInputs().get(0).getValue();
-            if (op3.getOperatorTag() != LogicalOperatorTag.GROUP) {
-                return false;
-            }
-            pushGroupBy = (GroupByOperator) op3;
-
             //if push, get the channel name here instead
             subscriptionsScan = (DataSourceScanOperator) findOp(op, LogicalOperatorTag.DATASOURCESCAN, "",
                     BADConstants.ChannelSubscriptionsType);
@@ -154,7 +148,13 @@ public class InsertBrokerNotifierForChannelRule implements IAlgebraicRewriteRule
             String datasetName = dds.getDataset().getDatasetName();
             channelDataverse = dds.getDataset().getDataverseName();
             channelName = datasetName.substring(0, datasetName.length() - 13);
-            brokerEndpoint = pushGroupBy.getGroupByList().get(0).first;
+
+            AbstractLogicalOperator unnest = (AbstractLogicalOperator) pushAssign.getInputs().get(0).getValue();
+            if (unnest.getOperatorTag() != LogicalOperatorTag.UNNEST) {
+                return false;
+            }
+
+            pushUnnest = (UnnestOperator) unnest;
         }
 
         //The channelExecutionTime is created just before the scan
@@ -173,7 +173,6 @@ public class InsertBrokerNotifierForChannelRule implements IAlgebraicRewriteRule
             if (subplanOperator == null) {
                 return false;
             }
-            brokerEndpoint = context.newVar();
             brokerSubId = context.newVar();
             brokerSubsVar = ((AggregateOperator) subplanOperator.getNestedPlans().get(0).getRoots().get(0).getValue())
                     .getVariables().get(0);
@@ -181,19 +180,18 @@ public class InsertBrokerNotifierForChannelRule implements IAlgebraicRewriteRule
             newAssign = createAssignsAndUnnest(brokerSubsVar, brokerEndpoint, brokerSubId, op, context);
 
             context.computeAndSetTypeEnvironmentForOperator(op1);
-        } else {
-            channelExecutionVar = pushGroupBy.getGroupByList().get(2).first;
+
+            //Maintain the variables through the existing project
+            ProjectOperator badProject = (ProjectOperator) findOp(op1, LogicalOperatorTag.PROJECT, "", "");
+            badProject.getVariables().add(channelExecutionVar);
+            badProject.getVariables().add(brokerSubsVar);
+            context.computeAndSetTypeEnvironmentForOperator(badProject);
         }
-        //Maintain the variables through the existing project
-        ProjectOperator badProject = (ProjectOperator) findOp(op1, LogicalOperatorTag.PROJECT, "", "");
-        badProject.getVariables().add(channelExecutionVar);
-        badProject.getVariables().add(push ? brokerEndpoint : brokerSubsVar);
-        context.computeAndSetTypeEnvironmentForOperator(badProject);
 
         //Create my brokerNotify plan above the extension Operator
         DelegateOperator dOp = push
                 ? createNotifyBrokerPushPlan(brokerEndpoint, channelExecutionVar, context, pushAssign, channelDataverse,
-                        channelName)
+                        channelName, pushUnnest)
                 : createNotifyBrokerPullPlan(brokerEndpoint, brokerSubId, channelExecutionVar, context, newAssign,
                         channelDataverse, channelName);
 
@@ -262,7 +260,7 @@ public class InsertBrokerNotifierForChannelRule implements IAlgebraicRewriteRule
 
     private DelegateOperator createNotifyBrokerPushPlan(LogicalVariable brokerEndpointVar,
             LogicalVariable channelExecutionVar, IOptimizationContext context, AssignOperator payLoadAssign,
-            String channelDataverse, String channelName)
+            String channelDataverse, String channelName, UnnestOperator pushUnnest)
             throws AlgebricksException {
         IVariableTypeEnvironment env = payLoadAssign.computeOutputTypeEnvironment(context);
         IAType resultType = (IAType) env.getVarType(payLoadAssign.getVariables().get(0));
@@ -273,6 +271,21 @@ public class InsertBrokerNotifierForChannelRule implements IAlgebraicRewriteRule
                 channelName, true, resultType);
 
         extensionOp.getInputs().add(new MutableObject<>(payLoadAssign));
+
+        FunctionInfo finfoGetField = (FunctionInfo) FunctionUtil.getFunctionInfo(BuiltinFunctions.FIELD_ACCESS_BY_NAME);
+        ScalarFunctionCallExpression getBrokerEndPoint = new ScalarFunctionCallExpression(finfoGetField,
+                new MutableObject<>(new VariableReferenceExpression(pushUnnest.getVariable())), new MutableObject<>(
+                        new ConstantExpression(new AsterixConstantValue(new AString(BADConstants.BrokerEndPoint)))));
+
+        AssignOperator assignBrokerEndPoint =
+                new AssignOperator(brokerEndpointVar, new MutableObject<>(getBrokerEndPoint));
+
+        assignBrokerEndPoint.getInputs().addAll(payLoadAssign.getInputs());
+        payLoadAssign.getInputs().clear();
+        payLoadAssign.getInputs().add(new MutableObject<>(assignBrokerEndPoint));
+
+        context.computeAndSetTypeEnvironmentForOperator(assignBrokerEndPoint);
+        context.computeAndSetTypeEnvironmentForOperator(payLoadAssign);
         context.computeAndSetTypeEnvironmentForOperator(extensionOp);
 
         return extensionOp;
@@ -376,9 +389,17 @@ public class InsertBrokerNotifierForChannelRule implements IAlgebraicRewriteRule
                 } else if (searchTag == LogicalOperatorTag.PROJECT) {
                     return (AbstractLogicalOperator) subOp.getValue();
 
-                } else if (searchTag == LogicalOperatorTag.DATASOURCESCAN && isSubscriptionsScan(
+                } else if (searchTag == LogicalOperatorTag.DATASOURCESCAN) {
+                    if (isSubscriptionsScan(
                         (AbstractLogicalOperator) subOp.getValue(), subscriptionsName, subscriptionType)) {
-                    return (AbstractLogicalOperator) subOp.getValue();
+                        return (AbstractLogicalOperator) subOp.getValue();
+                    } else {
+                        AbstractLogicalOperator nestedOp = findOp((AbstractLogicalOperator) subOp.getValue(), searchTag,
+                                subscriptionsName, subscriptionType);
+                        if (nestedOp != null) {
+                            return nestedOp;
+                        }
+                    }
 
                 } else if (searchTag == LogicalOperatorTag.DELEGATE_OPERATOR) {
                     DelegateOperator dOp = (DelegateOperator) subOp.getValue();

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/f0806225/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerRuntime.java
----------------------------------------------------------------------
diff --git a/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerRuntime.java b/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerRuntime.java
index 8e07af2..b604f75 100644
--- a/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerRuntime.java
+++ b/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerRuntime.java
@@ -190,8 +190,6 @@ public class NotifyBrokerRuntime extends AbstractOneInputOneOutputOneFramePushRu
             }
 
             if (push) {
-                int pushOffset = inputArg1.getStartOffset();
-                bbis.setByteBuffer(tRef.getFrameTupleAccessor().getBuffer(), pushOffset + 1);
                 if (!firstResult) {
                     sendStreams.get(endpoint).append(',');
                 }


[14/14] asterixdb-bad git commit: Delay result type evaluation until creating physical operator

Posted by sj...@apache.org.
Delay result type evaluation until creating physical operator

Change-Id: Iabc5288b6cc5d4cdfa2ffdaca27e8caa813dc6d6


Project: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/commit/9d049997
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/tree/9d049997
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/diff/9d049997

Branch: refs/heads/master
Commit: 9d0499973681f6516eedaa4ea0370dbe4d415003
Parents: 51819b7
Author: Steven Glenn Jacobs <sj...@ucr.edu>
Authored: Fri Aug 3 12:49:32 2018 -0700
Committer: Steven Glenn Jacobs <sj...@ucr.edu>
Committed: Fri Aug 3 12:49:32 2018 -0700

----------------------------------------------------------------------
 .../bad/rules/InsertBrokerNotifierForChannelRule.java  | 13 ++++---------
 .../asterix/bad/runtime/NotifyBrokerOperator.java      | 11 ++---------
 .../asterix/bad/runtime/NotifyBrokerPOperator.java     |  6 +++++-
 3 files changed, 11 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/9d049997/asterix-bad/src/main/java/org/apache/asterix/bad/rules/InsertBrokerNotifierForChannelRule.java
----------------------------------------------------------------------
diff --git a/asterix-bad/src/main/java/org/apache/asterix/bad/rules/InsertBrokerNotifierForChannelRule.java b/asterix-bad/src/main/java/org/apache/asterix/bad/rules/InsertBrokerNotifierForChannelRule.java
index 9ead7f0..258aaf1 100644
--- a/asterix-bad/src/main/java/org/apache/asterix/bad/rules/InsertBrokerNotifierForChannelRule.java
+++ b/asterix-bad/src/main/java/org/apache/asterix/bad/rules/InsertBrokerNotifierForChannelRule.java
@@ -31,7 +31,6 @@ import org.apache.asterix.metadata.declared.DatasetDataSource;
 import org.apache.asterix.om.base.AString;
 import org.apache.asterix.om.constants.AsterixConstantValue;
 import org.apache.asterix.om.functions.BuiltinFunctions;
-import org.apache.asterix.om.types.IAType;
 import org.apache.commons.lang3.mutable.Mutable;
 import org.apache.commons.lang3.mutable.MutableObject;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
@@ -44,7 +43,6 @@ import org.apache.hyracks.algebricks.core.algebra.base.LogicalOperatorTag;
 import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
 import org.apache.hyracks.algebricks.core.algebra.expressions.AggregateFunctionCallExpression;
 import org.apache.hyracks.algebricks.core.algebra.expressions.ConstantExpression;
-import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
 import org.apache.hyracks.algebricks.core.algebra.expressions.ScalarFunctionCallExpression;
 import org.apache.hyracks.algebricks.core.algebra.expressions.VariableReferenceExpression;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
@@ -182,10 +180,9 @@ public class InsertBrokerNotifierForChannelRule implements IAlgebraicRewriteRule
     }
 
     private DelegateOperator createBrokerOp(LogicalVariable brokerEndpointVar, LogicalVariable sendVar,
-            LogicalVariable channelExecutionVar, String channelDataverse, String channelName, boolean push,
-            IAType resultType) {
+            LogicalVariable channelExecutionVar, String channelDataverse, String channelName, boolean push) {
         NotifyBrokerOperator notifyBrokerOp =
-                new NotifyBrokerOperator(brokerEndpointVar, sendVar, channelExecutionVar, push, resultType);
+                new NotifyBrokerOperator(brokerEndpointVar, sendVar, channelExecutionVar, push);
         EntityId activeId = new EntityId(BADConstants.CHANNEL_EXTENSION_NAME, channelDataverse, channelName);
         NotifyBrokerPOperator notifyBrokerPOp = new NotifyBrokerPOperator(activeId);
         notifyBrokerOp.setPhysicalOperator(notifyBrokerPOp);
@@ -203,12 +200,10 @@ public class InsertBrokerNotifierForChannelRule implements IAlgebraicRewriteRule
         while (assign.getOperatorTag() != LogicalOperatorTag.ASSIGN) {
             assign = (AbstractLogicalOperator) assign.getInputs().get(0).getValue();
         }
-        IVariableTypeEnvironment env = assign.computeOutputTypeEnvironment(context);
-        IAType resultType = (IAType) env.getVarType(sendVar);
 
         //Create the NotifyBrokerOperator
         DelegateOperator extensionOp = createBrokerOp(brokerEndpointVar, sendVar, channelExecutionVar, channelDataverse,
-                channelName, true, resultType);
+                channelName, true);
 
         extensionOp.getInputs().add(new MutableObject<>(eOp));
         context.computeAndSetTypeEnvironmentForOperator(extensionOp);
@@ -260,7 +255,7 @@ public class InsertBrokerNotifierForChannelRule implements IAlgebraicRewriteRule
 
         //Create the NotifyBrokerOperator
         DelegateOperator extensionOp = createBrokerOp(brokerEndpointVar, sendListVar, channelExecutionVar,
-                channelDataverse, channelName, false, null);
+                channelDataverse, channelName, false);
 
         //Set the input for the distinct as the old top
         extensionOp.getInputs().add(new MutableObject<>(groupbyOp));

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/9d049997/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerOperator.java
----------------------------------------------------------------------
diff --git a/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerOperator.java b/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerOperator.java
index df0f0f4..5fc9b22 100644
--- a/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerOperator.java
+++ b/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerOperator.java
@@ -20,7 +20,6 @@ package org.apache.asterix.bad.runtime;
 
 import java.util.Collection;
 
-import org.apache.asterix.om.types.IAType;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractDelegatedLogicalOperator;
@@ -35,15 +34,13 @@ public class NotifyBrokerOperator extends AbstractDelegatedLogicalOperator {
     private final LogicalVariable channelExecutionVar;
     private final LogicalVariable pushListVar;
     private final boolean push;
-    private final IAType recordType;
 
     public NotifyBrokerOperator(LogicalVariable brokerEndpointVar, LogicalVariable pushListVar,
-            LogicalVariable resultSetVar, boolean push, IAType recordType) {
+            LogicalVariable resultSetVar, boolean push) {
         this.brokerEndpointVar = brokerEndpointVar;
         this.channelExecutionVar = resultSetVar;
         this.pushListVar = pushListVar;
         this.push = push;
-        this.recordType = recordType;
     }
 
     public LogicalVariable getPushListVar() {
@@ -58,10 +55,6 @@ public class NotifyBrokerOperator extends AbstractDelegatedLogicalOperator {
         return channelExecutionVar;
     }
 
-    public IAType getRecordType() {
-        return recordType;
-    }
-
     public boolean getPush() {
         return push;
     }
@@ -79,7 +72,7 @@ public class NotifyBrokerOperator extends AbstractDelegatedLogicalOperator {
 
     @Override
     public IOperatorDelegate newInstance() {
-        return new NotifyBrokerOperator(brokerEndpointVar, pushListVar, channelExecutionVar, push, recordType);
+        return new NotifyBrokerOperator(brokerEndpointVar, pushListVar, channelExecutionVar, push);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/9d049997/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerPOperator.java
----------------------------------------------------------------------
diff --git a/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerPOperator.java b/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerPOperator.java
index b9cfbfd..264a994 100644
--- a/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerPOperator.java
+++ b/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerPOperator.java
@@ -27,6 +27,7 @@ import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
 import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
 import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
 import org.apache.hyracks.algebricks.core.algebra.base.PhysicalOperatorTag;
+import org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.DelegateOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
@@ -78,7 +79,10 @@ public class NotifyBrokerPOperator extends AbstractPhysicalOperator {
         LogicalVariable pushListVar = ((NotifyBrokerOperator) notify.getDelegate()).getPushListVar();
         LogicalVariable brokerVar = ((NotifyBrokerOperator) notify.getDelegate()).getBrokerEndpointVariable();
         LogicalVariable executionVar = ((NotifyBrokerOperator) notify.getDelegate()).getChannelExecutionVariable();
-        IAType recordType = ((NotifyBrokerOperator) notify.getDelegate()).getRecordType();
+
+        IVariableTypeEnvironment env = context.getTypeEnvironment(op.getInputs().get(0).getValue());
+        IAType recordType = (IAType) env.getVarType(pushListVar);
+
         boolean push = ((NotifyBrokerOperator) notify.getDelegate()).getPush();
 
         int brokerColumn = inputSchemas[0].findVariable(brokerVar);


[04/14] asterixdb-bad git commit: [NO ISSUE][BAD] Add Required Test Classes Dependency

Posted by sj...@apache.org.
[NO ISSUE][BAD] Add Required Test Classes Dependency

Change-Id: Id661bb2dd3119f8ed9db93827b22afa1f2afdb7b


Project: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/commit/8c940db8
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/tree/8c940db8
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/diff/8c940db8

Branch: refs/heads/resultsFinalVersion
Commit: 8c940db8aac7c84211b7b66091125b79b438d83d
Parents: 5364a83
Author: Murtadha Hubail <mu...@couchbase.com>
Authored: Fri Jul 13 02:34:29 2018 +0300
Committer: Murtadha Hubail <mu...@couchbase.com>
Committed: Fri Jul 13 02:34:29 2018 +0300

----------------------------------------------------------------------
 asterix-bad/pom.xml                                           | 7 +++++++
 .../java/org/apache/asterix/bad/test/BADExecutionTest.java    | 2 ++
 2 files changed, 9 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/8c940db8/asterix-bad/pom.xml
----------------------------------------------------------------------
diff --git a/asterix-bad/pom.xml b/asterix-bad/pom.xml
index cc8204e..3dbeca6 100644
--- a/asterix-bad/pom.xml
+++ b/asterix-bad/pom.xml
@@ -318,5 +318,12 @@
       <groupId>org.apache.hyracks</groupId>
       <artifactId>hyracks-api</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.hyracks</groupId>
+      <artifactId>hyracks-storage-am-lsm-btree-test</artifactId>
+      <version>${hyracks.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 </project>

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/8c940db8/asterix-bad/src/test/java/org/apache/asterix/bad/test/BADExecutionTest.java
----------------------------------------------------------------------
diff --git a/asterix-bad/src/test/java/org/apache/asterix/bad/test/BADExecutionTest.java b/asterix-bad/src/test/java/org/apache/asterix/bad/test/BADExecutionTest.java
index 9701b2b..f9a2e6e 100644
--- a/asterix-bad/src/test/java/org/apache/asterix/bad/test/BADExecutionTest.java
+++ b/asterix-bad/src/test/java/org/apache/asterix/bad/test/BADExecutionTest.java
@@ -30,6 +30,7 @@ import org.apache.asterix.test.runtime.ExecutionTestUtil;
 import org.apache.asterix.testframework.context.TestCaseContext;
 import org.apache.asterix.testframework.xml.TestGroup;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.hyracks.storage.am.lsm.btree.impl.TestLsmBtreeLocalResource;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -57,6 +58,7 @@ public class BADExecutionTest {
     private static final boolean cleanupOnStop = true;
 
     protected static TestGroup FailedGroup;
+    protected TestLsmBtreeLocalResource resource = null;
 
     @BeforeClass
     public static void setUp() throws Exception {


[06/14] asterixdb-bad git commit: merged master

Posted by sj...@apache.org.
merged master


Project: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/commit/99837b1c
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/tree/99837b1c
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/diff/99837b1c

Branch: refs/heads/resultsFinalVersion
Commit: 99837b1c67bcc35860341aff6525b054e8177f38
Parents: ed5d27c 5364a83
Author: Steven Glenn Jacobs <sj...@ucr.edu>
Authored: Fri Jul 13 15:46:02 2018 -0700
Committer: Steven Glenn Jacobs <sj...@ucr.edu>
Committed: Fri Jul 13 15:46:02 2018 -0700

----------------------------------------------------------------------
 .../java/org/apache/asterix/bad/lang/BADStatementExecutor.java   | 3 ++-
 .../asterix/bad/metadata/DeployedJobSpecEventListener.java       | 3 +--
 .../apache/asterix/bad/recovery/BADGlobalRecoveryManager.java    | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------



[09/14] asterixdb-bad git commit: Tests pass

Posted by sj...@apache.org.
Tests pass


Project: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/commit/70bc7a36
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/tree/70bc7a36
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/diff/70bc7a36

Branch: refs/heads/resultsFinalVersion
Commit: 70bc7a36a0214b740cc9a7b7fe195ea8836f18b3
Parents: 376a145
Author: Steven Glenn Jacobs <sj...@ucr.edu>
Authored: Thu Jul 26 10:44:40 2018 -0700
Committer: Steven Glenn Jacobs <sj...@ucr.edu>
Committed: Thu Jul 26 10:44:40 2018 -0700

----------------------------------------------------------------------
 .../java/org/apache/asterix/bad/runtime/NotifyBrokerOperator.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/70bc7a36/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerOperator.java
----------------------------------------------------------------------
diff --git a/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerOperator.java b/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerOperator.java
index 6dc97a8..f3cd328 100644
--- a/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerOperator.java
+++ b/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerOperator.java
@@ -97,7 +97,7 @@ public class NotifyBrokerOperator extends AbstractDelegatedLogicalOperator {
     }
 
     @Override
-    public void replaceVariables(Pair<LogicalVariable, LogicalVariable> arg) {
+    public void replaceVariable(Pair<LogicalVariable, LogicalVariable> arg) {
         if (pushListVar.equals(arg.first)) {
             pushListVar = arg.second;
         }


[08/14] asterixdb-bad git commit: Merge branch 'master' into resultsFinalVersion

Posted by sj...@apache.org.
Merge branch 'master' into resultsFinalVersion


Project: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/commit/376a1454
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/tree/376a1454
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/diff/376a1454

Branch: refs/heads/resultsFinalVersion
Commit: 376a1454df1d8275516f5eafa2e3f77547851ffc
Parents: 99837b1 40b70a1
Author: Steven Glenn Jacobs <sj...@ucr.edu>
Authored: Thu Jul 26 10:28:44 2018 -0700
Committer: Steven Glenn Jacobs <sj...@ucr.edu>
Committed: Thu Jul 26 10:28:44 2018 -0700

----------------------------------------------------------------------
 asterix-bad/pom.xml                                   |  7 +++++++
 .../apache/asterix/bad/lang/BADStatementExecutor.java |  7 +++----
 .../bad/lang/statement/BrokerDropStatement.java       |  5 +++--
 .../bad/lang/statement/ChannelDropStatement.java      | 10 +++++-----
 .../bad/lang/statement/ChannelSubscribeStatement.java |  5 +++--
 .../lang/statement/ChannelUnsubscribeStatement.java   |  8 ++++----
 .../bad/lang/statement/CreateBrokerStatement.java     |  5 +++--
 .../bad/lang/statement/CreateChannelStatement.java    |  8 ++++----
 .../bad/lang/statement/CreateProcedureStatement.java  | 14 ++++++--------
 .../bad/lang/statement/ExecuteProcedureStatement.java | 13 ++++++-------
 .../bad/lang/statement/ProcedureDropStatement.java    | 10 +++++-----
 .../org/apache/asterix/bad/test/BADExecutionTest.java |  2 ++
 12 files changed, 51 insertions(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/376a1454/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelDropStatement.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/376a1454/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelSubscribeStatement.java
----------------------------------------------------------------------
diff --cc asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelSubscribeStatement.java
index c55cbe8,cff1eaa..2bf1bea
--- 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
@@@ -40,7 -52,9 +40,8 @@@ import org.apache.asterix.translator.IR
  import org.apache.asterix.translator.IStatementExecutor;
  import org.apache.asterix.translator.IStatementExecutor.ResultDelivery;
  import org.apache.asterix.translator.IStatementExecutor.Stats;
+ import org.apache.asterix.translator.IStatementExecutorContext;
  import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 -import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
  import org.apache.hyracks.api.client.IHyracksClientConnection;
  import org.apache.hyracks.api.dataset.IHyracksDataset;
  import org.apache.hyracks.api.dataset.ResultSetId;

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/376a1454/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelUnsubscribeStatement.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/376a1454/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateChannelStatement.java
----------------------------------------------------------------------


[05/14] asterixdb-bad git commit: Allow notify to replace variables

Posted by sj...@apache.org.
Allow notify to replace variables


Project: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/commit/ed5d27cb
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/tree/ed5d27cb
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/diff/ed5d27cb

Branch: refs/heads/resultsFinalVersion
Commit: ed5d27cbe9576ede70aa49297951e7a23a09159e
Parents: 0cf5a3e
Author: Steven Glenn Jacobs <sj...@ucr.edu>
Authored: Fri Jul 13 14:26:53 2018 -0700
Committer: Steven Glenn Jacobs <sj...@ucr.edu>
Committed: Fri Jul 13 14:26:53 2018 -0700

----------------------------------------------------------------------
 .../bad/runtime/NotifyBrokerOperator.java       | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/ed5d27cb/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerOperator.java
----------------------------------------------------------------------
diff --git a/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerOperator.java b/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerOperator.java
index df0f0f4..6dc97a8 100644
--- a/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerOperator.java
+++ b/asterix-bad/src/main/java/org/apache/asterix/bad/runtime/NotifyBrokerOperator.java
@@ -22,6 +22,7 @@ import java.util.Collection;
 
 import org.apache.asterix.om.types.IAType;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.algebricks.common.utils.Pair;
 import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractDelegatedLogicalOperator;
 import org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorDelegate;
@@ -31,9 +32,9 @@ import org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalExpressionRef
  * An operator for sending broker notifications
  */
 public class NotifyBrokerOperator extends AbstractDelegatedLogicalOperator {
-    private final LogicalVariable brokerEndpointVar;
-    private final LogicalVariable channelExecutionVar;
-    private final LogicalVariable pushListVar;
+    private LogicalVariable brokerEndpointVar;
+    private LogicalVariable channelExecutionVar;
+    private LogicalVariable pushListVar;
     private final boolean push;
     private final IAType recordType;
 
@@ -96,6 +97,19 @@ public class NotifyBrokerOperator extends AbstractDelegatedLogicalOperator {
     }
 
     @Override
+    public void replaceVariables(Pair<LogicalVariable, LogicalVariable> arg) {
+        if (pushListVar.equals(arg.first)) {
+            pushListVar = arg.second;
+        }
+        if (brokerEndpointVar.equals(arg.first)) {
+            brokerEndpointVar = arg.second;
+        }
+        if (channelExecutionVar.equals(arg.first)) {
+            channelExecutionVar = arg.second;
+        }
+    }
+
+    @Override
     public void getProducedVariables(Collection<LogicalVariable> producedVars) {
         // none produced
 


[07/14] asterixdb-bad git commit: Pass executor context and client id to extention statements

Posted by sj...@apache.org.
Pass executor context and client id to extention statements

Change-Id: I1395817df00917bd9b4d5676d4f2cea3888b7221


Project: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/commit/40b70a18
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/tree/40b70a18
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/diff/40b70a18

Branch: refs/heads/resultsFinalVersion
Commit: 40b70a18ab849cf7403cacdfdd47c14da24fffb0
Parents: 8c940db
Author: Abdullah Alamoudi <ba...@gmail.com>
Authored: Wed Jul 18 08:50:24 2018 -0700
Committer: Abdullah Alamoudi <ba...@gmail.com>
Committed: Wed Jul 18 08:50:24 2018 -0700

----------------------------------------------------------------------
 .../apache/asterix/bad/lang/BADStatementExecutor.java |  7 +++----
 .../bad/lang/statement/BrokerDropStatement.java       |  5 +++--
 .../bad/lang/statement/ChannelDropStatement.java      | 10 +++++-----
 .../bad/lang/statement/ChannelSubscribeStatement.java |  5 +++--
 .../lang/statement/ChannelUnsubscribeStatement.java   |  8 ++++----
 .../bad/lang/statement/CreateBrokerStatement.java     |  5 +++--
 .../bad/lang/statement/CreateChannelStatement.java    |  8 ++++----
 .../bad/lang/statement/CreateProcedureStatement.java  | 14 ++++++--------
 .../bad/lang/statement/ExecuteProcedureStatement.java | 13 ++++++-------
 .../bad/lang/statement/ProcedureDropStatement.java    | 10 +++++-----
 10 files changed, 42 insertions(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/40b70a18/asterix-bad/src/main/java/org/apache/asterix/bad/lang/BADStatementExecutor.java
----------------------------------------------------------------------
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..1a5fc34 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 @@ public class BADStatementExecutor extends QueryTranslator {
             metadataProvider.getLocks().unlock();
         }
 
-
     }
 
     @Override
@@ -343,7 +342,7 @@ public class BADStatementExecutor extends QueryTranslator {
             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);
         }
         for (Procedure procedure : procedures) {
             if (!procedure.getEntityId().getDataverse().equals(dvId.getValue())) {
@@ -352,13 +351,13 @@ public class BADStatementExecutor extends QueryTranslator {
             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);
         }
         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);
         }
         MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
         super.handleDataverseDropStatement(metadataProvider, stmt, hcc);

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/40b70a18/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/BrokerDropStatement.java
----------------------------------------------------------------------
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..b2b38ab 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
@@ -30,6 +30,7 @@ import org.apache.asterix.metadata.MetadataTransactionContext;
 import org.apache.asterix.metadata.declared.MetadataProvider;
 import org.apache.asterix.translator.IRequestParameters;
 import org.apache.asterix.translator.IStatementExecutor;
+import org.apache.asterix.translator.IStatementExecutorContext;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.api.client.IHyracksClientConnection;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
@@ -70,8 +71,8 @@ public class BrokerDropStatement extends ExtensionStatement {
 
     @Override
     public void handle(IHyracksClientConnection hcc, IStatementExecutor statementExecutor,
-            IRequestParameters requestParameters, MetadataProvider metadataProvider, int resultSetId)
-            throws HyracksDataException, AlgebricksException {
+            IRequestParameters requestParameters, MetadataProvider metadataProvider, int resultSetId,
+            IStatementExecutorContext executorCtx) throws HyracksDataException, AlgebricksException {
         //TODO: dont drop a broker that's being used
         String dataverse = ((QueryTranslator) statementExecutor).getActiveDataverse(dataverseName);
         MetadataTransactionContext mdTxnCtx = null;

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/40b70a18/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelDropStatement.java
----------------------------------------------------------------------
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..d778215 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
@@ -40,6 +40,7 @@ import org.apache.asterix.metadata.MetadataTransactionContext;
 import org.apache.asterix.metadata.declared.MetadataProvider;
 import org.apache.asterix.translator.IRequestParameters;
 import org.apache.asterix.translator.IStatementExecutor;
+import org.apache.asterix.translator.IStatementExecutorContext;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.api.client.IHyracksClientConnection;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
@@ -82,8 +83,8 @@ public class ChannelDropStatement extends ExtensionStatement {
 
     @Override
     public void handle(IHyracksClientConnection hcc, IStatementExecutor statementExecutor,
-            IRequestParameters requestParameters, MetadataProvider metadataProvider, int resultSetId)
-            throws HyracksDataException, AlgebricksException {
+            IRequestParameters requestParameters, MetadataProvider metadataProvider, int resultSetId,
+            IStatementExecutorContext executorCtx) throws HyracksDataException, AlgebricksException {
         String dataverse = ((QueryTranslator) statementExecutor).getActiveDataverse(dataverseName);
         boolean txnActive = false;
         EntityId entityId = new EntityId(BADConstants.CHANNEL_EXTENSION_NAME, dataverse, channelName.getValue());
@@ -111,9 +112,8 @@ public class ChannelDropStatement extends ExtensionStatement {
             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();

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/40b70a18/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelSubscribeStatement.java
----------------------------------------------------------------------
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..cff1eaa 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
@@ -52,6 +52,7 @@ import org.apache.asterix.translator.IRequestParameters;
 import org.apache.asterix.translator.IStatementExecutor;
 import org.apache.asterix.translator.IStatementExecutor.ResultDelivery;
 import org.apache.asterix.translator.IStatementExecutor.Stats;
+import org.apache.asterix.translator.IStatementExecutorContext;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
 import org.apache.hyracks.api.client.IHyracksClientConnection;
@@ -120,8 +121,8 @@ public class ChannelSubscribeStatement extends ExtensionStatement {
 
     @Override
     public void handle(IHyracksClientConnection hcc, IStatementExecutor statementExecutor,
-            IRequestParameters requestParameters, MetadataProvider metadataProvider, int resultSetId)
-            throws HyracksDataException, AlgebricksException {
+            IRequestParameters requestParameters, MetadataProvider metadataProvider, int resultSetId,
+            IStatementExecutorContext executorCtx) throws HyracksDataException, AlgebricksException {
         String dataverse = ((QueryTranslator) statementExecutor).getActiveDataverse(dataverseName);
         String brokerDataverse = ((QueryTranslator) statementExecutor).getActiveDataverse(brokerDataverseName);
 

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/40b70a18/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ChannelUnsubscribeStatement.java
----------------------------------------------------------------------
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..774ca86 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
@@ -46,6 +46,7 @@ import org.apache.asterix.metadata.declared.MetadataProvider;
 import org.apache.asterix.om.functions.BuiltinFunctions;
 import org.apache.asterix.translator.IRequestParameters;
 import org.apache.asterix.translator.IStatementExecutor;
+import org.apache.asterix.translator.IStatementExecutorContext;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
 import org.apache.hyracks.api.client.IHyracksClientConnection;
@@ -100,8 +101,8 @@ public class ChannelUnsubscribeStatement extends ExtensionStatement {
 
     @Override
     public void handle(IHyracksClientConnection hcc, IStatementExecutor statementExecutor,
-            IRequestParameters requestParameters, MetadataProvider metadataProvider, int resultSetId)
-            throws HyracksDataException, AlgebricksException {
+            IRequestParameters requestParameters, MetadataProvider metadataProvider, int resultSetId,
+            IStatementExecutorContext executorCtx) throws HyracksDataException, AlgebricksException {
         String dataverse = ((QueryTranslator) statementExecutor).getActiveDataverse(dataverseName);
 
         MetadataTransactionContext mdTxnCtx = null;
@@ -139,8 +140,7 @@ public class ChannelUnsubscribeStatement extends ExtensionStatement {
             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);

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/40b70a18/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateBrokerStatement.java
----------------------------------------------------------------------
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..0f01a66 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
@@ -33,6 +33,7 @@ import org.apache.asterix.metadata.MetadataTransactionContext;
 import org.apache.asterix.metadata.declared.MetadataProvider;
 import org.apache.asterix.translator.IRequestParameters;
 import org.apache.asterix.translator.IStatementExecutor;
+import org.apache.asterix.translator.IStatementExecutorContext;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.api.client.IHyracksClientConnection;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
@@ -74,8 +75,8 @@ public class CreateBrokerStatement extends ExtensionStatement {
 
     @Override
     public void handle(IHyracksClientConnection hcc, IStatementExecutor statementExecutor,
-            IRequestParameters requestParameters, MetadataProvider metadataProvider, int resultSetId)
-            throws HyracksDataException, AlgebricksException {
+            IRequestParameters requestParameters, MetadataProvider metadataProvider, int resultSetId,
+            IStatementExecutorContext executorCtx) throws HyracksDataException, AlgebricksException {
         String dataverse = ((QueryTranslator) statementExecutor).getActiveDataverse(dataverseName);
         MetadataTransactionContext mdTxnCtx = null;
         try {

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/40b70a18/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateChannelStatement.java
----------------------------------------------------------------------
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..edadeb6 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
@@ -68,6 +68,7 @@ import org.apache.asterix.translator.IRequestParameters;
 import org.apache.asterix.translator.IStatementExecutor;
 import org.apache.asterix.translator.IStatementExecutor.ResultDelivery;
 import org.apache.asterix.translator.IStatementExecutor.Stats;
+import org.apache.asterix.translator.IStatementExecutorContext;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.algebricks.common.utils.Pair;
 import org.apache.hyracks.api.client.IHyracksClientConnection;
@@ -138,8 +139,7 @@ public class CreateChannelStatement extends ExtensionStatement {
         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,8 +258,8 @@ public class CreateChannelStatement extends ExtensionStatement {
 
     @Override
     public void handle(IHyracksClientConnection hcc, IStatementExecutor statementExecutor,
-            IRequestParameters requestContext, MetadataProvider metadataProvider, int resultSetId)
-            throws HyracksDataException, AlgebricksException {
+            IRequestParameters requestContext, MetadataProvider metadataProvider, int resultSetId,
+            IStatementExecutorContext executorCtx) throws HyracksDataException, AlgebricksException {
         //This function performs three tasks:
         //1. Create datasets for the Channel
         //2. Create and run the Channel Job

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/40b70a18/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateProcedureStatement.java
----------------------------------------------------------------------
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..6459b4c 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
@@ -69,6 +69,7 @@ import org.apache.asterix.translator.IRequestParameters;
 import org.apache.asterix.translator.IStatementExecutor;
 import org.apache.asterix.translator.IStatementExecutor.ResultDelivery;
 import org.apache.asterix.translator.IStatementExecutor.Stats;
+import org.apache.asterix.translator.IStatementExecutorContext;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.algebricks.common.utils.Pair;
 import org.apache.hyracks.api.client.IHyracksClientConnection;
@@ -175,8 +176,7 @@ public class CreateProcedureStatement extends ExtensionStatement {
     }
 
     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 @@ public class CreateProcedureStatement extends ExtensionStatement {
             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 @@ public class CreateProcedureStatement extends ExtensionStatement {
     }
 
     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,8 +223,8 @@ public class CreateProcedureStatement extends ExtensionStatement {
 
     @Override
     public void handle(IHyracksClientConnection hcc, IStatementExecutor statementExecutor,
-            IRequestParameters requestParameters, MetadataProvider metadataProvider, int resultSetId)
-            throws HyracksDataException, AlgebricksException {
+            IRequestParameters requestParameters, MetadataProvider metadataProvider, int resultSetId,
+            IStatementExecutorContext executorCtx) throws HyracksDataException, AlgebricksException {
         ICcApplicationContext appCtx = metadataProvider.getApplicationContext();
         ActiveNotificationHandler activeEventHandler =
                 (ActiveNotificationHandler) appCtx.getActiveNotificationHandler();

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/40b70a18/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ExecuteProcedureStatement.java
----------------------------------------------------------------------
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..69f413e 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
@@ -50,6 +50,7 @@ import org.apache.asterix.om.base.IAObject;
 import org.apache.asterix.translator.ConstantHelper;
 import org.apache.asterix.translator.IRequestParameters;
 import org.apache.asterix.translator.IStatementExecutor;
+import org.apache.asterix.translator.IStatementExecutorContext;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.api.client.IHyracksClientConnection;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
@@ -96,8 +97,8 @@ public class ExecuteProcedureStatement extends ExtensionStatement {
 
     @Override
     public void handle(IHyracksClientConnection hcc, IStatementExecutor statementExecutor,
-            IRequestParameters requestParameters, MetadataProvider metadataProvider, int resultSetId)
-            throws HyracksDataException, AlgebricksException {
+            IRequestParameters requestParameters, MetadataProvider metadataProvider, int resultSetId,
+            IStatementExecutorContext executorCtx) throws HyracksDataException, AlgebricksException {
         ICcApplicationContext appCtx = metadataProvider.getApplicationContext();
         ActiveNotificationHandler activeEventHandler =
                 (ActiveNotificationHandler) appCtx.getActiveNotificationHandler();
@@ -119,9 +120,8 @@ public class ExecuteProcedureStatement extends ExtensionStatement {
             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 +142,7 @@ public class ExecuteProcedureStatement extends ExtensionStatement {
         }
     }
 
-    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,

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/40b70a18/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/ProcedureDropStatement.java
----------------------------------------------------------------------
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..7a1cfd0 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
@@ -40,6 +40,7 @@ import org.apache.asterix.metadata.MetadataTransactionContext;
 import org.apache.asterix.metadata.declared.MetadataProvider;
 import org.apache.asterix.translator.IRequestParameters;
 import org.apache.asterix.translator.IStatementExecutor;
+import org.apache.asterix.translator.IStatementExecutorContext;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.api.client.IHyracksClientConnection;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
@@ -76,8 +77,8 @@ public class ProcedureDropStatement extends ExtensionStatement {
 
     @Override
     public void handle(IHyracksClientConnection hcc, IStatementExecutor statementExecutor,
-            IRequestParameters requestParameters, MetadataProvider metadataProvider, int resultSetId)
-            throws HyracksDataException, AlgebricksException {
+            IRequestParameters requestParameters, MetadataProvider metadataProvider, int resultSetId,
+            IStatementExecutorContext executorCtx) throws HyracksDataException, AlgebricksException {
         ICcApplicationContext appCtx = metadataProvider.getApplicationContext();
         ActiveNotificationHandler activeEventHandler =
                 (ActiveNotificationHandler) appCtx.getActiveNotificationHandler();
@@ -115,9 +116,8 @@ public class ProcedureDropStatement extends ExtensionStatement {
             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();


[02/14] asterixdb-bad git commit: Coordinated change for ASTERIXDB-2405

Posted by sj...@apache.org.
Coordinated change for ASTERIXDB-2405

Change-Id: Ie6b50dd07a0503386946800ba782c7c789a317d6


Project: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/commit/7da30159
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/tree/7da30159
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/diff/7da30159

Branch: refs/heads/resultsFinalVersion
Commit: 7da30159bee6067bb7403a2fc81949d64839a80f
Parents: 563520a
Author: Steven Glenn Jacobs <sj...@ucr.edu>
Authored: Mon Jul 9 17:02:20 2018 -0700
Committer: Steven Glenn Jacobs <sj...@ucr.edu>
Committed: Mon Jul 9 17:02:20 2018 -0700

----------------------------------------------------------------------
 .../results/channel/channel-push.plan           | 54 +++++++++++++++-----
 1 file changed, 41 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/7da30159/asterix-bad/src/test/resources/optimizerts/results/channel/channel-push.plan
----------------------------------------------------------------------
diff --git a/asterix-bad/src/test/resources/optimizerts/results/channel/channel-push.plan b/asterix-bad/src/test/resources/optimizerts/results/channel/channel-push.plan
index 770617f..eee8c11 100644
--- a/asterix-bad/src/test/resources/optimizerts/results/channel/channel-push.plan
+++ b/asterix-bad/src/test/resources/optimizerts/results/channel/channel-push.plan
@@ -37,28 +37,56 @@
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                     -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                       -- BROADCAST_EXCHANGE  |PARTITIONED|
-                        -- PRE_CLUSTERED_GROUP_BY[$$120]  |PARTITIONED|
+                        -- PRE_CLUSTERED_GROUP_BY[$$167]  |PARTITIONED|
                                 {
                                   -- AGGREGATE  |LOCAL|
                                     -- STREAM_SELECT  |LOCAL|
                                       -- NESTED_TUPLE_SOURCE  |LOCAL|
                                 }
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- STABLE_SORT [$$120(ASC)]  |PARTITIONED|
-                              -- HASH_PARTITION_EXCHANGE [$$120]  |PARTITIONED|
-                                -- NESTED_LOOP  |PARTITIONED|
+                            -- STABLE_SORT [$$167(ASC)]  |PARTITIONED|
+                              -- HASH_PARTITION_EXCHANGE [$$167]  |PARTITIONED|
+                                -- UNION_ALL  |PARTITIONED|
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ASSIGN  |PARTITIONED|
-                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                      -- STREAM_SELECT  |PARTITIONED|
+                                        -- STREAM_PROJECT  |PARTITIONED|
+                                          -- ASSIGN  |PARTITIONED|
                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                              -- BTREE_SEARCH  |PARTITIONED|
+                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                  -- STREAM_PROJECT  |PARTITIONED|
+                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                      -- SPLIT  |PARTITIONED|
+                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                          -- STREAM_PROJECT  |PARTITIONED|
+                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                              -- RTREE_SEARCH  |PARTITIONED|
+                                                                -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                                  -- ASSIGN  |PARTITIONED|
+                                                                    -- STREAM_PROJECT  |PARTITIONED|
+                                                                      -- ASSIGN  |PARTITIONED|
+                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                          -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                     -- STREAM_PROJECT  |PARTITIONED|
-                                      -- ASSIGN  |PARTITIONED|
+                                      -- STREAM_SELECT  |PARTITIONED|
                                         -- STREAM_PROJECT  |PARTITIONED|
-                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                            -- DATASOURCE_SCAN  |PARTITIONED|
+                                          -- ASSIGN  |PARTITIONED|
+                                            -- STREAM_PROJECT  |PARTITIONED|
                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
\ No newline at end of file
+                                                -- SPLIT  |PARTITIONED|
+                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                    -- STREAM_PROJECT  |PARTITIONED|
+                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                        -- RTREE_SEARCH  |PARTITIONED|
+                                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                            -- ASSIGN  |PARTITIONED|
+                                                              -- STREAM_PROJECT  |PARTITIONED|
+                                                                -- ASSIGN  |PARTITIONED|
+                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
\ No newline at end of file


[03/14] asterixdb-bad git commit: Remove unneeded throws declaration

Posted by sj...@apache.org.
Remove unneeded throws declaration

Change-Id: I20a6effa1f01658ec973f85cb7be1e4ccbd7fc1b


Project: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/commit/5364a835
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/tree/5364a835
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/diff/5364a835

Branch: refs/heads/resultsFinalVersion
Commit: 5364a835c798148c96b289b78dada87669054c7f
Parents: 7da3015
Author: Abdullah Alamoudi <ba...@gmail.com>
Authored: Tue Jul 10 10:37:29 2018 -0700
Committer: Abdullah Alamoudi <ba...@gmail.com>
Committed: Tue Jul 10 10:37:29 2018 -0700

----------------------------------------------------------------------
 .../apache/asterix/bad/metadata/DeployedJobSpecEventListener.java | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/5364a835/asterix-bad/src/main/java/org/apache/asterix/bad/metadata/DeployedJobSpecEventListener.java
----------------------------------------------------------------------
diff --git a/asterix-bad/src/main/java/org/apache/asterix/bad/metadata/DeployedJobSpecEventListener.java b/asterix-bad/src/main/java/org/apache/asterix/bad/metadata/DeployedJobSpecEventListener.java
index 4598d71..3ec2c43 100644
--- a/asterix-bad/src/main/java/org/apache/asterix/bad/metadata/DeployedJobSpecEventListener.java
+++ b/asterix-bad/src/main/java/org/apache/asterix/bad/metadata/DeployedJobSpecEventListener.java
@@ -110,7 +110,6 @@ public class DeployedJobSpecEventListener implements IActiveEntityEventsListener
         this.executorService = ses;
     }
 
-
     public ScheduledExecutorService getExecutorService() {
         return executorService;
     }
@@ -192,7 +191,7 @@ public class DeployedJobSpecEventListener implements IActiveEntityEventsListener
     }
 
     @Override
-    public synchronized void subscribe(IActiveEntityEventSubscriber subscriber) throws HyracksDataException {
+    public synchronized void subscribe(IActiveEntityEventSubscriber subscriber) {
         // no op
     }
 


[12/14] asterixdb-bad git commit: Commented with the query that we want

Posted by sj...@apache.org.
Commented with the query that we want


Project: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/commit/18d43920
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/tree/18d43920
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/diff/18d43920

Branch: refs/heads/resultsFinalVersion
Commit: 18d43920952757c8ca47d66f759662d31c2a9d3b
Parents: bf1da24
Author: Steven Glenn Jacobs <sj...@ucr.edu>
Authored: Tue Jul 31 12:28:04 2018 -0700
Committer: Steven Glenn Jacobs <sj...@ucr.edu>
Committed: Tue Jul 31 12:28:04 2018 -0700

----------------------------------------------------------------------
 .../bad/lang/statement/CreateChannelStatement.java | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/18d43920/asterix-bad/src/main/java/org/apache/asterix/bad/lang/statement/CreateChannelStatement.java
----------------------------------------------------------------------
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 e77d098..76e3e82 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
@@ -256,19 +256,18 @@ public class CreateChannelStatement extends ExtensionStatement {
      * ) returning a;
      *
      * push version:
-     * set inline_with "false";
-     * select value {"payload": {"result":result, "subscriptionIds": brokerSubIds}} from (
+     * SET inline_with "false";
+     * select value {"payload": {"result":r, "subscriptionId": brokerSubId}} from (
      * with channelExecutionTime as current_datetime()
-     * select b.BrokerEndPoint, result, bs.brokerSubId as brokerSubId, channelExecutionTime
-     * from channels.EmergenciesNearMeChannelChannelSubscriptions sub,
-     * channels.EmergenciesNearMe(sub.param0,sub.param1) result
-     * channels.EmergenciesNearMeChannelBrokerSubscriptions bs,
-     * Metadata.Broker b
+     * select b.BrokerEndPoint, result as r, bs.brokerSubId as brokerSubId, channelExecutionTime
+     * from steven.EmergencyChannelChannelSubscriptions sub,
+     * steven.RecentEmergenciesNearUser(sub.param0) result,
+     * steven.EmergencyChannelBrokerSubscriptions bs,
+     * steven.Broker b
      * where bs.BrokerName = b.BrokerName
      * and bs.DataverseName = b.DataverseName
      * and bs.channelSubId = sub.channelSubId
-     * ) results
-     * group by BrokerEndPoint,result, channelExecutionTime group as brokerSubIds (brokerSubId as subscriptionId);
+     * ) results;
      */
     private JobSpecification createChannelJob(IStatementExecutor statementExecutor, MetadataProvider metadataProvider,
             IHyracksClientConnection hcc, IHyracksDataset hdc, Stats stats) throws Exception {


[10/14] asterixdb-bad git commit: Fix Optimizer Tests

Posted by sj...@apache.org.
http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/bf1da24d/asterix-bad/src/test/resources/optimizerts/results/channel/channel-unsubscribe.plan
----------------------------------------------------------------------
diff --git a/asterix-bad/src/test/resources/optimizerts/results/channel/channel-unsubscribe.plan b/asterix-bad/src/test/resources/optimizerts/results/channel/channel-unsubscribe.plan
index 709ed35..3435ec9 100644
--- a/asterix-bad/src/test/resources/optimizerts/results/channel/channel-unsubscribe.plan
+++ b/asterix-bad/src/test/resources/optimizerts/results/channel/channel-unsubscribe.plan
@@ -35,52 +35,51 @@
                                                             -- ASSIGN  |PARTITIONED|
                                                               -- STREAM_PROJECT  |PARTITIONED|
                                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- PRE_CLUSTERED_GROUP_BY[$$122]  |PARTITIONED|
+                                                                  -- PRE_CLUSTERED_GROUP_BY[$$121]  |PARTITIONED|
                                                                           {
                                                                             -- AGGREGATE  |LOCAL|
                                                                               -- STREAM_SELECT  |LOCAL|
                                                                                 -- NESTED_TUPLE_SOURCE  |LOCAL|
                                                                           }
                                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- STABLE_SORT [$$122(ASC)]  |PARTITIONED|
-                                                                        -- HASH_PARTITION_EXCHANGE [$$122]  |PARTITIONED|
+                                                                      -- STABLE_SORT [$$121(ASC)]  |PARTITIONED|
+                                                                        -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
                                                                           -- STREAM_PROJECT  |PARTITIONED|
                                                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- HYBRID_HASH_JOIN [$$97][$$99]  |PARTITIONED|
-                                                                                -- HASH_PARTITION_EXCHANGE [$$97]  |PARTITIONED|
+                                                                              -- HYBRID_HASH_JOIN [$$120][$$99]  |PARTITIONED|
+                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                   -- ASSIGN  |PARTITIONED|
                                                                                     -- STREAM_PROJECT  |PARTITIONED|
                                                                                       -- UNNEST  |PARTITIONED|
-                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- PRE_CLUSTERED_GROUP_BY[$$119]  |PARTITIONED|
-                                                                                                    {
-                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                        -- STREAM_SELECT  |LOCAL|
-                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                    }
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- STABLE_SORT [$$119(ASC)]  |PARTITIONED|
-                                                                                                  -- HASH_PARTITION_EXCHANGE [$$119]  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- NESTED_LOOP  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ASSIGN  |PARTITIONED|
+                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                          -- PRE_CLUSTERED_GROUP_BY[$$97]  |PARTITIONED|
+                                                                                                  {
+                                                                                                    -- AGGREGATE  |LOCAL|
+                                                                                                      -- STREAM_SELECT  |LOCAL|
+                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                                                                  }
+                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                              -- STABLE_SORT [$$97(ASC)]  |PARTITIONED|
+                                                                                                -- HASH_PARTITION_EXCHANGE [$$97]  |PARTITIONED|
+                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                      -- NESTED_LOOP  |PARTITIONED|
+                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                            -- ASSIGN  |PARTITIONED|
+                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                                                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                                                                                    -- ASSIGN  |UNPARTITIONED|
+                                                                                                                      -- EMPTY_TUPLE_SOURCE  |UNPARTITIONED|
+                                                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                            -- ASSIGN  |PARTITIONED|
+                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
                                                                                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                                                   -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- ASSIGN  |UNPARTITIONED|
-                                                                                                                        -- EMPTY_TUPLE_SOURCE  |UNPARTITIONED|
-                                                                                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                                                                                 -- HASH_PARTITION_EXCHANGE [$$99]  |PARTITIONED|
                                                                                   -- ASSIGN  |PARTITIONED|
                                                                                     -- STREAM_PROJECT  |PARTITIONED|
@@ -114,4 +113,4 @@
                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                         -- DATASOURCE_SCAN  |PARTITIONED|
                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                            -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
\ No newline at end of file


[11/14] asterixdb-bad git commit: Fix Optimizer Tests

Posted by sj...@apache.org.
Fix Optimizer Tests


Project: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/commit/bf1da24d
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/tree/bf1da24d
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb-bad/diff/bf1da24d

Branch: refs/heads/resultsFinalVersion
Commit: bf1da24de4ad62b38c761ecd2ccab55a4d717e5b
Parents: 70bc7a3
Author: Steven Glenn Jacobs <sj...@ucr.edu>
Authored: Thu Jul 26 12:52:03 2018 -0700
Committer: Steven Glenn Jacobs <sj...@ucr.edu>
Committed: Thu Jul 26 12:52:03 2018 -0700

----------------------------------------------------------------------
 .../channel/channel-advanced-index-only.plan    | 177 +++++++++----------
 .../results/channel/channel-advanced.plan       | 115 ++++++------
 .../results/channel/channel-create.plan         |  67 ++++---
 .../results/channel/channel-push.plan           |   8 +-
 .../results/channel/channel-subscribe.plan      |  67 ++++---
 .../results/channel/channel-unsubscribe.plan    |  67 ++++---
 6 files changed, 248 insertions(+), 253 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/bf1da24d/asterix-bad/src/test/resources/optimizerts/results/channel/channel-advanced-index-only.plan
----------------------------------------------------------------------
diff --git a/asterix-bad/src/test/resources/optimizerts/results/channel/channel-advanced-index-only.plan b/asterix-bad/src/test/resources/optimizerts/results/channel/channel-advanced-index-only.plan
index 449a251..d4304aa 100644
--- a/asterix-bad/src/test/resources/optimizerts/results/channel/channel-advanced-index-only.plan
+++ b/asterix-bad/src/test/resources/optimizerts/results/channel/channel-advanced-index-only.plan
@@ -35,71 +35,98 @@
                                                             -- ASSIGN  |PARTITIONED|
                                                               -- STREAM_PROJECT  |PARTITIONED|
                                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- PRE_CLUSTERED_GROUP_BY[$$169]  |PARTITIONED|
+                                                                  -- PRE_CLUSTERED_GROUP_BY[$$168]  |PARTITIONED|
                                                                           {
                                                                             -- AGGREGATE  |LOCAL|
                                                                               -- STREAM_SELECT  |LOCAL|
                                                                                 -- NESTED_TUPLE_SOURCE  |LOCAL|
                                                                           }
                                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- STABLE_SORT [$$169(ASC)]  |PARTITIONED|
-                                                                        -- HASH_PARTITION_EXCHANGE [$$169]  |PARTITIONED|
+                                                                      -- STABLE_SORT [$$168(ASC)]  |PARTITIONED|
+                                                                        -- HASH_PARTITION_EXCHANGE [$$168]  |PARTITIONED|
                                                                           -- STREAM_PROJECT  |PARTITIONED|
                                                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- HYBRID_HASH_JOIN [$$134][$$137]  |PARTITIONED|
-                                                                                -- HASH_PARTITION_EXCHANGE [$$134]  |PARTITIONED|
+                                                                              -- HYBRID_HASH_JOIN [$$167][$$137]  |PARTITIONED|
+                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                   -- ASSIGN  |PARTITIONED|
                                                                                     -- STREAM_PROJECT  |PARTITIONED|
                                                                                       -- UNNEST  |PARTITIONED|
-                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- PRE_CLUSTERED_GROUP_BY[$$166]  |PARTITIONED|
-                                                                                                    {
-                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                        -- STREAM_SELECT  |LOCAL|
-                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                    }
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- STABLE_SORT [$$166(ASC)]  |PARTITIONED|
-                                                                                                  -- HASH_PARTITION_EXCHANGE [$$166]  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- HYBRID_HASH_JOIN [$$146][$$145]  |PARTITIONED|
-                                                                                                          -- HASH_PARTITION_EXCHANGE [$$146]  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- ASSIGN  |UNPARTITIONED|
-                                                                                                                        -- EMPTY_TUPLE_SOURCE  |UNPARTITIONED|
-                                                                                                          -- HASH_PARTITION_EXCHANGE [$$145]  |PARTITIONED|
+                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                          -- PRE_CLUSTERED_GROUP_BY[$$134]  |PARTITIONED|
+                                                                                                  {
+                                                                                                    -- AGGREGATE  |LOCAL|
+                                                                                                      -- STREAM_SELECT  |LOCAL|
+                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                                                                  }
+                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                              -- STABLE_SORT [$$134(ASC)]  |PARTITIONED|
+                                                                                                -- HASH_PARTITION_EXCHANGE [$$134]  |PARTITIONED|
+                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                      -- HYBRID_HASH_JOIN [$$146][$$145]  |PARTITIONED|
+                                                                                                        -- HASH_PARTITION_EXCHANGE [$$146]  |PARTITIONED|
+                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
                                                                                                             -- ASSIGN  |PARTITIONED|
-                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- HYBRID_HASH_JOIN [$$135][$$163]  |PARTITIONED|
-                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                        -- STREAM_SELECT  |PARTITIONED|
-                                                                                                                          -- ASSIGN  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- BTREE_SEARCH  |PARTITIONED|
+                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                                                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                                                                                    -- ASSIGN  |UNPARTITIONED|
+                                                                                                                      -- EMPTY_TUPLE_SOURCE  |UNPARTITIONED|
+                                                                                                        -- HASH_PARTITION_EXCHANGE [$$145]  |PARTITIONED|
+                                                                                                          -- ASSIGN  |PARTITIONED|
+                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                -- HYBRID_HASH_JOIN [$$135][$$163]  |PARTITIONED|
+                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                                      -- STREAM_SELECT  |PARTITIONED|
+                                                                                                                        -- ASSIGN  |PARTITIONED|
+                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                            -- BTREE_SEARCH  |PARTITIONED|
+                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                                -- STABLE_SORT [$$173(ASC)]  |PARTITIONED|
+                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                                        -- BTREE_SEARCH  |PARTITIONED|
+                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                                            -- ASSIGN  |PARTITIONED|
+                                                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$163]  |PARTITIONED|
+                                                                                                                    -- NESTED_LOOP  |PARTITIONED|
+                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                        -- UNION_ALL  |PARTITIONED|
+                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                                              -- STREAM_SELECT  |PARTITIONED|
                                                                                                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- STABLE_SORT [$$174(ASC)]  |PARTITIONED|
+                                                                                                                                  -- BTREE_SEARCH  |PARTITIONED|
                                                                                                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                                                      -- SPLIT  |PARTITIONED|
                                                                                                                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- BTREE_SEARCH  |PARTITIONED|
+                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
                                                                                                                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                    -- HASH_PARTITION_EXCHANGE [$$163]  |PARTITIONED|
-                                                                                                                      -- NESTED_LOOP  |PARTITIONED|
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- UNION_ALL  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                -- STREAM_SELECT  |PARTITIONED|
+                                                                                                                                              -- BTREE_SEARCH  |PARTITIONED|
+                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                                                  -- ASSIGN  |PARTITIONED|
+                                                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                                -- SPLIT  |PARTITIONED|
+                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                                        -- BTREE_SEARCH  |PARTITIONED|
+                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                                            -- ASSIGN  |PARTITIONED|
+                                                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                                                                                        -- UNION_ALL  |PARTITIONED|
+                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                                              -- STREAM_SELECT  |PARTITIONED|
+                                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
                                                                                                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                                                                     -- BTREE_SEARCH  |PARTITIONED|
                                                                                                                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -111,45 +138,17 @@
                                                                                                                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                                                                                     -- ASSIGN  |PARTITIONED|
                                                                                                                                                       -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- SPLIT  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- BTREE_SEARCH  |PARTITIONED|
-                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- UNION_ALL  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                -- STREAM_SELECT  |PARTITIONED|
-                                                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- BTREE_SEARCH  |PARTITIONED|
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- SPLIT  |PARTITIONED|
-                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                  -- BTREE_SEARCH  |PARTITIONED|
-                                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                      -- ASSIGN  |PARTITIONED|
-                                                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- SPLIT  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- BTREE_SEARCH  |PARTITIONED|
-                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                                                -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                                -- SPLIT  |PARTITIONED|
+                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                                        -- BTREE_SEARCH  |PARTITIONED|
+                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                                            -- ASSIGN  |PARTITIONED|
+                                                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                                                                                 -- HASH_PARTITION_EXCHANGE [$$137]  |PARTITIONED|
                                                                                   -- ASSIGN  |PARTITIONED|
                                                                                     -- STREAM_PROJECT  |PARTITIONED|
@@ -168,4 +167,4 @@
                                                                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                                   -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/bf1da24d/asterix-bad/src/test/resources/optimizerts/results/channel/channel-advanced.plan
----------------------------------------------------------------------
diff --git a/asterix-bad/src/test/resources/optimizerts/results/channel/channel-advanced.plan b/asterix-bad/src/test/resources/optimizerts/results/channel/channel-advanced.plan
index bed547f..555c5b6 100644
--- a/asterix-bad/src/test/resources/optimizerts/results/channel/channel-advanced.plan
+++ b/asterix-bad/src/test/resources/optimizerts/results/channel/channel-advanced.plan
@@ -35,57 +35,72 @@
                                                             -- ASSIGN  |PARTITIONED|
                                                               -- STREAM_PROJECT  |PARTITIONED|
                                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- PRE_CLUSTERED_GROUP_BY[$$169]  |PARTITIONED|
+                                                                  -- PRE_CLUSTERED_GROUP_BY[$$168]  |PARTITIONED|
                                                                           {
                                                                             -- AGGREGATE  |LOCAL|
                                                                               -- STREAM_SELECT  |LOCAL|
                                                                                 -- NESTED_TUPLE_SOURCE  |LOCAL|
                                                                           }
                                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- STABLE_SORT [$$169(ASC)]  |PARTITIONED|
-                                                                        -- HASH_PARTITION_EXCHANGE [$$169]  |PARTITIONED|
+                                                                      -- STABLE_SORT [$$168(ASC)]  |PARTITIONED|
+                                                                        -- HASH_PARTITION_EXCHANGE [$$168]  |PARTITIONED|
                                                                           -- STREAM_PROJECT  |PARTITIONED|
                                                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- HYBRID_HASH_JOIN [$$134][$$137]  |PARTITIONED|
-                                                                                -- HASH_PARTITION_EXCHANGE [$$134]  |PARTITIONED|
+                                                                              -- HYBRID_HASH_JOIN [$$167][$$137]  |PARTITIONED|
+                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                   -- ASSIGN  |PARTITIONED|
                                                                                     -- STREAM_PROJECT  |PARTITIONED|
                                                                                       -- UNNEST  |PARTITIONED|
-                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- PRE_CLUSTERED_GROUP_BY[$$166]  |PARTITIONED|
-                                                                                                    {
-                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                        -- STREAM_SELECT  |LOCAL|
-                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                    }
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- STABLE_SORT [$$166(ASC)]  |PARTITIONED|
-                                                                                                  -- HASH_PARTITION_EXCHANGE [$$166]  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- HYBRID_HASH_JOIN [$$146][$$145]  |PARTITIONED|
-                                                                                                          -- HASH_PARTITION_EXCHANGE [$$146]  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- ASSIGN  |UNPARTITIONED|
-                                                                                                                        -- EMPTY_TUPLE_SOURCE  |UNPARTITIONED|
-                                                                                                          -- HASH_PARTITION_EXCHANGE [$$145]  |PARTITIONED|
+                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                          -- PRE_CLUSTERED_GROUP_BY[$$134]  |PARTITIONED|
+                                                                                                  {
+                                                                                                    -- AGGREGATE  |LOCAL|
+                                                                                                      -- STREAM_SELECT  |LOCAL|
+                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                                                                  }
+                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                              -- STABLE_SORT [$$134(ASC)]  |PARTITIONED|
+                                                                                                -- HASH_PARTITION_EXCHANGE [$$134]  |PARTITIONED|
+                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                      -- HYBRID_HASH_JOIN [$$146][$$145]  |PARTITIONED|
+                                                                                                        -- HASH_PARTITION_EXCHANGE [$$146]  |PARTITIONED|
+                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
                                                                                                             -- ASSIGN  |PARTITIONED|
-                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                  -- HYBRID_HASH_JOIN [$$135][$$163]  |PARTITIONED|
-                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                        -- STREAM_SELECT  |PARTITIONED|
-                                                                                                                          -- ASSIGN  |PARTITIONED|
+                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                                                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                                                                                    -- ASSIGN  |UNPARTITIONED|
+                                                                                                                      -- EMPTY_TUPLE_SOURCE  |UNPARTITIONED|
+                                                                                                        -- HASH_PARTITION_EXCHANGE [$$145]  |PARTITIONED|
+                                                                                                          -- ASSIGN  |PARTITIONED|
+                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                -- HYBRID_HASH_JOIN [$$135][$$163]  |PARTITIONED|
+                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                                      -- STREAM_SELECT  |PARTITIONED|
+                                                                                                                        -- ASSIGN  |PARTITIONED|
+                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                            -- BTREE_SEARCH  |PARTITIONED|
+                                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                                -- STABLE_SORT [$$173(ASC)]  |PARTITIONED|
+                                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                                        -- BTREE_SEARCH  |PARTITIONED|
+                                                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                                            -- ASSIGN  |PARTITIONED|
+                                                                                                                                              -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                                                                                  -- HASH_PARTITION_EXCHANGE [$$163]  |PARTITIONED|
+                                                                                                                    -- NESTED_LOOP  |PARTITIONED|
+                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                                          -- STREAM_SELECT  |PARTITIONED|
                                                                                                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                                                               -- BTREE_SEARCH  |PARTITIONED|
                                                                                                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- STABLE_SORT [$$174(ASC)]  |PARTITIONED|
+                                                                                                                                  -- STABLE_SORT [$$177(ASC)]  |PARTITIONED|
                                                                                                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                                                                       -- STREAM_PROJECT  |PARTITIONED|
                                                                                                                                         -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -93,15 +108,14 @@
                                                                                                                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                                                                               -- ASSIGN  |PARTITIONED|
                                                                                                                                                 -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                    -- HASH_PARTITION_EXCHANGE [$$163]  |PARTITIONED|
-                                                                                                                      -- NESTED_LOOP  |PARTITIONED|
-                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                            -- STREAM_SELECT  |PARTITIONED|
+                                                                                                                      -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                                                                                        -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                                          -- STREAM_SELECT  |PARTITIONED|
+                                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
                                                                                                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                                                                 -- BTREE_SEARCH  |PARTITIONED|
                                                                                                                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                    -- STABLE_SORT [$$178(ASC)]  |PARTITIONED|
+                                                                                                                                    -- STABLE_SORT [$$180(ASC)]  |PARTITIONED|
                                                                                                                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                                                                         -- STREAM_PROJECT  |PARTITIONED|
                                                                                                                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
@@ -109,21 +123,6 @@
                                                                                                                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                                                                                 -- ASSIGN  |PARTITIONED|
                                                                                                                                                   -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
-                                                                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                            -- STREAM_SELECT  |PARTITIONED|
-                                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                  -- BTREE_SEARCH  |PARTITIONED|
-                                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                      -- STABLE_SORT [$$181(ASC)]  |PARTITIONED|
-                                                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                              -- BTREE_SEARCH  |PARTITIONED|
-                                                                                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                                                  -- ASSIGN  |PARTITIONED|
-                                                                                                                                                    -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                                                                                 -- HASH_PARTITION_EXCHANGE [$$137]  |PARTITIONED|
                                                                                   -- ASSIGN  |PARTITIONED|
                                                                                     -- STREAM_PROJECT  |PARTITIONED|
@@ -142,4 +141,4 @@
                                                                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                                   -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/bf1da24d/asterix-bad/src/test/resources/optimizerts/results/channel/channel-create.plan
----------------------------------------------------------------------
diff --git a/asterix-bad/src/test/resources/optimizerts/results/channel/channel-create.plan b/asterix-bad/src/test/resources/optimizerts/results/channel/channel-create.plan
index 98f19ee..61c8c64 100644
--- a/asterix-bad/src/test/resources/optimizerts/results/channel/channel-create.plan
+++ b/asterix-bad/src/test/resources/optimizerts/results/channel/channel-create.plan
@@ -35,52 +35,51 @@
                                                             -- ASSIGN  |PARTITIONED|
                                                               -- STREAM_PROJECT  |PARTITIONED|
                                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- PRE_CLUSTERED_GROUP_BY[$$122]  |PARTITIONED|
+                                                                  -- PRE_CLUSTERED_GROUP_BY[$$121]  |PARTITIONED|
                                                                           {
                                                                             -- AGGREGATE  |LOCAL|
                                                                               -- STREAM_SELECT  |LOCAL|
                                                                                 -- NESTED_TUPLE_SOURCE  |LOCAL|
                                                                           }
                                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- STABLE_SORT [$$122(ASC)]  |PARTITIONED|
-                                                                        -- HASH_PARTITION_EXCHANGE [$$122]  |PARTITIONED|
+                                                                      -- STABLE_SORT [$$121(ASC)]  |PARTITIONED|
+                                                                        -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
                                                                           -- STREAM_PROJECT  |PARTITIONED|
                                                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- HYBRID_HASH_JOIN [$$97][$$99]  |PARTITIONED|
-                                                                                -- HASH_PARTITION_EXCHANGE [$$97]  |PARTITIONED|
+                                                                              -- HYBRID_HASH_JOIN [$$120][$$99]  |PARTITIONED|
+                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                   -- ASSIGN  |PARTITIONED|
                                                                                     -- STREAM_PROJECT  |PARTITIONED|
                                                                                       -- UNNEST  |PARTITIONED|
-                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- PRE_CLUSTERED_GROUP_BY[$$119]  |PARTITIONED|
-                                                                                                    {
-                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                        -- STREAM_SELECT  |LOCAL|
-                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                    }
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- STABLE_SORT [$$119(ASC)]  |PARTITIONED|
-                                                                                                  -- HASH_PARTITION_EXCHANGE [$$119]  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- NESTED_LOOP  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ASSIGN  |PARTITIONED|
+                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                          -- PRE_CLUSTERED_GROUP_BY[$$97]  |PARTITIONED|
+                                                                                                  {
+                                                                                                    -- AGGREGATE  |LOCAL|
+                                                                                                      -- STREAM_SELECT  |LOCAL|
+                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                                                                  }
+                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                              -- STABLE_SORT [$$97(ASC)]  |PARTITIONED|
+                                                                                                -- HASH_PARTITION_EXCHANGE [$$97]  |PARTITIONED|
+                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                      -- NESTED_LOOP  |PARTITIONED|
+                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                            -- ASSIGN  |PARTITIONED|
+                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                                                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                                                                                    -- ASSIGN  |UNPARTITIONED|
+                                                                                                                      -- EMPTY_TUPLE_SOURCE  |UNPARTITIONED|
+                                                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                            -- ASSIGN  |PARTITIONED|
+                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
                                                                                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                                                   -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- ASSIGN  |UNPARTITIONED|
-                                                                                                                        -- EMPTY_TUPLE_SOURCE  |UNPARTITIONED|
-                                                                                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                                                                                 -- HASH_PARTITION_EXCHANGE [$$99]  |PARTITIONED|
                                                                                   -- ASSIGN  |PARTITIONED|
                                                                                     -- STREAM_PROJECT  |PARTITIONED|
@@ -99,4 +98,4 @@
                                                                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                                   -- DATASOURCE_SCAN  |PARTITIONED|
                                                                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/bf1da24d/asterix-bad/src/test/resources/optimizerts/results/channel/channel-push.plan
----------------------------------------------------------------------
diff --git a/asterix-bad/src/test/resources/optimizerts/results/channel/channel-push.plan b/asterix-bad/src/test/resources/optimizerts/results/channel/channel-push.plan
index 8b0e599..6cd2a7c 100644
--- a/asterix-bad/src/test/resources/optimizerts/results/channel/channel-push.plan
+++ b/asterix-bad/src/test/resources/optimizerts/results/channel/channel-push.plan
@@ -47,15 +47,15 @@
                                                       -- BROADCAST_EXCHANGE  |PARTITIONED|
                                                         -- STREAM_PROJECT  |PARTITIONED|
                                                           -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                            -- PRE_CLUSTERED_GROUP_BY[$$231]  |PARTITIONED|
+                                                            -- PRE_CLUSTERED_GROUP_BY[$$230]  |PARTITIONED|
                                                                     {
                                                                       -- AGGREGATE  |LOCAL|
                                                                         -- STREAM_SELECT  |LOCAL|
                                                                           -- NESTED_TUPLE_SOURCE  |LOCAL|
                                                                     }
                                                               -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                -- STABLE_SORT [$$231(ASC)]  |PARTITIONED|
-                                                                  -- HASH_PARTITION_EXCHANGE [$$231]  |PARTITIONED|
+                                                                -- STABLE_SORT [$$230(ASC)]  |PARTITIONED|
+                                                                  -- HASH_PARTITION_EXCHANGE [$$230]  |PARTITIONED|
                                                                     -- UNION_ALL  |PARTITIONED|
                                                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                         -- STREAM_PROJECT  |PARTITIONED|
@@ -111,4 +111,4 @@
                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                   -- DATASOURCE_SCAN  |PARTITIONED|
                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/asterixdb-bad/blob/bf1da24d/asterix-bad/src/test/resources/optimizerts/results/channel/channel-subscribe.plan
----------------------------------------------------------------------
diff --git a/asterix-bad/src/test/resources/optimizerts/results/channel/channel-subscribe.plan b/asterix-bad/src/test/resources/optimizerts/results/channel/channel-subscribe.plan
index 7446647..8011c7a 100644
--- a/asterix-bad/src/test/resources/optimizerts/results/channel/channel-subscribe.plan
+++ b/asterix-bad/src/test/resources/optimizerts/results/channel/channel-subscribe.plan
@@ -35,52 +35,51 @@
                                                             -- ASSIGN  |PARTITIONED|
                                                               -- STREAM_PROJECT  |PARTITIONED|
                                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                  -- PRE_CLUSTERED_GROUP_BY[$$122]  |PARTITIONED|
+                                                                  -- PRE_CLUSTERED_GROUP_BY[$$121]  |PARTITIONED|
                                                                           {
                                                                             -- AGGREGATE  |LOCAL|
                                                                               -- STREAM_SELECT  |LOCAL|
                                                                                 -- NESTED_TUPLE_SOURCE  |LOCAL|
                                                                           }
                                                                     -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                      -- STABLE_SORT [$$122(ASC)]  |PARTITIONED|
-                                                                        -- HASH_PARTITION_EXCHANGE [$$122]  |PARTITIONED|
+                                                                      -- STABLE_SORT [$$121(ASC)]  |PARTITIONED|
+                                                                        -- HASH_PARTITION_EXCHANGE [$$121]  |PARTITIONED|
                                                                           -- STREAM_PROJECT  |PARTITIONED|
                                                                             -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                              -- HYBRID_HASH_JOIN [$$97][$$99]  |PARTITIONED|
-                                                                                -- HASH_PARTITION_EXCHANGE [$$97]  |PARTITIONED|
+                                                                              -- HYBRID_HASH_JOIN [$$120][$$99]  |PARTITIONED|
+                                                                                -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                   -- ASSIGN  |PARTITIONED|
                                                                                     -- STREAM_PROJECT  |PARTITIONED|
                                                                                       -- UNNEST  |PARTITIONED|
-                                                                                        -- STREAM_PROJECT  |PARTITIONED|
-                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                            -- PRE_CLUSTERED_GROUP_BY[$$119]  |PARTITIONED|
-                                                                                                    {
-                                                                                                      -- AGGREGATE  |LOCAL|
-                                                                                                        -- STREAM_SELECT  |LOCAL|
-                                                                                                          -- NESTED_TUPLE_SOURCE  |LOCAL|
-                                                                                                    }
-                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                -- STABLE_SORT [$$119(ASC)]  |PARTITIONED|
-                                                                                                  -- HASH_PARTITION_EXCHANGE [$$119]  |PARTITIONED|
-                                                                                                    -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                        -- NESTED_LOOP  |PARTITIONED|
-                                                                                                          -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ASSIGN  |PARTITIONED|
+                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                          -- PRE_CLUSTERED_GROUP_BY[$$97]  |PARTITIONED|
+                                                                                                  {
+                                                                                                    -- AGGREGATE  |LOCAL|
+                                                                                                      -- STREAM_SELECT  |LOCAL|
+                                                                                                        -- NESTED_TUPLE_SOURCE  |LOCAL|
+                                                                                                  }
+                                                                                            -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                              -- STABLE_SORT [$$97(ASC)]  |PARTITIONED|
+                                                                                                -- HASH_PARTITION_EXCHANGE [$$97]  |PARTITIONED|
+                                                                                                  -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                      -- NESTED_LOOP  |PARTITIONED|
+                                                                                                        -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                            -- ASSIGN  |PARTITIONED|
+                                                                                                              -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                -- DATASOURCE_SCAN  |PARTITIONED|
+                                                                                                                  -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                                                                                    -- ASSIGN  |UNPARTITIONED|
+                                                                                                                      -- EMPTY_TUPLE_SOURCE  |UNPARTITIONED|
+                                                                                                        -- BROADCAST_EXCHANGE  |PARTITIONED|
+                                                                                                          -- STREAM_PROJECT  |PARTITIONED|
+                                                                                                            -- ASSIGN  |PARTITIONED|
+                                                                                                              -- STREAM_PROJECT  |PARTITIONED|
                                                                                                                 -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                                                                                                   -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                    -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                                      -- ASSIGN  |UNPARTITIONED|
-                                                                                                                        -- EMPTY_TUPLE_SOURCE  |UNPARTITIONED|
-                                                                                                          -- BROADCAST_EXCHANGE  |PARTITIONED|
-                                                                                                            -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                              -- ASSIGN  |PARTITIONED|
-                                                                                                                -- STREAM_PROJECT  |PARTITIONED|
-                                                                                                                  -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                    -- DATASOURCE_SCAN  |PARTITIONED|
-                                                                                                                      -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                                                                                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                                                                                                    -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
+                                                                                                                      -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
                                                                                 -- HASH_PARTITION_EXCHANGE [$$99]  |PARTITIONED|
                                                                                   -- ASSIGN  |PARTITIONED|
                                                                                     -- STREAM_PROJECT  |PARTITIONED|
@@ -190,4 +189,4 @@
                                   -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
                                     -- DATASOURCE_SCAN  |PARTITIONED|
                                       -- ONE_TO_ONE_EXCHANGE  |PARTITIONED|
-                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
+                                        -- EMPTY_TUPLE_SOURCE  |PARTITIONED|
\ No newline at end of file