Coordinated Change for CREATE OR REPLACE FUNCTION
Change-Id: I5d28fc67de8dc4016339dd75e07cb23b426dabf4
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 eb56e35..3d7d7de 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
@@ -192,16 +192,12 @@
} else if (getProcedureBodyStatement().getKind() == Statement.Kind.QUERY) {
//TODO: Fix type dependency computation
SqlppRewriterFactory fact = new SqlppRewriterFactory(new SqlppParserFactory());
- dependencies.get(1)
- .addAll(FunctionUtil.getFunctionDependencies(fact.createQueryRewriter(),
- ((Query) getProcedureBodyStatement()).getBody(), metadataProvider, new ArrayList<>())
- .get(1));
+ 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);
- dependencies.get(0)
- .addAll(FunctionUtil.getFunctionDependencies(fact.createQueryRewriter(),
- ((Query) getProcedureBodyStatement()).getBody(), metadataProvider, new ArrayList<>())
- .get(0));
+ dependencies.get(0).addAll(FunctionUtil.getFunctionDependencies(fact.createQueryRewriter(),
+ ((Query) getProcedureBodyStatement()).getBody(), metadataProvider).get(0));
return pair;
} else if (getProcedureBodyStatement().getKind() == Statement.Kind.DELETE) {
getProcedureBodyStatement().accept(SqlppDeleteRewriteVisitor.INSTANCE, metadataProvider);
@@ -209,7 +205,7 @@
SqlppRewriterFactory fact = new SqlppRewriterFactory(new SqlppParserFactory());
dependencies = FunctionUtil.getFunctionDependencies(fact.createQueryRewriter(), delete.getQuery().getBody(),
- metadataProvider, new ArrayList<>());
+ metadataProvider);
Pair<JobSpecification, PrecompiledType> pair =
new Pair<>(((QueryTranslator) statementExecutor).handleDeleteStatement(metadataProvider,
getProcedureBodyStatement(), hcc, true, null, null), PrecompiledType.DELETE);
diff --git a/asterix-bad/src/main/java/org/apache/asterix/bad/rules/RewriteChannelTimeFunctionToLocalVarRule.java b/asterix-bad/src/main/java/org/apache/asterix/bad/rules/RewriteChannelTimeFunctionToLocalVarRule.java
index ec922e7..56f5e39 100644
--- a/asterix-bad/src/main/java/org/apache/asterix/bad/rules/RewriteChannelTimeFunctionToLocalVarRule.java
+++ b/asterix-bad/src/main/java/org/apache/asterix/bad/rules/RewriteChannelTimeFunctionToLocalVarRule.java
@@ -138,7 +138,7 @@
if (needPrevDsSet.contains(dsVar) || needActiveDsSet.contains(dsVar)) {
LogicalVariable channelTimeVar = context.newVar();
ILogicalExpression previousChannelTimeExpr = new ScalarFunctionCallExpression(
- BuiltinFunctions.getAsterixFunctionInfo(BADFunctions.PREVIOUS_CHANNEL_TIME),
+ BuiltinFunctions.getBuiltinFunctionInfo(BADFunctions.PREVIOUS_CHANNEL_TIME),
new MutableObject<>(
new ConstantExpression(new AsterixConstantValue(new AString(channelName)))));
AssignOperator assignOp =
@@ -151,7 +151,7 @@
if (needCurrDsSet.contains(dsVar) || needActiveDsSet.contains(dsVar)) {
LogicalVariable channelTimeVar = context.newVar();
ILogicalExpression previousChannelTimeExpr = new ScalarFunctionCallExpression(
- BuiltinFunctions.getAsterixFunctionInfo(BADFunctions.CURRENT_CHANNEL_TIME), new MutableObject<>(
+ BuiltinFunctions.getBuiltinFunctionInfo(BADFunctions.CURRENT_CHANNEL_TIME), new MutableObject<>(
new ConstantExpression(new AsterixConstantValue(new AString(channelName)))));
AssignOperator assignOp =
new AssignOperator(channelTimeVar, new MutableObject<>(previousChannelTimeExpr));
diff --git a/asterix-bad/src/main/resources/lang-extension/lang.txt b/asterix-bad/src/main/resources/lang-extension/lang.txt
index 8b8c507..49f0cb4 100644
--- a/asterix-bad/src/main/resources/lang-extension/lang.txt
+++ b/asterix-bad/src/main/resources/lang-extension/lang.txt
@@ -255,7 +255,7 @@
removeCurrentScope();
defaultDataverse = currentDataverse;
ensureNoTypeDeclsInFunction(fctName.function, params, returnType, startStmtToken);
- CreateFunctionStatement stmt = new CreateFunctionStatement(signature, params, functionBody, functionBodyExpr, false);
+ CreateFunctionStatement stmt = new CreateFunctionStatement(signature, params, functionBody, functionBodyExpr, true, false);
ccs = new CreateContinuousChannelStatement(fctName.dataverse, new Identifier(fctName.function), period, push, stmt);
return addSourceLocation(ccs, startStmtToken);
}
diff --git a/asterix-bad/src/test/resources/runtimets/testsuite_bad.xml b/asterix-bad/src/test/resources/runtimets/testsuite_bad.xml
index 5f130e9..51f1cda 100644
--- a/asterix-bad/src/test/resources/runtimets/testsuite_bad.xml
+++ b/asterix-bad/src/test/resources/runtimets/testsuite_bad.xml
@@ -77,7 +77,7 @@
<test-case FilePath="procedure">
<compilation-unit name="delete_procedure_drop_function">
<output-dir compare="Text">delete_procedure_drop_function</output-dir>
- <expected-error>Cannot drop function two.really_contains@2. two.deleteSome(Procedure) depends on it!</expected-error>
+ <expected-error>Cannot drop function two.really_contains</expected-error>
</compilation-unit>
</test-case>
<test-case FilePath="procedure">
@@ -95,7 +95,7 @@
<test-case FilePath="procedure">
<compilation-unit name="query_procedure_drop_function">
<output-dir compare="Text">query_procedure_drop_function</output-dir>
- <expected-error>Cannot drop function channels.really_contains@2. two.selectSome(Procedure) depends on it!</expected-error>
+ <expected-error>Cannot drop function channels.really_contains</expected-error>
</compilation-unit>
</test-case>
<test-case FilePath="procedure">
@@ -133,7 +133,7 @@
<test-case FilePath="bad_rq">
<compilation-unit name="drop_function">
<output-dir compare="Text">drop_function</output-dir>
- <expected-error>Cannot drop function channels.NearbyTweetsContainingText@2. two.nearbyTweetChannel(Channel) depends on it!</expected-error>
+ <expected-error>Cannot drop function channels.NearbyTweetsContainingText</expected-error>
</compilation-unit>
</test-case>
<test-case FilePath="bad_rq">