Steven Jacobs has uploaded a new change for review.
https://asterix-gerrit.ics.uci.edu/2197
Change subject: [ASTERIXDB-2181][FUN] Check whether a function is usable at
creation
......................................................................
[ASTERIXDB-2181][FUN] Check whether a function is usable at creation
This change makes it so that a function is tested at creation for
1) All valid function calls
2) All valid dataset references
Change-Id: Ia83f9386e63072ed74ab85094e0bcc016cb1faec
---
M
asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
M
asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
M
asterixdb/asterix-common/src/main/java/org/apache/asterix/common/functions/FunctionConstants.java
M asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
M
asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlQueryRewriter.java
M asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj
M
asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IQueryRewriter.java
M
asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/CreateFunctionStatement.java
M
asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
M
asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/GatherFunctionCallsVisitor.java
M
asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java
M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
M
asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java
13 files changed, 120 insertions(+), 16 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/97/2197/1
diff --git
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
index 2fc3258..b397dae 100644
---
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
+++
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
@@ -85,7 +85,10 @@
import org.apache.asterix.lang.common.base.IRewriterFactory;
import org.apache.asterix.lang.common.base.IStatementRewriter;
import org.apache.asterix.lang.common.base.Statement;
+import org.apache.asterix.lang.common.clause.LetClause;
+import org.apache.asterix.lang.common.expression.CallExpr;
import org.apache.asterix.lang.common.expression.IndexedTypeExpression;
+import org.apache.asterix.lang.common.expression.LiteralExpr;
import org.apache.asterix.lang.common.statement.CompactStatement;
import org.apache.asterix.lang.common.statement.ConnectFeedStatement;
import org.apache.asterix.lang.common.statement.CreateDataverseStatement;
@@ -121,6 +124,8 @@
import org.apache.asterix.lang.common.statement.TypeDropStatement;
import org.apache.asterix.lang.common.statement.WriteStatement;
import org.apache.asterix.lang.common.struct.Identifier;
+import org.apache.asterix.lang.common.util.FunctionUtil;
+import org.apache.asterix.lang.sqlpp.expression.SelectExpression;
import org.apache.asterix.lang.sqlpp.rewrites.SqlppRewriterFactory;
import org.apache.asterix.metadata.IDatasetDetails;
import org.apache.asterix.metadata.MetadataManager;
@@ -151,6 +156,7 @@
import org.apache.asterix.metadata.utils.MetadataConstants;
import org.apache.asterix.metadata.utils.MetadataLockUtil;
import org.apache.asterix.metadata.utils.MetadataUtil;
+import org.apache.asterix.om.functions.BuiltinFunctions;
import org.apache.asterix.om.types.ARecordType;
import org.apache.asterix.om.types.ATypeTag;
import org.apache.asterix.om.types.IAType;
@@ -181,6 +187,7 @@
import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.common.utils.Pair;
import
org.apache.hyracks.algebricks.core.algebra.expressions.AbstractFunctionCallExpression.FunctionKind;
+import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
import org.apache.hyracks.algebricks.data.IAWriterFactory;
import org.apache.hyracks.algebricks.data.IResultSerializerFactoryProvider;
import
org.apache.hyracks.algebricks.runtime.serializer.ResultSerializerFactoryProvider;
@@ -1683,6 +1690,42 @@
if (dv == null) {
throw new AlgebricksException("There is no dataverse with this
name " + dataverse + ".");
}
+
+ //If the function is a select, we need to find out which datasets
+ //it tries to use by rewriting it
+ if (cfs.getFunctionBodyExpression() instanceof SelectExpression) {
+ Query s = new Query(false);
+ s.setBody(cfs.getFunctionBodyExpression());
+ List<LetClause> lets =
FunctionUtil.createLetsToTestFunction(cfs);
+ ((SelectExpression) s.getBody()).getLetList().addAll(lets);
+ Pair<IReturningStatement, Integer> rewrittenResult =
+ apiFramework.reWriteQuery(declaredFunctions,
metadataProvider, s, sessionOutput);
+ }
+
+ Set<CallExpr> functionCalls =
+
rewriterFactory.createQueryRewriter().getFunctionCalls(cfs.getFunctionBodyExpression());
+
+ //Check all function calls to make sure that they are valid
+ for (CallExpr functionCall : functionCalls) {
+ FunctionSignature signature =
functionCall.getFunctionSignature();
+ if (BuiltinFunctions.isBuiltinCompilerFunction(signature,
false)) {
+ continue;
+ }
+ FunctionIdentifier fid =
+ new FunctionIdentifier(signature.getNamespace(),
signature.getName(), signature.getArity());
+ if (fid.equals(BuiltinFunctions.DATASET)) {
+ String[] datasetPath =
+ ((LiteralExpr)
functionCall.getExprList().get(0)).getValue().getStringValue().split("\\.");
+ Dataset ds = metadataProvider.findDataset(datasetPath[0],
datasetPath[1]);
+ if (ds == null) {
+ throw
CompilationException.create(ErrorCode.NO_METADATA_FOR_DATASET, datasetPath);
+ }
+
+ } else if (MetadataManager.INSTANCE.getFunction(mdTxnCtx,
signature) == null) {
+ throw AsterixException.create(ErrorCode.UNKNOWN_FUNCTION,
signature);
+ }
+ }
+
Function function = new Function(dataverse, functionName,
cfs.getFunctionSignature().getArity(),
cfs.getParamList(), Function.RETURNTYPE_VOID,
cfs.getFunctionBody(),
rewriterFactory instanceof SqlppRewriterFactory ?
Function.LANGUAGE_SQLPP : Function.LANGUAGE_AQL,
@@ -1730,7 +1773,7 @@
try {
Function function = MetadataManager.INSTANCE.getFunction(mdTxnCtx,
signature);
if (function == null && !stmtDropFunction.getIfExists()) {
- throw new AlgebricksException("Unknonw function " + signature);
+ throw AsterixException.create(ErrorCode.UNKNOWN_FUNCTION,
signature);
} else if (checkWhetherFunctionIsBeingUsed(mdTxnCtx,
signature.getNamespace(), signature.getName(),
signature.getArity(), null)) {
throw new
MetadataException(ErrorCode.METADATA_DROP_FUCTION_IN_USE, signature);
diff --git
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
index a4cf64a..eacf91b 100644
---
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
+++
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java
@@ -133,6 +133,7 @@
public static final int COMPILATION_FAILED_DUE_TO_REPLICATE_OP = 1054;
public static final int COMPILATION_INCOMPATIBLE_FUNCTION_LANGUAGE = 1055;
public static final int TOO_MANY_OPTIONS_FOR_FUNCTION = 1056;
+ public static final int UNKNOWN_FUNCTION = 1057;
// Feed errors
public static final int DATAFLOW_ILLEGAL_STATE = 3001;
diff --git
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/functions/FunctionConstants.java
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/functions/FunctionConstants.java
index 9e7859c..0deabe7 100644
---
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/functions/FunctionConstants.java
+++
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/functions/FunctionConstants.java
@@ -21,5 +21,6 @@
public interface FunctionConstants {
public static final String ASTERIX_NS = "asterix";
+ public static final String DATASET = "dataset";
}
diff --git
a/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
b/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
index 39a74ff..7effa65 100644
--- a/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
+++ b/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties
@@ -119,6 +119,7 @@
1054 = Compilation failed due to some problem in the query plan.
1055 = Incompatible function language. Expect %1$s, but %2$s found.
1056 = Too many options were specified for %1$s
+1057 = Unknown function %1$s
# Feed Errors
3001 = Illegal state.
diff --git
a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlQueryRewriter.java
b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlQueryRewriter.java
index 977f6bb..d6e4d5f 100644
---
a/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlQueryRewriter.java
+++
b/asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlQueryRewriter.java
@@ -40,6 +40,7 @@
import org.apache.asterix.lang.common.base.IReturningStatement;
import org.apache.asterix.lang.common.clause.GroupbyClause;
import org.apache.asterix.lang.common.clause.LetClause;
+import org.apache.asterix.lang.common.expression.CallExpr;
import org.apache.asterix.lang.common.expression.GbyVariableExpressionPair;
import org.apache.asterix.lang.common.expression.VariableExpr;
import org.apache.asterix.lang.common.rewrites.LangRewritingContext;
@@ -130,7 +131,8 @@
declaredFunctions.removeAll(storedFunctionDecls);
}
- private Set<FunctionSignature> getFunctionCalls(Expression expression)
throws CompilationException {
+ @Override
+ public Set<CallExpr> getFunctionCalls(Expression expression) throws
CompilationException {
GatherFunctionCalls gfc = new GatherFunctionCalls();
expression.accept(gfc, null);
return gfc.getCalls();
diff --git a/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj
b/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj
index 59ed8ae..426e9b9 100644
--- a/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj
+++ b/asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj
@@ -720,7 +720,7 @@
signature = new FunctionSignature(fctName.dataverse, fctName.function,
paramList.size());
getCurrentScope().addFunctionDescriptor(signature, false);
removeCurrentScope();
- return new CreateFunctionStatement(signature, paramList, functionBody,
ifNotExists);
+ return new CreateFunctionStatement(signature, paramList, functionBody,
functionBodyExpr, ifNotExists);
}
}
diff --git
a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IQueryRewriter.java
b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IQueryRewriter.java
index 0c6c04c..906c21b 100644
---
a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IQueryRewriter.java
+++
b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IQueryRewriter.java
@@ -19,8 +19,10 @@
package org.apache.asterix.lang.common.base;
import java.util.List;
+import java.util.Set;
import org.apache.asterix.common.exceptions.CompilationException;
+import org.apache.asterix.lang.common.expression.CallExpr;
import org.apache.asterix.lang.common.rewrites.LangRewritingContext;
import org.apache.asterix.lang.common.statement.FunctionDecl;
import org.apache.asterix.metadata.declared.MetadataProvider;
@@ -39,6 +41,11 @@
* @param context,
* manages ids of variables and guarantees uniqueness of
variables.
*/
- public void rewrite(List<FunctionDecl> declaredFunctions,
IReturningStatement topExpr,
+ void rewrite(List<FunctionDecl> declaredFunctions, IReturningStatement
topExpr,
MetadataProvider metadataProvider, LangRewritingContext context)
throws CompilationException;
+
+ /**
+ * Find the function calls used by a given expression
+ */
+ Set<CallExpr> getFunctionCalls(Expression expression) throws
CompilationException;
}
diff --git
a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/CreateFunctionStatement.java
b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/CreateFunctionStatement.java
index 84d66ce..c817885 100644
---
a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/CreateFunctionStatement.java
+++
b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/CreateFunctionStatement.java
@@ -23,6 +23,7 @@
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.base.Statement;
import org.apache.asterix.lang.common.struct.VarIdentifier;
import org.apache.asterix.lang.common.visitor.base.ILangVisitor;
@@ -31,6 +32,7 @@
private final FunctionSignature signature;
private final String functionBody;
+ private final Expression functionBodyExpression;
private final boolean ifNotExists;
private final List<String> paramList;
@@ -39,9 +41,10 @@
}
public CreateFunctionStatement(FunctionSignature signature,
List<VarIdentifier> parameterList, String functionBody,
- boolean ifNotExists) {
+ Expression functionBodyExpression, boolean ifNotExists) {
this.signature = signature;
this.functionBody = functionBody;
+ this.functionBodyExpression = functionBodyExpression;
this.ifNotExists = ifNotExists;
this.paramList = new ArrayList<String>();
for (VarIdentifier varId : parameterList) {
@@ -66,6 +69,10 @@
return signature;
}
+ public Expression getFunctionBodyExpression() {
+ return functionBodyExpression;
+ }
+
@Override
public <R, T> R accept(ILangVisitor<R, T> visitor, T arg) throws
CompilationException {
return visitor.visit(this, arg);
diff --git
a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
index 1ca9316..c24777c 100644
---
a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
+++
b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
@@ -27,7 +27,14 @@
import org.apache.asterix.common.functions.FunctionConstants;
import org.apache.asterix.common.functions.FunctionSignature;
import org.apache.asterix.lang.common.base.Expression;
+import org.apache.asterix.lang.common.clause.LetClause;
+import org.apache.asterix.lang.common.expression.CallExpr;
+import org.apache.asterix.lang.common.expression.LiteralExpr;
+import org.apache.asterix.lang.common.expression.VariableExpr;
+import org.apache.asterix.lang.common.literal.StringLiteral;
+import org.apache.asterix.lang.common.statement.CreateFunctionStatement;
import org.apache.asterix.lang.common.statement.FunctionDecl;
+import org.apache.asterix.lang.common.struct.VarIdentifier;
import org.apache.asterix.metadata.MetadataManager;
import org.apache.asterix.metadata.MetadataTransactionContext;
import org.apache.asterix.metadata.declared.MetadataProvider;
@@ -52,7 +59,7 @@
@FunctionalInterface
public interface IFunctionCollector {
- Set<FunctionSignature> getFunctionCalls(Expression expression) throws
CompilationException;
+ Set<CallExpr> getFunctionCalls(Expression expression) throws
CompilationException;
}
@FunctionalInterface
@@ -95,8 +102,9 @@
}
String value =
metadataProvider.getConfig().get(FunctionUtil.IMPORT_PRIVATE_FUNCTIONS);
boolean includePrivateFunctions = (value != null) ?
Boolean.valueOf(value.toLowerCase()) : false;
- Set<FunctionSignature> functionCalls =
functionCollector.getFunctionCalls(expression);
- for (FunctionSignature signature : functionCalls) {
+ Set<CallExpr> functionCalls =
functionCollector.getFunctionCalls(expression);
+ for (CallExpr functionCall : functionCalls) {
+ FunctionSignature signature = functionCall.getFunctionSignature();
if (declaredFunctions != null &&
declaredFunctions.contains(signature)) {
continue;
}
@@ -163,4 +171,36 @@
return MetadataManager.INSTANCE.getFunction(mdTxnCtx, signature);
}
+ /**
+ *
+ * Create lets to represent the parameters of a functions
+ * Enabling the function to be compiled to test for usability
+ *
+ * @param cfs
+ * The statement that is trying to create a function
+ * @return
+ */
+ public static List<LetClause>
createLetsToTestFunction(CreateFunctionStatement cfs) {
+ List<LetClause> lets = new ArrayList<>();
+ FunctionIdentifier getJobParameter =
BuiltinFunctions.GET_JOB_PARAMETER;
+ FunctionSignature sig = new
FunctionSignature(getJobParameter.getNamespace(), getJobParameter.getName(),
+ getJobParameter.getArity());
+
+ List<VariableExpr> varList = new ArrayList<>();
+ List<String> vars = cfs.getParamList();
+ for (int i = 0; i < vars.size(); i++) {
+ varList.add(new VariableExpr(new VarIdentifier(vars.get(i), i)));
+ }
+
+ for (VariableExpr var : varList) {
+ List<Expression> strListForCall = new ArrayList<>();
+ LiteralExpr l = new LiteralExpr(new
StringLiteral(var.getVar().getValue()));
+ strListForCall.add(l);
+ Expression con = new CallExpr(sig, strListForCall);
+ LetClause let = new LetClause(var, con);
+ lets.add(let);
+ }
+ return lets;
+ }
+
}
diff --git
a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/GatherFunctionCallsVisitor.java
b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/GatherFunctionCallsVisitor.java
index 8842d86..3d149fb 100644
---
a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/GatherFunctionCallsVisitor.java
+++
b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/GatherFunctionCallsVisitor.java
@@ -23,7 +23,6 @@
import java.util.Set;
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.clause.GroupbyClause;
import org.apache.asterix.lang.common.clause.LetClause;
@@ -53,11 +52,11 @@
public class GatherFunctionCallsVisitor extends
AbstractQueryExpressionVisitor<Void, Void> {
- protected final Set<FunctionSignature> calls = new
HashSet<FunctionSignature>();
+ protected final Set<CallExpr> calls = new HashSet<>();
@Override
public Void visit(CallExpr pf, Void arg) throws CompilationException {
- calls.add(pf.getFunctionSignature());
+ calls.add(pf);
for (Expression e : pf.getExprList()) {
e.accept(this, arg);
}
@@ -202,7 +201,7 @@
return null;
}
- public Set<FunctionSignature> getCalls() {
+ public Set<CallExpr> getCalls() {
return calls;
}
diff --git
a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java
b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java
index a2de694..90b3210 100644
---
a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java
+++
b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java
@@ -28,6 +28,7 @@
import org.apache.asterix.lang.common.base.IQueryRewriter;
import org.apache.asterix.lang.common.base.IReturningStatement;
import org.apache.asterix.lang.common.clause.LetClause;
+import org.apache.asterix.lang.common.expression.CallExpr;
import org.apache.asterix.lang.common.rewrites.LangRewritingContext;
import org.apache.asterix.lang.common.statement.FunctionDecl;
import org.apache.asterix.lang.common.util.FunctionUtil;
@@ -247,13 +248,14 @@
declaredFunctions.removeAll(usedStoredFunctionDecls);
}
- private Set<FunctionSignature> getFunctionCalls(Expression expression)
throws CompilationException {
+ @Override
+ public Set<CallExpr> getFunctionCalls(Expression expression) throws
CompilationException {
GatherFunctionCalls gfc = new GatherFunctionCalls();
expression.accept(gfc, null);
return gfc.getCalls();
}
- private static class GatherFunctionCalls extends
GatherFunctionCallsVisitor implements ISqlppVisitor<Void, Void> {
+ public static class GatherFunctionCalls extends GatherFunctionCallsVisitor
implements ISqlppVisitor<Void, Void> {
public GatherFunctionCalls() {
}
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
index 7ac8c57..a74c335 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
+++ b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
@@ -767,7 +767,7 @@
signature = new FunctionSignature(fctName.dataverse, fctName.function,
paramList.size());
getCurrentScope().addFunctionDescriptor(signature, false);
removeCurrentScope();
- return new CreateFunctionStatement(signature, paramList, functionBody,
ifNotExists);
+ return new CreateFunctionStatement(signature, paramList, functionBody,
functionBodyExpr, ifNotExists);
}
}
diff --git
a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java
b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java
index e59c600..fb5f830 100644
---
a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java
+++
b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java
@@ -334,7 +334,8 @@
public static final FunctionIdentifier STRING_SPLIT = new
FunctionIdentifier(FunctionConstants.ASTERIX_NS, "split",
2);
- public static final FunctionIdentifier DATASET = new
FunctionIdentifier(FunctionConstants.ASTERIX_NS, "dataset", 1);
+ public static final FunctionIdentifier DATASET =
+ new FunctionIdentifier(FunctionConstants.ASTERIX_NS,
FunctionConstants.DATASET, 1);
public static final FunctionIdentifier FEED_COLLECT = new
FunctionIdentifier(FunctionConstants.ASTERIX_NS,
"feed-collect", 6);
public static final FunctionIdentifier FEED_INTERCEPT = new
FunctionIdentifier(FunctionConstants.ASTERIX_NS,
--
To view, visit https://asterix-gerrit.ics.uci.edu/2197
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia83f9386e63072ed74ab85094e0bcc016cb1faec
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Steven Jacobs <[email protected]>