Merged subscription model with job. Still have job issues
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 5803f60..c22a819 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
@@ -18,42 +18,30 @@
*/
package org.apache.asterix.bad.lang.statement;
-import java.util.ArrayList;
+import java.io.StringReader;
import java.util.List;
import org.apache.asterix.algebra.extension.ExtensionStatement;
import org.apache.asterix.app.translator.QueryTranslator;
import org.apache.asterix.bad.BADConstants;
import org.apache.asterix.bad.lang.BADLangExtension;
+import org.apache.asterix.bad.lang.BADParserFactory;
import org.apache.asterix.bad.metadata.Broker;
import org.apache.asterix.bad.metadata.Channel;
import org.apache.asterix.common.exceptions.AsterixException;
import org.apache.asterix.common.exceptions.CompilationException;
-import org.apache.asterix.common.functions.FunctionSignature;
import org.apache.asterix.lang.common.base.Expression;
-import org.apache.asterix.lang.common.expression.CallExpr;
-import org.apache.asterix.lang.common.expression.FieldAccessor;
-import org.apache.asterix.lang.common.expression.FieldBinding;
-import org.apache.asterix.lang.common.expression.LiteralExpr;
-import org.apache.asterix.lang.common.expression.RecordConstructor;
-import org.apache.asterix.lang.common.expression.VariableExpr;
-import org.apache.asterix.lang.common.literal.StringLiteral;
-import org.apache.asterix.lang.common.statement.InsertStatement;
-import org.apache.asterix.lang.common.statement.Query;
-import org.apache.asterix.lang.common.statement.UpsertStatement;
+import org.apache.asterix.lang.common.base.Statement;
import org.apache.asterix.lang.common.struct.Identifier;
-import org.apache.asterix.lang.common.struct.VarIdentifier;
import org.apache.asterix.lang.common.visitor.base.ILangVisitor;
import org.apache.asterix.metadata.MetadataManager;
import org.apache.asterix.metadata.MetadataTransactionContext;
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.IStatementExecutor.ResultDelivery;
import org.apache.asterix.translator.IStatementExecutor.Stats;
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;
@@ -66,11 +54,13 @@
private final Identifier brokerDataverseName;
private final Identifier brokerName;
private final List<Expression> argList;
+ private final List<String> paramList;
private final String subscriptionId;
private final int varCounter;
public ChannelSubscribeStatement(Identifier dataverseName, Identifier channelName, List<Expression> argList,
- int varCounter, Identifier brokerDataverseName, Identifier brokerName, String subscriptionId) {
+ int varCounter, Identifier brokerDataverseName, Identifier brokerName, String subscriptionId,
+ List<String> paramList) {
this.channelName = channelName;
this.dataverseName = dataverseName;
this.brokerDataverseName = brokerDataverseName;
@@ -78,6 +68,7 @@
this.argList = argList;
this.subscriptionId = subscriptionId;
this.varCounter = varCounter;
+ this.paramList = paramList;
}
public Identifier getDataverseName() {
@@ -138,83 +129,39 @@
throw new AsterixException("There is no broker with this name " + brokerName + ".");
}
- String subscriptionsDatasetName = channel.getChannelSubscriptionsDataset();
+ String channelSubscriptionsDataset =
+ channel.getChannelId().getDataverse() + "." + channel.getChannelSubscriptionsDataset();
- if (argList.size() != channel.getFunction().getArity()) {
- throw new AsterixException("Channel expected " + channel.getFunction().getArity()
- + " parameters but got " + argList.size());
- }
-
- Query subscriptionTuple = new Query(false);
-
- List<FieldBinding> fb = new ArrayList<>();
- LiteralExpr leftExpr = new LiteralExpr(new StringLiteral(BADConstants.DataverseName));
- Expression rightExpr = new LiteralExpr(new StringLiteral(brokerDataverse));
- fb.add(new FieldBinding(leftExpr, rightExpr));
-
- leftExpr = new LiteralExpr(new StringLiteral(BADConstants.BrokerName));
- rightExpr = new LiteralExpr(new StringLiteral(broker.getBrokerName()));
- fb.add(new FieldBinding(leftExpr, rightExpr));
-
- if (subscriptionId != null) {
- leftExpr = new LiteralExpr(new StringLiteral(BADConstants.ChannelSubscriptionId));
-
- List<Expression> UUIDList = new ArrayList<>();
- UUIDList.add(new LiteralExpr(new StringLiteral(subscriptionId)));
- FunctionIdentifier function = BuiltinFunctions.UUID_CONSTRUCTOR;
- FunctionSignature UUIDfunc =
- new FunctionSignature(function.getNamespace(), function.getName(), function.getArity());
- CallExpr UUIDCall = new CallExpr(UUIDfunc, UUIDList);
-
- rightExpr = UUIDCall;
- fb.add(new FieldBinding(leftExpr, rightExpr));
- }
-
- for (int i = 0; i < argList.size(); i++) {
- leftExpr = new LiteralExpr(new StringLiteral("param" + i));
- rightExpr = argList.get(i);
- fb.add(new FieldBinding(leftExpr, rightExpr));
- }
- RecordConstructor recordCon = new RecordConstructor(fb);
- subscriptionTuple.setBody(recordCon);
- subscriptionTuple.setVarCounter(varCounter);
- MetadataProvider tempMdProvider = new MetadataProvider(metadataProvider.getApplicationContext(),
- metadataProvider.getDefaultDataverse());
- tempMdProvider.getConfig().putAll(metadataProvider.getConfig());
+ String brokerSubscriptionsDataset =
+ channel.getChannelId().getDataverse() + "." + channel.getBrokerSubscriptionsDataset();
final ResultDelivery resultDelivery = requestParameters.getResultProperties().getDelivery();
final IHyracksDataset hdc = requestParameters.getHyracksDataset();
final Stats stats = requestParameters.getStats();
if (subscriptionId == null) {
- //To create a new subscription
- VariableExpr resultVar = new VariableExpr(new VarIdentifier("$result", 0));
- VariableExpr useResultVar = new VariableExpr(new VarIdentifier("$result", 0));
- useResultVar.setIsNewVar(false);
- FieldAccessor accessor =
- new FieldAccessor(useResultVar, new Identifier(BADConstants.ChannelSubscriptionId));
+ //Create a new subscription
+ if (argList.size() != channel.getFunction().getArity()) {
+ throw new AsterixException("Channel expected " + channel.getFunction().getArity()
+ + " parameters but got " + argList.size());
+ }
+ createChannelSubscription(statementExecutor, metadataProvider, hcc, hdc, stats,
+ channelSubscriptionsDataset, resultDelivery);
+
+ metadataProvider.getLocks().reset();
metadataProvider.setResultSetId(new ResultSetId(resultSetId));
boolean resultsAsync =
resultDelivery == ResultDelivery.ASYNC || resultDelivery == ResultDelivery.DEFERRED;
metadataProvider.setResultAsyncMode(resultsAsync);
- tempMdProvider.setResultSetId(metadataProvider.getResultSetId());
- tempMdProvider.setResultAsyncMode(resultsAsync);
- tempMdProvider.setWriterFactory(metadataProvider.getWriterFactory());
- tempMdProvider
- .setResultSerializerFactoryProvider(metadataProvider.getResultSerializerFactoryProvider());
- tempMdProvider.setOutputFile(metadataProvider.getOutputFile());
- tempMdProvider.setMaxResultReads(requestParameters.getResultProperties().getMaxReads());
+ metadataProvider.setMaxResultReads(requestParameters.getResultProperties().getMaxReads());
- InsertStatement insert = new InsertStatement(new Identifier(dataverse),
- new Identifier(subscriptionsDatasetName), subscriptionTuple, varCounter, resultVar, accessor);
- ((QueryTranslator) statementExecutor).handleInsertUpsertStatement(tempMdProvider, insert, hcc, hdc,
- resultDelivery, null, stats, false, null, null, null);
+ createBrokerSubscription(statementExecutor, metadataProvider, hcc, hdc, stats,
+ channelSubscriptionsDataset, brokerSubscriptionsDataset, broker, resultDelivery);
+
} else {
- //To update an existing subscription
- UpsertStatement upsert = new UpsertStatement(new Identifier(dataverse),
- new Identifier(subscriptionsDatasetName), subscriptionTuple, varCounter, null, null);
- ((QueryTranslator) statementExecutor).handleInsertUpsertStatement(tempMdProvider, upsert, hcc, hdc,
- resultDelivery, null, stats, false, null, null, null);
+ //move subscription
+ moveBrokerSubscription(statementExecutor, metadataProvider, hcc, hdc, stats, brokerSubscriptionsDataset,
+ broker, resultDelivery, subscriptionId);
}
MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
@@ -227,4 +174,89 @@
}
+ private void createChannelSubscription(IStatementExecutor statementExecutor, MetadataProvider metadataProvider,
+ IHyracksClientConnection hcc, IHyracksDataset hdc, Stats stats, String channelSubscriptionsDataset,
+ ResultDelivery resultDelivery) throws Exception {
+ //TODO: Might be better to create the entire expression manually rather than parsing a string
+ StringBuilder builder = new StringBuilder();
+ builder.append("upsert into " + channelSubscriptionsDataset + "(\n");
+ builder.append("(let v = (select value s from " + channelSubscriptionsDataset + " s where ");
+ for (int i = 0; i < paramList.size(); i++) {
+ builder.append("param" + i + " = " + paramList.get(i));
+ if (i < paramList.size() - 1) {
+ builder.append(" and ");
+ }
+ }
+ builder.append(")\n");
+ builder.append("select value (CASE (array_count(v) > 0)\n");
+ builder.append("WHEN true THEN {\"" + BADConstants.ChannelSubscriptionId + "\":v[0]."
+ + BADConstants.ChannelSubscriptionId + ", ");
+ for (int i = 0; i < paramList.size(); i++) {
+ builder.append("\"param" + i + "\": " + paramList.get(i));
+ if (i < paramList.size() - 1) {
+ builder.append(", ");
+ }
+ }
+ builder.append("}\n");
+ builder.append("ELSE {\"" + BADConstants.ChannelSubscriptionId + "\":create_uuid(), ");
+ for (int i = 0; i < paramList.size(); i++) {
+ builder.append("\"param" + i + "\": " + paramList.get(i));
+ if (i < paramList.size() - 1) {
+ builder.append(", ");
+ }
+ }
+ builder.append("}\n");
+ builder.append("END))\n");
+ builder.append(");");
+ BADParserFactory factory = new BADParserFactory();
+ List<Statement> fStatements = factory.createParser(new StringReader(builder.toString())).parse();
+ ((QueryTranslator) statementExecutor).handleInsertUpsertStatement(metadataProvider, fStatements.get(0), hcc,
+ hdc, resultDelivery, null, stats, false, null, null, null);
+ }
+
+ private void createBrokerSubscription(IStatementExecutor statementExecutor, MetadataProvider metadataProvider,
+ IHyracksClientConnection hcc, IHyracksDataset hdc, Stats stats, String channelSubscriptionsDataset,
+ String brokerSubscriptionDataset, Broker broker, ResultDelivery resultDelivery) throws Exception {
+ //TODO: Might be better to create the entire expression manually rather than parsing a string
+ StringBuilder builder = new StringBuilder();
+ builder.append("insert into " + brokerSubscriptionDataset + " as r (\n");
+ builder.append("(select value {\"" + BADConstants.ChannelSubscriptionId + "\":s."
+ + BADConstants.ChannelSubscriptionId + ",\"" + BADConstants.BrokerSubscriptionId
+ + "\":create_uuid(), \"" + BADConstants.DataverseName + "\":\"" + broker.getDataverseName() + "\", \""
+ + BADConstants.BrokerName + "\":\"" + broker.getBrokerName() + "\"}\n");
+ builder.append("from " + channelSubscriptionsDataset + " s where ");
+ for (int i = 0; i < paramList.size(); i++) {
+ builder.append("param" + i + " = " + paramList.get(i));
+ if (i < paramList.size() - 1) {
+ builder.append(" and ");
+ }
+ }
+ builder.append(" limit 1)\n");
+ builder.append(") returning r." + BADConstants.BrokerSubscriptionId + ";");
+ BADParserFactory factory = new BADParserFactory();
+ List<Statement> fStatements = factory.createParser(new StringReader(builder.toString())).parse();
+ ((QueryTranslator) statementExecutor).handleInsertUpsertStatement(metadataProvider, fStatements.get(0), hcc,
+ hdc, resultDelivery, null, stats, false, null, null, null);
+ }
+
+ private void moveBrokerSubscription(IStatementExecutor statementExecutor, MetadataProvider metadataProvider,
+ IHyracksClientConnection hcc, IHyracksDataset hdc, Stats stats, String brokerSubscriptionDataset,
+ Broker broker, ResultDelivery resultDelivery, String subscriptionString) throws Exception {
+ //TODO: Might be better to create the entire expression manually rather than parsing a string
+ StringBuilder builder = new StringBuilder();
+ builder.append("upsert into " + brokerSubscriptionDataset + "(\n");
+ builder.append(
+ "(select value {\"" + BADConstants.ChannelSubscriptionId + "\":s." + BADConstants.ChannelSubscriptionId
+ + ",\"" + BADConstants.BrokerSubscriptionId + "\":s." + BADConstants.BrokerSubscriptionId
+ + ",\"" + BADConstants.DataverseName + "\":\"" + broker.getDataverseName() + "\", \""
+ + BADConstants.BrokerName + "\":\"" + broker.getBrokerName() + "\"}\n");
+ builder.append("from " + brokerSubscriptionDataset + " s where ");
+ builder.append("s." + BADConstants.BrokerSubscriptionId + " = uuid(\"" + subscriptionString + "\"))\n");
+ builder.append(");");
+ BADParserFactory factory = new BADParserFactory();
+ List<Statement> fStatements = factory.createParser(new StringReader(builder.toString())).parse();
+ ((QueryTranslator) statementExecutor).handleInsertUpsertStatement(metadataProvider, fStatements.get(0), hcc,
+ hdc, resultDelivery, null, stats, false, null, null, null);
+ }
+
}
\ No newline at end of file
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 e6ba69c..86041b7 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
@@ -113,11 +113,11 @@
throw new AsterixException("There is no channel with this name " + channelName + ".");
}
- String subscriptionsDatasetName = channel.getChannelSubscriptionsDataset();
+ String subscriptionsDatasetName = channel.getBrokerSubscriptionsDataset();
//Need a condition to say subscription-id = sid
OperatorExpr condition = new OperatorExpr();
- FieldAccessor fa = new FieldAccessor(vars, new Identifier(BADConstants.ChannelSubscriptionId));
+ FieldAccessor fa = new FieldAccessor(vars, new Identifier(BADConstants.BrokerSubscriptionId));
condition.addOperand(fa);
condition.setCurrentop(true);
condition.addOperator("=");
diff --git a/asterix-bad/src/main/java/org/apache/asterix/bad/metadata/Channel.java b/asterix-bad/src/main/java/org/apache/asterix/bad/metadata/Channel.java
index 61df9af..cc0d81e 100644
--- a/asterix-bad/src/main/java/org/apache/asterix/bad/metadata/Channel.java
+++ b/asterix-bad/src/main/java/org/apache/asterix/bad/metadata/Channel.java
@@ -70,9 +70,11 @@
this.dependencies.add(new ArrayList<>());
this.dependencies.add(new ArrayList<>());
List<String> resultsList = Arrays.asList(dataverseName, resultsDatasetName);
- List<String> subscriptionList = Arrays.asList(dataverseName, channelSubscriptionsDatasetName);
+ List<String> channelSubscriptionList = Arrays.asList(dataverseName, channelSubscriptionsDatasetName);
+ List<String> brokerSubscriptionList = Arrays.asList(dataverseName, brokerSubscriptionsDatasetName);
this.dependencies.get(0).add(resultsList);
- this.dependencies.get(0).add(subscriptionList);
+ this.dependencies.get(0).add(channelSubscriptionList);
+ this.dependencies.get(0).add(brokerSubscriptionList);
this.dependencies.get(1).add(functionAsPath);
} else {
this.dependencies = dependencies;
diff --git a/asterix-bad/src/main/resources/lang-extension/lang.txt b/asterix-bad/src/main/resources/lang-extension/lang.txt
index 7456cef..9e6491e 100644
--- a/asterix-bad/src/main/resources/lang-extension/lang.txt
+++ b/asterix-bad/src/main/resources/lang-extension/lang.txt
@@ -226,21 +226,40 @@
String id = null;
String subscriptionId = null;
Pair<Identifier,Identifier> brokerName = null;
+ Token beginPos;
+ Token endPos;
+ String paramString;
+ List<String> paramList = new ArrayList<String>();
}
{
(
"subscribe" <TO> nameComponents = QualifiedName()
- <LEFTPAREN> (tmp = Expression()
+ <LEFTPAREN>
+ (
{
- argList.add(tmp);
+ beginPos = token;
}
- (<COMMA> tmp = Expression()
+ tmp = Expression()
{
argList.add(tmp);
+ endPos = token;
+ paramString = extractFragment(beginPos.endLine, beginPos.endColumn, endPos.endLine, endPos.endColumn+1);
+ paramList.add(paramString);
+ }
+ (<COMMA>
+ {
+ beginPos = token;
+ }
+ tmp = Expression()
+ {
+ argList.add(tmp);
+ endPos = token;
+ paramString = extractFragment(beginPos.endLine, beginPos.endColumn, endPos.endLine, endPos.endColumn+1);
+ paramList.add(paramString);
}
)*)? <RIGHTPAREN> <ON> brokerName = QualifiedName()
{
- stmt = new ChannelSubscribeStatement(nameComponents.first, nameComponents.second, argList, getVarCounter(), brokerName.first, brokerName.second, subscriptionId);
+ stmt = new ChannelSubscribeStatement(nameComponents.first, nameComponents.second, argList, getVarCounter(), brokerName.first, brokerName.second, subscriptionId, paramList);
}
| "unsubscribe" id = StringLiteral() <FROM> nameComponents = QualifiedName()
{
@@ -251,19 +270,9 @@
getCurrentScope().addNewVarSymbolToScope(varExp.getVar());
stmt = new ChannelUnsubscribeStatement(varExp, nameComponents.first, nameComponents.second, id, getVarCounter());
}
- | "change" "subscription" subscriptionId = StringLiteral() <ON> nameComponents = QualifiedName()
- <LEFTPAREN> (tmp = Expression()
- {
- argList.add(tmp);
- }
- (<COMMA> tmp = Expression()
- {
- argList.add(tmp);
- }
- )*)? <RIGHTPAREN>
- <TO> brokerName = QualifiedName()
+ | "move" "subscription" subscriptionId = StringLiteral() <ON> nameComponents = QualifiedName() <TO> brokerName = QualifiedName()
{
- stmt = new ChannelSubscribeStatement(nameComponents.first, nameComponents.second, argList, getVarCounter(), brokerName.first, brokerName.second, subscriptionId);
+ stmt = new ChannelSubscribeStatement(nameComponents.first, nameComponents.second, argList, getVarCounter(), brokerName.first, brokerName.second, subscriptionId, paramList);
}
)
{
diff --git a/asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.2.update.sqlpp b/asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.2.update.sqlpp
index 0a38e41..8d43491 100644
--- a/asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.2.update.sqlpp
+++ b/asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.2.update.sqlpp
@@ -25,110 +25,106 @@
use channels;
-insert into EmergencyChannelSubscriptions(
-[
-{"param0" : "w2294u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4321u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t3398u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "w2488u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t3666u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4489u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p78u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p544u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p711u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t2828u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4796u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4082u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4923u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "w2324u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "c1339u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p520u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "c1092u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4979u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "c1487u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4330u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t3682u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p117u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "w1741u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "w2434u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t3833u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "c1373u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p89u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4003u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "c910u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4961u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4475u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "w1960u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p438u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "c1362u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p588u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "c902u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4684u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "c1609u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "c1510u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t3851u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "c1418u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t2559u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "w1815u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4924u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t3320u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p663u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4571u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p781u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "c919u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "c1121u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p814u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4006u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t2822u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4953u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t3486u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t3107u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t2836u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "w2003u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t3256u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4762u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4900u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p357u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t3630u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t3166u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4687u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p817u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4433u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t3426u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p582u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t3388u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4823u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "c1664u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4051u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "c857u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "c1412u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t2521u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t3114u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p404u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p111u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t3006u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t2903u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t2823u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4153u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t2589u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "c1459u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p766u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p593u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p168u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4253u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4177u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p387u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t2571u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "c1513u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p618u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t2735u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t4859u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "w1848u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t3306u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "t2558u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" },
-{"param0" : "p180u1" , "DataverseName" : "channels" , "BrokerName" : "brokerA" }
-]
-);
+subscribe to EmergencyChannel("w2294u1") on brokerA;
+subscribe to EmergencyChannel("t4321u1") on brokerA;
+subscribe to EmergencyChannel("t3398u1") on brokerA;
+subscribe to EmergencyChannel("w2488u1") on brokerA;
+subscribe to EmergencyChannel("t3666u1") on brokerA;
+subscribe to EmergencyChannel("t4489u1") on brokerA;
+subscribe to EmergencyChannel("p78u1") on brokerA;
+subscribe to EmergencyChannel("p544u1") on brokerA;
+subscribe to EmergencyChannel("p711u1") on brokerA;
+subscribe to EmergencyChannel("t2828u1") on brokerA;
+subscribe to EmergencyChannel("t4796u1") on brokerA;
+subscribe to EmergencyChannel("t4082u1") on brokerA;
+subscribe to EmergencyChannel("t4923u1") on brokerA;
+subscribe to EmergencyChannel("w2324u1") on brokerA;
+subscribe to EmergencyChannel("c1339u1") on brokerA;
+subscribe to EmergencyChannel("p520u1") on brokerA;
+subscribe to EmergencyChannel("c1092u1") on brokerA;
+subscribe to EmergencyChannel("t4979u1") on brokerA;
+subscribe to EmergencyChannel("c1487u1") on brokerA;
+subscribe to EmergencyChannel("t4330u1") on brokerA;
+subscribe to EmergencyChannel("t3682u1") on brokerA;
+subscribe to EmergencyChannel("p117u1") on brokerA;
+subscribe to EmergencyChannel("w1741u1") on brokerA;
+subscribe to EmergencyChannel("w2434u1") on brokerA;
+subscribe to EmergencyChannel("t3833u1") on brokerA;
+subscribe to EmergencyChannel("c1373u1") on brokerA;
+subscribe to EmergencyChannel("p89u1") on brokerA;
+subscribe to EmergencyChannel("t4003u1") on brokerA;
+subscribe to EmergencyChannel("c910u1") on brokerA;
+subscribe to EmergencyChannel("t4961u1") on brokerA;
+subscribe to EmergencyChannel("t4475u1") on brokerA;
+subscribe to EmergencyChannel("w1960u1") on brokerA;
+subscribe to EmergencyChannel("p438u1") on brokerA;
+subscribe to EmergencyChannel("c1362u1") on brokerA;
+subscribe to EmergencyChannel("p588u1") on brokerA;
+subscribe to EmergencyChannel("c902u1") on brokerA;
+subscribe to EmergencyChannel("t4684u1") on brokerA;
+subscribe to EmergencyChannel("c1609u1") on brokerA;
+subscribe to EmergencyChannel("c1510u1") on brokerA;
+subscribe to EmergencyChannel("t3851u1") on brokerA;
+subscribe to EmergencyChannel("c1418u1") on brokerA;
+subscribe to EmergencyChannel("t2559u1") on brokerA;
+subscribe to EmergencyChannel("w1815u1") on brokerA;
+subscribe to EmergencyChannel("t4924u1") on brokerA;
+subscribe to EmergencyChannel("t3320u1") on brokerA;
+subscribe to EmergencyChannel("p663u1") on brokerA;
+subscribe to EmergencyChannel("t4571u1") on brokerA;
+subscribe to EmergencyChannel("p781u1") on brokerA;
+subscribe to EmergencyChannel("c919u1") on brokerA;
+subscribe to EmergencyChannel("c1121u1") on brokerA;
+subscribe to EmergencyChannel("p814u1") on brokerA;
+subscribe to EmergencyChannel("t4006u1") on brokerA;
+subscribe to EmergencyChannel("t2822u1") on brokerA;
+subscribe to EmergencyChannel("t4953u1") on brokerA;
+subscribe to EmergencyChannel("t3486u1") on brokerA;
+subscribe to EmergencyChannel("t3107u1") on brokerA;
+subscribe to EmergencyChannel("t2836u1") on brokerA;
+subscribe to EmergencyChannel("w2003u1") on brokerA;
+subscribe to EmergencyChannel("t3256u1") on brokerA;
+subscribe to EmergencyChannel("t4762u1") on brokerA;
+subscribe to EmergencyChannel("t4900u1") on brokerA;
+subscribe to EmergencyChannel("p357u1") on brokerA;
+subscribe to EmergencyChannel("t3630u1") on brokerA;
+subscribe to EmergencyChannel("t3166u1") on brokerA;
+subscribe to EmergencyChannel("t4687u1") on brokerA;
+subscribe to EmergencyChannel("p817u1") on brokerA;
+subscribe to EmergencyChannel("t4433u1") on brokerA;
+subscribe to EmergencyChannel("t3426u1") on brokerA;
+subscribe to EmergencyChannel("p582u1") on brokerA;
+subscribe to EmergencyChannel("t3388u1") on brokerA;
+subscribe to EmergencyChannel("t4823u1") on brokerA;
+subscribe to EmergencyChannel("c1664u1") on brokerA;
+subscribe to EmergencyChannel("t4051u1") on brokerA;
+subscribe to EmergencyChannel("c857u1") on brokerA;
+subscribe to EmergencyChannel("c1412u1") on brokerA;
+subscribe to EmergencyChannel("t2521u1") on brokerA;
+subscribe to EmergencyChannel("t3114u1") on brokerA;
+subscribe to EmergencyChannel("p404u1") on brokerA;
+subscribe to EmergencyChannel("p111u1") on brokerA;
+subscribe to EmergencyChannel("t3006u1") on brokerA;
+subscribe to EmergencyChannel("t2903u1") on brokerA;
+subscribe to EmergencyChannel("t2823u1") on brokerA;
+subscribe to EmergencyChannel("t4153u1") on brokerA;
+subscribe to EmergencyChannel("t2589u1") on brokerA;
+subscribe to EmergencyChannel("c1459u1") on brokerA;
+subscribe to EmergencyChannel("p766u1") on brokerA;
+subscribe to EmergencyChannel("p593u1") on brokerA;
+subscribe to EmergencyChannel("p168u1") on brokerA;
+subscribe to EmergencyChannel("t4253u1") on brokerA;
+subscribe to EmergencyChannel("t4177u1") on brokerA;
+subscribe to EmergencyChannel("p387u1") on brokerA;
+subscribe to EmergencyChannel("t2571u1") on brokerA;
+subscribe to EmergencyChannel("c1513u1") on brokerA;
+subscribe to EmergencyChannel("p618u1") on brokerA;
+subscribe to EmergencyChannel("t2735u1") on brokerA;
+subscribe to EmergencyChannel("t4859u1") on brokerA;
+subscribe to EmergencyChannel("w1848u1") on brokerA;
+subscribe to EmergencyChannel("t3306u1") on brokerA;
+subscribe to EmergencyChannel("t2558u1") on brokerA;
+subscribe to EmergencyChannel("p180u1") on brokerA;
insert into Shelters (
[
diff --git a/asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.5.query.sqlpp b/asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.5.pollquery.sqlpp
similarity index 97%
rename from asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.5.query.sqlpp
rename to asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.5.pollquery.sqlpp
index dd6e1ca..0cc76dc 100644
--- a/asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.5.query.sqlpp
+++ b/asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.5.pollquery.sqlpp
@@ -22,6 +22,7 @@
* Date : Apr 2018
* Author : Steven Jacobs
*/
+// polltimeoutsecs=15
use channels;
diff --git a/asterix-bad/src/test/resources/runtimets/queries/channel/create_channel_check_datasets/create_channel_check_datasets.3.query.sqlpp b/asterix-bad/src/test/resources/runtimets/queries/channel/create_channel_check_datasets/create_channel_check_datasets.3.query.sqlpp
index c9ac4c8..f93a5cf 100644
--- a/asterix-bad/src/test/resources/runtimets/queries/channel/create_channel_check_datasets/create_channel_check_datasets.3.query.sqlpp
+++ b/asterix-bad/src/test/resources/runtimets/queries/channel/create_channel_check_datasets/create_channel_check_datasets.3.query.sqlpp
@@ -21,6 +21,7 @@
select value x
from Metadata.`Channel` result, Metadata.`Dataset` x
where result.ChannelName = "nearbyTweetChannel"
-and (x.DatasetName = result.SubscriptionsDatasetName
+and (x.DatasetName = result.ChannelSubscriptionsDatasetName
+or x.DatasetName = result.BrokerSubscriptionsDatasetName
or x.DatasetName = result.ResultsDatasetName)
order by x.DatasetName;
diff --git a/asterix-bad/src/test/resources/runtimets/queries/channel/drop_channel_check_datasets/drop_channel_check_datasets.3.query.sqlpp b/asterix-bad/src/test/resources/runtimets/queries/channel/drop_channel_check_datasets/drop_channel_check_datasets.3.query.sqlpp
index 7a1c5a1..52af22d 100644
--- a/asterix-bad/src/test/resources/runtimets/queries/channel/drop_channel_check_datasets/drop_channel_check_datasets.3.query.sqlpp
+++ b/asterix-bad/src/test/resources/runtimets/queries/channel/drop_channel_check_datasets/drop_channel_check_datasets.3.query.sqlpp
@@ -20,7 +20,8 @@
select value x
from Metadata.`Channel` result, Metadata.`Dataset` x
-where x.DatasetName = result.SubscriptionsDatasetName
+where x.DatasetName = result.BrokerSubscriptionsDatasetName
+or x.DatasetName = result.ChannelSubscriptionsDatasetName
or x.DatasetName = result.ResultsDatasetName
order by x.DatasetName
;
\ No newline at end of file
diff --git a/asterix-bad/src/test/resources/runtimets/queries/channel/drop_subscriptions/drop_subscriptions.1.ddl.sqlpp b/asterix-bad/src/test/resources/runtimets/queries/channel/drop_subscriptions/drop_subscriptions.1.ddl.sqlpp
index f6dc2bf..13e644e 100644
--- a/asterix-bad/src/test/resources/runtimets/queries/channel/drop_subscriptions/drop_subscriptions.1.ddl.sqlpp
+++ b/asterix-bad/src/test/resources/runtimets/queries/channel/drop_subscriptions/drop_subscriptions.1.ddl.sqlpp
@@ -54,4 +54,4 @@
create repetitive channel nearbyTweetChannel using channels.NearbyTweetsContainingText@2 period duration("PT10M");
-drop dataset two.nearbyTweetChannelSubscriptions;
\ No newline at end of file
+drop dataset two.nearbyTweetChannelChannelSubscriptions;
\ No newline at end of file
diff --git a/asterix-bad/src/test/resources/runtimets/queries/channel/room_occupants/room_occupants.4.query.sqlpp b/asterix-bad/src/test/resources/runtimets/queries/channel/room_occupants/room_occupants.4.query.sqlpp
index 8612077..1044c26 100644
--- a/asterix-bad/src/test/resources/runtimets/queries/channel/room_occupants/room_occupants.4.query.sqlpp
+++ b/asterix-bad/src/test/resources/runtimets/queries/channel/room_occupants/room_occupants.4.query.sqlpp
@@ -25,7 +25,7 @@
use channels;
-select test.BrokerName, test.param0
-from roomRecordsSubscriptions test
-order by test.BrokerName
+select test.param0
+from roomRecordsChannelSubscriptions test
+order by test.param0
;
diff --git a/asterix-bad/src/test/resources/runtimets/queries/channel/shared_subscriptions/shared_subscriptions.1.ddl.sqlpp b/asterix-bad/src/test/resources/runtimets/queries/channel/shared_subscriptions/shared_subscriptions.1.ddl.sqlpp
new file mode 100644
index 0000000..06f1b4e
--- /dev/null
+++ b/asterix-bad/src/test/resources/runtimets/queries/channel/shared_subscriptions/shared_subscriptions.1.ddl.sqlpp
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/*
+* Description : Create matching subscriptions and check results
+* Expected Res : Success
+* Date : Jun 2018
+* Author : Steven Jacobs
+*/
+
+drop dataverse two if exists;
+drop dataverse channels if exists;
+create dataverse channels;
+use channels;
+
+create type userLocation as {
+ userId: int,
+ roomNumber: int
+};
+create type watchedUser as {
+ userId: int,
+ name: string
+};
+create type roomSecurity as {
+ roomNumber: int,
+ securityGuardName: string,
+ securityGuardNumber: string
+};
+
+create dataset watchedUsers(watchedUser)
+primary key userId;
+
+create dataset roomSecurityAssignments(roomSecurity)
+primary key roomNumber;
+
+upsert into roomSecurityAssignments([
+{"roomNumber":123, "securityGuardName":"Mike", "securityGuardNumber":"555_4815"},
+{"roomNumber":222, "securityGuardName":"Steven", "securityGuardNumber":"555_1623"},
+{"roomNumber":350, "securityGuardName":"Vassilis", "securityGuardNumber":"555_1234"}]
+);
+
+upsert into watchedUsers([
+{"userId":1, "name":"suspectNumber1"}]
+);
+
+
+create dataset UserLocations(userLocation)
+primary key userId;
+
+create function RoomOccupants(room) {
+ (select location.userId
+ from UserLocations location
+ where location.roomNumber = room)
+};
+
+create broker brokerA at "http://www.notifyA.com";
+create broker brokerB at "http://www.notifyB.com";
+
+create repetitive channel roomRecords using RoomOccupants@1 period duration("PT5S");
\ No newline at end of file
diff --git a/asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.4.sleep.sqlpp b/asterix-bad/src/test/resources/runtimets/queries/channel/shared_subscriptions/shared_subscriptions.2.update.sqlpp
similarity index 81%
copy from asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.4.sleep.sqlpp
copy to asterix-bad/src/test/resources/runtimets/queries/channel/shared_subscriptions/shared_subscriptions.2.update.sqlpp
index 5f764b3..15a2246 100644
--- a/asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.4.sleep.sqlpp
+++ b/asterix-bad/src/test/resources/runtimets/queries/channel/shared_subscriptions/shared_subscriptions.2.update.sqlpp
@@ -16,11 +16,9 @@
* specific language governing permissions and limitations
* under the License.
*/
-/*
-* Description : Check Whether a Channel works after adding a new Index
-* Expected Res : Success
-* Date : Apr 2018
-* Author : Steven Jacobs
-*/
+use channels;
-15000
\ No newline at end of file
+subscribe to roomRecords(123) on brokerA;
+subscribe to roomRecords(350) on brokerA;
+subscribe to roomRecords(123) on brokerA;
+subscribe to roomRecords(350) on brokerB;
diff --git a/asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.4.sleep.sqlpp b/asterix-bad/src/test/resources/runtimets/queries/channel/shared_subscriptions/shared_subscriptions.3.query.sqlpp
similarity index 82%
copy from asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.4.sleep.sqlpp
copy to asterix-bad/src/test/resources/runtimets/queries/channel/shared_subscriptions/shared_subscriptions.3.query.sqlpp
index 5f764b3..c3a8dee 100644
--- a/asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.4.sleep.sqlpp
+++ b/asterix-bad/src/test/resources/runtimets/queries/channel/shared_subscriptions/shared_subscriptions.3.query.sqlpp
@@ -16,11 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-/*
-* Description : Check Whether a Channel works after adding a new Index
-* Expected Res : Success
-* Date : Apr 2018
-* Author : Steven Jacobs
-*/
+use channels;
-15000
\ No newline at end of file
+select param0 from roomRecordsChannelSubscriptions
+order by param0;
\ No newline at end of file
diff --git a/asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.4.sleep.sqlpp b/asterix-bad/src/test/resources/runtimets/queries/channel/shared_subscriptions/shared_subscriptions.4.query.sqlpp
similarity index 82%
copy from asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.4.sleep.sqlpp
copy to asterix-bad/src/test/resources/runtimets/queries/channel/shared_subscriptions/shared_subscriptions.4.query.sqlpp
index 5f764b3..17c0a01 100644
--- a/asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.4.sleep.sqlpp
+++ b/asterix-bad/src/test/resources/runtimets/queries/channel/shared_subscriptions/shared_subscriptions.4.query.sqlpp
@@ -16,11 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-/*
-* Description : Check Whether a Channel works after adding a new Index
-* Expected Res : Success
-* Date : Apr 2018
-* Author : Steven Jacobs
-*/
+use channels;
-15000
\ No newline at end of file
+select DataverseName,BrokerName from roomRecordsBrokerSubscriptions
+order by BrokerName;
\ No newline at end of file
diff --git a/asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.4.sleep.sqlpp b/asterix-bad/src/test/resources/runtimets/queries/channel/shared_subscriptions/shared_subscriptions.5.update.sqlpp
similarity index 82%
copy from asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.4.sleep.sqlpp
copy to asterix-bad/src/test/resources/runtimets/queries/channel/shared_subscriptions/shared_subscriptions.5.update.sqlpp
index 5f764b3..7c14a29 100644
--- a/asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.4.sleep.sqlpp
+++ b/asterix-bad/src/test/resources/runtimets/queries/channel/shared_subscriptions/shared_subscriptions.5.update.sqlpp
@@ -16,11 +16,10 @@
* specific language governing permissions and limitations
* under the License.
*/
-/*
-* Description : Check Whether a Channel works after adding a new Index
-* Expected Res : Success
-* Date : Apr 2018
-* Author : Steven Jacobs
-*/
+use channels;
-15000
\ No newline at end of file
+upsert into UserLocations([
+{"userId":1, "roomNumber":123},
+{"userId":2, "roomNumber":222},
+{"userId":3, "roomNumber":350}]
+);
\ No newline at end of file
diff --git a/asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.4.sleep.sqlpp b/asterix-bad/src/test/resources/runtimets/queries/channel/shared_subscriptions/shared_subscriptions.6.pollquery.sqlpp
similarity index 82%
rename from asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.4.sleep.sqlpp
rename to asterix-bad/src/test/resources/runtimets/queries/channel/shared_subscriptions/shared_subscriptions.6.pollquery.sqlpp
index 5f764b3..990002a 100644
--- a/asterix-bad/src/test/resources/runtimets/queries/channel/add_index/add_index.4.sleep.sqlpp
+++ b/asterix-bad/src/test/resources/runtimets/queries/channel/shared_subscriptions/shared_subscriptions.6.pollquery.sqlpp
@@ -16,11 +16,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-/*
-* Description : Check Whether a Channel works after adding a new Index
-* Expected Res : Success
-* Date : Apr 2018
-* Author : Steven Jacobs
-*/
+ // polltimeoutsecs=15
-15000
\ No newline at end of file
+use channels;
+
+array_count((select * from roomRecordsResults));
\ No newline at end of file
diff --git a/asterix-bad/src/test/resources/runtimets/queries/channel/subscribe_channel_check_subscriptions/subscribe_channel_check_subscriptions.5.query.sqlpp b/asterix-bad/src/test/resources/runtimets/queries/channel/subscribe_channel_check_subscriptions/subscribe_channel_check_subscriptions.5.query.sqlpp
index cd0510d..5c3a4de 100644
--- a/asterix-bad/src/test/resources/runtimets/queries/channel/subscribe_channel_check_subscriptions/subscribe_channel_check_subscriptions.5.query.sqlpp
+++ b/asterix-bad/src/test/resources/runtimets/queries/channel/subscribe_channel_check_subscriptions/subscribe_channel_check_subscriptions.5.query.sqlpp
@@ -19,6 +19,6 @@
use channels;
select value param1
-from nearbyTweetChannelSubscriptions
+from nearbyTweetChannelChannelSubscriptions
order by param1
;
\ No newline at end of file
diff --git a/asterix-bad/src/test/resources/runtimets/results/channel/create_channel_check_datasets/create_channel_check_datasets.1.adm b/asterix-bad/src/test/resources/runtimets/results/channel/create_channel_check_datasets/create_channel_check_datasets.1.adm
index 776192d..59442c8 100644
--- a/asterix-bad/src/test/resources/runtimets/results/channel/create_channel_check_datasets/create_channel_check_datasets.1.adm
+++ b/asterix-bad/src/test/resources/runtimets/results/channel/create_channel_check_datasets/create_channel_check_datasets.1.adm
@@ -1,2 +1,3 @@
-{ "DataverseName": "channels", "DatasetName": "nearbyTweetChannelResults", "DatatypeDataverseName": "Metadata", "DatatypeName": "ChannelResultsType", "DatasetType": "INTERNAL", "GroupName": "channels.nearbyTweetChannelResults", "CompactionPolicy": "prefix", "CompactionPolicyProperties": [ { "Name": "max-mergable-component-size", "Value": "1073741824" }, { "Name": "max-tolerance-component-count", "Value": "5" } ], "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ [ "resultId" ] ], "PrimaryKey": [ [ "resultId" ] ], "Autogenerated": true }, "Hints": {{ }}, "Timestamp": "Mon Sep 12 13:48:16 PDT 2016", "DatasetId": 103, "PendingOp": 0 }
-{ "DataverseName": "channels", "DatasetName": "nearbyTweetChannelSubscriptions", "DatatypeDataverseName": "Metadata", "DatatypeName": "ChannelSubscriptionsType", "DatasetType": "INTERNAL", "GroupName": "channels.nearbyTweetChannelSubscriptions", "CompactionPolicy": "prefix", "CompactionPolicyProperties": [ { "Name": "max-mergable-component-size", "Value": "1073741824" }, { "Name": "max-tolerance-component-count", "Value": "5" } ], "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ [ "subscriptionId" ] ], "PrimaryKey": [ [ "subscriptionId" ] ], "Autogenerated": true }, "Hints": {{ }}, "Timestamp": "Mon Sep 12 13:48:16 PDT 2016", "DatasetId": 102, "PendingOp": 0 }
+{ "DataverseName": "channels", "DatasetName": "nearbyTweetChannelBrokerSubscriptions", "DatatypeDataverseName": "Metadata", "DatatypeName": "BrokerSubscriptionsType", "DatasetType": "INTERNAL", "GroupName": "channels.nearbyTweetChannelBrokerSubscriptions", "CompactionPolicy": "prefix", "CompactionPolicyProperties": [ { "Name": "max-mergable-component-size", "Value": "1073741824" }, { "Name": "max-tolerance-component-count", "Value": "5" } ], "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ [ "channelSubId" ], [ "brokerSubId" ] ], "PrimaryKey": [ [ "channelSubId" ], [ "brokerSubId" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Wed Jun 20 14:48:20 PDT 2018", "DatasetId": 133, "PendingOp": 0 }
+{ "DataverseName": "channels", "DatasetName": "nearbyTweetChannelChannelSubscriptions", "DatatypeDataverseName": "Metadata", "DatatypeName": "ChannelSubscriptionsType", "DatasetType": "INTERNAL", "GroupName": "channels.nearbyTweetChannelChannelSubscriptions", "CompactionPolicy": "prefix", "CompactionPolicyProperties": [ { "Name": "max-mergable-component-size", "Value": "1073741824" }, { "Name": "max-tolerance-component-count", "Value": "5" } ], "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ [ "channelSubId" ] ], "PrimaryKey": [ [ "channelSubId" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Wed Jun 20 14:48:20 PDT 2018", "DatasetId": 132, "PendingOp": 0 }
+{ "DataverseName": "channels", "DatasetName": "nearbyTweetChannelResults", "DatatypeDataverseName": "Metadata", "DatatypeName": "ChannelResultsType", "DatasetType": "INTERNAL", "GroupName": "channels.nearbyTweetChannelResults", "CompactionPolicy": "prefix", "CompactionPolicyProperties": [ { "Name": "max-mergable-component-size", "Value": "1073741824" }, { "Name": "max-tolerance-component-count", "Value": "5" } ], "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ [ "resultId" ] ], "PrimaryKey": [ [ "resultId" ] ], "Autogenerated": true }, "Hints": {{ }}, "Timestamp": "Wed Jun 20 14:48:20 PDT 2018", "DatasetId": 134, "PendingOp": 0 }
\ No newline at end of file
diff --git a/asterix-bad/src/test/resources/runtimets/results/channel/create_channel_check_metadata/create_channel_check_metadata.1.adm b/asterix-bad/src/test/resources/runtimets/results/channel/create_channel_check_metadata/create_channel_check_metadata.1.adm
index 225d83f..ff95244 100644
--- a/asterix-bad/src/test/resources/runtimets/results/channel/create_channel_check_metadata/create_channel_check_metadata.1.adm
+++ b/asterix-bad/src/test/resources/runtimets/results/channel/create_channel_check_metadata/create_channel_check_metadata.1.adm
@@ -1 +1 @@
-{ "DataverseName": "channels", "ChannelName": "nearbyTweetChannel", "SubscriptionsDatasetName": "nearbyTweetChannelSubscriptions", "ResultsDatasetName": "nearbyTweetChannelResults", "Function": [ "channels", "NearbyTweetsContainingText", "2" ], "Duration": "PT10M", "Dependencies": [ [ [ "channels", "nearbyTweetChannelResults" ], [ "channels", "nearbyTweetChannelSubscriptions" ] ], [ [ "channels", "NearbyTweetsContainingText", "2" ] ] ], "Body": "SET inline_with \"false\";\ninsert into channels.nearbyTweetChannelResults as a (\nwith channelExecutionTime as current_datetime() \nselect result, channelExecutionTime, sub.subscriptionId as subscriptionId,current_datetime() as deliveryTime\nfrom channels.nearbyTweetChannelSubscriptions sub,\nMetadata.Broker b, \nchannels.NearbyTweetsContainingText(sub.param0,sub.param1) result \nwhere b.BrokerName = sub.BrokerName\nand b.DataverseName = sub.DataverseName\n) returning a;" }
\ No newline at end of file
+{ "DataverseName": "channels", "ChannelName": "nearbyTweetChannel", "ChannelSubscriptionsDatasetName": "nearbyTweetChannelChannelSubscriptions", "ResultsDatasetName": "nearbyTweetChannelResults", "Function": [ "channels", "NearbyTweetsContainingText", "2" ], "Duration": "PT10M", "Dependencies": [ [ [ "channels", "nearbyTweetChannelResults" ], [ "channels", "nearbyTweetChannelChannelSubscriptions" ], [ "channels", "nearbyTweetChannelBrokerSubscriptions" ] ], [ [ "channels", "NearbyTweetsContainingText", "2" ] ] ], "Body": "SET inline_with \"false\";\ninsert into channels.nearbyTweetChannelResults as a (\nwith channelExecutionTime as current_datetime() \nselect result, channelExecutionTime, sub.channelSubId as channelSubId,current_datetime() as deliveryTime\nfrom channels.nearbyTweetChannelChannelSubscriptions sub,\nchannels.nearbyTweetChannelBrokerSubscriptions bs,\nMetadata.Broker b, \nchannels.NearbyTweetsContainingText(sub.param0,sub.param1) result \n) returning a;", "BrokerSubscriptionsDatasetName": "nearbyTweetChannelBrokerSubscriptions" }
\ No newline at end of file
diff --git a/asterix-bad/src/test/resources/runtimets/results/channel/drop_channel_check_datasets/drop_channel_check_datasets.1.adm b/asterix-bad/src/test/resources/runtimets/results/channel/drop_channel_check_datasets/drop_channel_check_datasets.1.adm
index 7d160fa..16063bc 100644
--- a/asterix-bad/src/test/resources/runtimets/results/channel/drop_channel_check_datasets/drop_channel_check_datasets.1.adm
+++ b/asterix-bad/src/test/resources/runtimets/results/channel/drop_channel_check_datasets/drop_channel_check_datasets.1.adm
@@ -1,4 +1,6 @@
-{ "DataverseName": "channels", "DatasetName": "nearbyTweetChannel1Results", "DatatypeDataverseName": "Metadata", "DatatypeName": "ChannelResultsType", "DatasetType": "INTERNAL", "GroupName": "channels.nearbyTweetChannel1Results", "CompactionPolicy": "prefix", "CompactionPolicyProperties": [ { "Name": "max-mergable-component-size", "Value": "1073741824" }, { "Name": "max-tolerance-component-count", "Value": "5" } ], "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ [ "resultId" ] ], "PrimaryKey": [ [ "resultId" ] ], "Autogenerated": true }, "Hints": {{ }}, "Timestamp": "Tue Sep 13 09:50:56 PDT 2016", "DatasetId": 103, "PendingOp": 0 }
-{ "DataverseName": "channels", "DatasetName": "nearbyTweetChannel1Subscriptions", "DatatypeDataverseName": "Metadata", "DatatypeName": "ChannelSubscriptionsType", "DatasetType": "INTERNAL", "GroupName": "channels.nearbyTweetChannel1Subscriptions", "CompactionPolicy": "prefix", "CompactionPolicyProperties": [ { "Name": "max-mergable-component-size", "Value": "1073741824" }, { "Name": "max-tolerance-component-count", "Value": "5" } ], "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ [ "subscriptionId" ] ], "PrimaryKey": [ [ "subscriptionId" ] ], "Autogenerated": true }, "Hints": {{ }}, "Timestamp": "Tue Sep 13 09:50:56 PDT 2016", "DatasetId": 102, "PendingOp": 0 }
-{ "DataverseName": "channels", "DatasetName": "nearbyTweetChannel3Results", "DatatypeDataverseName": "Metadata", "DatatypeName": "ChannelResultsType", "DatasetType": "INTERNAL", "GroupName": "channels.nearbyTweetChannel3Results", "CompactionPolicy": "prefix", "CompactionPolicyProperties": [ { "Name": "max-mergable-component-size", "Value": "1073741824" }, { "Name": "max-tolerance-component-count", "Value": "5" } ], "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ [ "resultId" ] ], "PrimaryKey": [ [ "resultId" ] ], "Autogenerated": true }, "Hints": {{ }}, "Timestamp": "Tue Sep 13 09:50:58 PDT 2016", "DatasetId": 107, "PendingOp": 0 }
-{ "DataverseName": "channels", "DatasetName": "nearbyTweetChannel3Subscriptions", "DatatypeDataverseName": "Metadata", "DatatypeName": "ChannelSubscriptionsType", "DatasetType": "INTERNAL", "GroupName": "channels.nearbyTweetChannel3Subscriptions", "CompactionPolicy": "prefix", "CompactionPolicyProperties": [ { "Name": "max-mergable-component-size", "Value": "1073741824" }, { "Name": "max-tolerance-component-count", "Value": "5" } ], "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ [ "subscriptionId" ] ], "PrimaryKey": [ [ "subscriptionId" ] ], "Autogenerated": true }, "Hints": {{ }}, "Timestamp": "Tue Sep 13 09:50:58 PDT 2016", "DatasetId": 106, "PendingOp": 0 }
+{ "DataverseName": "channels", "DatasetName": "nearbyTweetChannel1BrokerSubscriptions", "DatatypeDataverseName": "Metadata", "DatatypeName": "BrokerSubscriptionsType", "DatasetType": "INTERNAL", "GroupName": "channels.nearbyTweetChannel1BrokerSubscriptions", "CompactionPolicy": "prefix", "CompactionPolicyProperties": [ { "Name": "max-mergable-component-size", "Value": "1073741824" }, { "Name": "max-tolerance-component-count", "Value": "5" } ], "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ [ "channelSubId" ], [ "brokerSubId" ] ], "PrimaryKey": [ [ "channelSubId" ], [ "brokerSubId" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Wed Jun 20 14:58:14 PDT 2018", "DatasetId": 103, "PendingOp": 0 }
+{ "DataverseName": "channels", "DatasetName": "nearbyTweetChannel1ChannelSubscriptions", "DatatypeDataverseName": "Metadata", "DatatypeName": "ChannelSubscriptionsType", "DatasetType": "INTERNAL", "GroupName": "channels.nearbyTweetChannel1ChannelSubscriptions", "CompactionPolicy": "prefix", "CompactionPolicyProperties": [ { "Name": "max-mergable-component-size", "Value": "1073741824" }, { "Name": "max-tolerance-component-count", "Value": "5" } ], "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ [ "channelSubId" ] ], "PrimaryKey": [ [ "channelSubId" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Wed Jun 20 14:58:14 PDT 2018", "DatasetId": 102, "PendingOp": 0 }
+{ "DataverseName": "channels", "DatasetName": "nearbyTweetChannel1Results", "DatatypeDataverseName": "Metadata", "DatatypeName": "ChannelResultsType", "DatasetType": "INTERNAL", "GroupName": "channels.nearbyTweetChannel1Results", "CompactionPolicy": "prefix", "CompactionPolicyProperties": [ { "Name": "max-mergable-component-size", "Value": "1073741824" }, { "Name": "max-tolerance-component-count", "Value": "5" } ], "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ [ "resultId" ] ], "PrimaryKey": [ [ "resultId" ] ], "Autogenerated": true }, "Hints": {{ }}, "Timestamp": "Wed Jun 20 14:58:14 PDT 2018", "DatasetId": 104, "PendingOp": 0 }
+{ "DataverseName": "channels", "DatasetName": "nearbyTweetChannel3BrokerSubscriptions", "DatatypeDataverseName": "Metadata", "DatatypeName": "BrokerSubscriptionsType", "DatasetType": "INTERNAL", "GroupName": "channels.nearbyTweetChannel3BrokerSubscriptions", "CompactionPolicy": "prefix", "CompactionPolicyProperties": [ { "Name": "max-mergable-component-size", "Value": "1073741824" }, { "Name": "max-tolerance-component-count", "Value": "5" } ], "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ [ "channelSubId" ], [ "brokerSubId" ] ], "PrimaryKey": [ [ "channelSubId" ], [ "brokerSubId" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Wed Jun 20 14:58:16 PDT 2018", "DatasetId": 109, "PendingOp": 0 }
+{ "DataverseName": "channels", "DatasetName": "nearbyTweetChannel3ChannelSubscriptions", "DatatypeDataverseName": "Metadata", "DatatypeName": "ChannelSubscriptionsType", "DatasetType": "INTERNAL", "GroupName": "channels.nearbyTweetChannel3ChannelSubscriptions", "CompactionPolicy": "prefix", "CompactionPolicyProperties": [ { "Name": "max-mergable-component-size", "Value": "1073741824" }, { "Name": "max-tolerance-component-count", "Value": "5" } ], "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ [ "channelSubId" ] ], "PrimaryKey": [ [ "channelSubId" ] ], "Autogenerated": false }, "Hints": {{ }}, "Timestamp": "Wed Jun 20 14:58:16 PDT 2018", "DatasetId": 108, "PendingOp": 0 }
+{ "DataverseName": "channels", "DatasetName": "nearbyTweetChannel3Results", "DatatypeDataverseName": "Metadata", "DatatypeName": "ChannelResultsType", "DatasetType": "INTERNAL", "GroupName": "channels.nearbyTweetChannel3Results", "CompactionPolicy": "prefix", "CompactionPolicyProperties": [ { "Name": "max-mergable-component-size", "Value": "1073741824" }, { "Name": "max-tolerance-component-count", "Value": "5" } ], "InternalDetails": { "FileStructure": "BTREE", "PartitioningStrategy": "HASH", "PartitioningKey": [ [ "resultId" ] ], "PrimaryKey": [ [ "resultId" ] ], "Autogenerated": true }, "Hints": {{ }}, "Timestamp": "Wed Jun 20 14:58:16 PDT 2018", "DatasetId": 110, "PendingOp": 0 }
\ No newline at end of file
diff --git a/asterix-bad/src/test/resources/runtimets/results/channel/drop_channel_check_metadata/drop_channel_check_metadata.1.adm b/asterix-bad/src/test/resources/runtimets/results/channel/drop_channel_check_metadata/drop_channel_check_metadata.1.adm
index 8d8899d..839d691 100644
--- a/asterix-bad/src/test/resources/runtimets/results/channel/drop_channel_check_metadata/drop_channel_check_metadata.1.adm
+++ b/asterix-bad/src/test/resources/runtimets/results/channel/drop_channel_check_metadata/drop_channel_check_metadata.1.adm
@@ -1,2 +1,2 @@
-{ "DataverseName": "channels", "ChannelName": "nearbyTweetChannel1", "SubscriptionsDatasetName": "nearbyTweetChannel1Subscriptions", "ResultsDatasetName": "nearbyTweetChannel1Results", "Function": [ "channels", "NearbyTweetsContainingText", "2" ], "Duration": "PT10M", "Dependencies": [ [ [ "channels", "nearbyTweetChannel1Results" ], [ "channels", "nearbyTweetChannel1Subscriptions" ] ], [ [ "channels", "NearbyTweetsContainingText", "2" ] ] ], "Body": "SET inline_with \"false\";\ninsert into channels.nearbyTweetChannel1Results as a (\nwith channelExecutionTime as current_datetime() \nselect result, channelExecutionTime, sub.subscriptionId as subscriptionId,current_datetime() as deliveryTime\nfrom channels.nearbyTweetChannel1Subscriptions sub,\nMetadata.Broker b, \nchannels.NearbyTweetsContainingText(sub.param0,sub.param1) result \nwhere b.BrokerName = sub.BrokerName\nand b.DataverseName = sub.DataverseName\n) returning a;" }
-{ "DataverseName": "channels", "ChannelName": "nearbyTweetChannel3", "SubscriptionsDatasetName": "nearbyTweetChannel3Subscriptions", "ResultsDatasetName": "nearbyTweetChannel3Results", "Function": [ "channels", "NearbyTweetsContainingText", "2" ], "Duration": "PT10M", "Dependencies": [ [ [ "channels", "nearbyTweetChannel3Results" ], [ "channels", "nearbyTweetChannel3Subscriptions" ] ], [ [ "channels", "NearbyTweetsContainingText", "2" ] ] ], "Body": "SET inline_with \"false\";\ninsert into channels.nearbyTweetChannel3Results as a (\nwith channelExecutionTime as current_datetime() \nselect result, channelExecutionTime, sub.subscriptionId as subscriptionId,current_datetime() as deliveryTime\nfrom channels.nearbyTweetChannel3Subscriptions sub,\nMetadata.Broker b, \nchannels.NearbyTweetsContainingText(sub.param0,sub.param1) result \nwhere b.BrokerName = sub.BrokerName\nand b.DataverseName = sub.DataverseName\n) returning a;" }
\ No newline at end of file
+{ "DataverseName": "channels", "ChannelName": "nearbyTweetChannel1", "ChannelSubscriptionsDatasetName": "nearbyTweetChannel1ChannelSubscriptions", "ResultsDatasetName": "nearbyTweetChannel1Results", "Function": [ "channels", "NearbyTweetsContainingText", "2" ], "Duration": "PT10M", "Dependencies": [ [ [ "channels", "nearbyTweetChannel1Results" ], [ "channels", "nearbyTweetChannel1ChannelSubscriptions" ], [ "channels", "nearbyTweetChannel1BrokerSubscriptions" ] ], [ [ "channels", "NearbyTweetsContainingText", "2" ] ] ], "Body": "SET inline_with \"false\";\ninsert into channels.nearbyTweetChannel1Results as a (\nwith channelExecutionTime as current_datetime() \nselect result, channelExecutionTime, sub.channelSubId as channelSubId,current_datetime() as deliveryTime\nfrom channels.nearbyTweetChannel1ChannelSubscriptions sub,\nchannels.nearbyTweetChannel1BrokerSubscriptions bs,\nMetadata.Broker b, \nchannels.NearbyTweetsContainingText(sub.param0,sub.param1) result \n) returning a;", "BrokerSubscriptionsDatasetName": "nearbyTweetChannel1BrokerSubscriptions" }
+{ "DataverseName": "channels", "ChannelName": "nearbyTweetChannel3", "ChannelSubscriptionsDatasetName": "nearbyTweetChannel3ChannelSubscriptions", "ResultsDatasetName": "nearbyTweetChannel3Results", "Function": [ "channels", "NearbyTweetsContainingText", "2" ], "Duration": "PT10M", "Dependencies": [ [ [ "channels", "nearbyTweetChannel3Results" ], [ "channels", "nearbyTweetChannel3ChannelSubscriptions" ], [ "channels", "nearbyTweetChannel3BrokerSubscriptions" ] ], [ [ "channels", "NearbyTweetsContainingText", "2" ] ] ], "Body": "SET inline_with \"false\";\ninsert into channels.nearbyTweetChannel3Results as a (\nwith channelExecutionTime as current_datetime() \nselect result, channelExecutionTime, sub.channelSubId as channelSubId,current_datetime() as deliveryTime\nfrom channels.nearbyTweetChannel3ChannelSubscriptions sub,\nchannels.nearbyTweetChannel3BrokerSubscriptions bs,\nMetadata.Broker b, \nchannels.NearbyTweetsContainingText(sub.param0,sub.param1) result \n) returning a;", "BrokerSubscriptionsDatasetName": "nearbyTweetChannel3BrokerSubscriptions" }
\ No newline at end of file
diff --git a/asterix-bad/src/test/resources/runtimets/results/channel/room_occupants/room_occupants.1.adm b/asterix-bad/src/test/resources/runtimets/results/channel/room_occupants/room_occupants.1.adm
index ce8cc0f..426ca7d 100644
--- a/asterix-bad/src/test/resources/runtimets/results/channel/room_occupants/room_occupants.1.adm
+++ b/asterix-bad/src/test/resources/runtimets/results/channel/room_occupants/room_occupants.1.adm
@@ -1,2 +1,2 @@
-{ "BrokerName": "brokerA", "param0": 123 }
-{ "BrokerName": "brokerB", "param0": 350 }
\ No newline at end of file
+{ "param0": 123 }
+{ "param0": 350 }
\ No newline at end of file
diff --git a/asterix-bad/src/test/resources/runtimets/results/channel/shared_subscriptions/shared_subscriptions.3.adm b/asterix-bad/src/test/resources/runtimets/results/channel/shared_subscriptions/shared_subscriptions.3.adm
new file mode 100644
index 0000000..426ca7d
--- /dev/null
+++ b/asterix-bad/src/test/resources/runtimets/results/channel/shared_subscriptions/shared_subscriptions.3.adm
@@ -0,0 +1,2 @@
+{ "param0": 123 }
+{ "param0": 350 }
\ No newline at end of file
diff --git a/asterix-bad/src/test/resources/runtimets/results/channel/shared_subscriptions/shared_subscriptions.4.adm b/asterix-bad/src/test/resources/runtimets/results/channel/shared_subscriptions/shared_subscriptions.4.adm
new file mode 100644
index 0000000..2bb764e
--- /dev/null
+++ b/asterix-bad/src/test/resources/runtimets/results/channel/shared_subscriptions/shared_subscriptions.4.adm
@@ -0,0 +1,4 @@
+{ "DataverseName": "channels", "BrokerName": "brokerA" }
+{ "DataverseName": "channels", "BrokerName": "brokerA" }
+{ "DataverseName": "channels", "BrokerName": "brokerA" }
+{ "DataverseName": "channels", "BrokerName": "brokerB" }
\ No newline at end of file
diff --git a/asterix-bad/src/test/resources/runtimets/results/channel/shared_subscriptions/shared_subscriptions.6.adm b/asterix-bad/src/test/resources/runtimets/results/channel/shared_subscriptions/shared_subscriptions.6.adm
new file mode 100644
index 0000000..d8263ee
--- /dev/null
+++ b/asterix-bad/src/test/resources/runtimets/results/channel/shared_subscriptions/shared_subscriptions.6.adm
@@ -0,0 +1 @@
+2
\ No newline at end of file
diff --git a/asterix-bad/src/test/resources/runtimets/testsuite.xml b/asterix-bad/src/test/resources/runtimets/testsuite.xml
index 4640af1..7309bfb 100644
--- a/asterix-bad/src/test/resources/runtimets/testsuite.xml
+++ b/asterix-bad/src/test/resources/runtimets/testsuite.xml
@@ -154,7 +154,7 @@
<test-case FilePath="channel">
<compilation-unit name="drop_subscriptions">
<output-dir compare="Text">drop_subscriptions</output-dir>
- <expected-error>Cannot alter dataset two.nearbyTweetChannelSubscriptions. two.nearbyTweetChannel(Channel) depends on it!</expected-error>
+ <expected-error>Cannot alter dataset two.nearbyTweetChannelChannelSubscriptions. two.nearbyTweetChannel(Channel) depends on it!</expected-error>
</compilation-unit>
</test-case>
<test-case FilePath="channel">
@@ -164,6 +164,11 @@
</compilation-unit>
</test-case>
<test-case FilePath="channel">
+ <compilation-unit name="shared_subscriptions">
+ <output-dir compare="Text">shared_subscriptions</output-dir>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="channel">
<compilation-unit name="room_occupants">
<output-dir compare="Text">room_occupants</output-dir>
</compilation-unit>