This is an automated email from the ASF dual-hosted git repository. dlych pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit 4e4d6d7ebc49fb6cdece1321111b521f5530ebbf Author: Dmitry Lychagin <[email protected]> AuthorDate: Tue Dec 8 12:04:14 2020 -0800 [NO ISSUE][COMP] Improve error message - user model changes: no - storage format changes: no - interface changes: no Details: - Add function arity to the error message that is raised when function resolution fails Change-Id: I5bbd3571cb1ce9e25869ce61443e0b023159d9d0 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/9146 Integration-Tests: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Reviewed-by: Ian Maxon <[email protected]> --- .../translator/LangExpressionToPlanTranslator.java | 2 +- .../queries_sqlpp/flwor/at00/at00.3.query.sqlpp | 2 +- .../src/test/resources/runtimets/testsuite_sqlpp.xml | 20 ++++++++++---------- .../src/main/resources/asx_errormsg/en.properties | 2 +- .../asterix/lang/common/util/FunctionUtil.java | 2 +- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java index 6759f1c..24e1db8 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java @@ -885,7 +885,7 @@ abstract class LangExpressionToPlanTranslator AbstractFunctionCallExpression f = lookupFunction(signature, args, sourceLoc); if (f == null) { - throw new CompilationException(ErrorCode.UNKNOWN_FUNCTION, sourceLoc, signature.toString(false)); + throw new CompilationException(ErrorCode.UNKNOWN_FUNCTION, sourceLoc, signature.toString()); } if (fcall.hasAggregateFilterExpr()) { diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/flwor/at00/at00.3.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/flwor/at00/at00.3.query.sqlpp index cb47163..23f3c08 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/flwor/at00/at00.3.query.sqlpp +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/flwor/at00/at00.3.query.sqlpp @@ -33,4 +33,4 @@ from ) as gen0, gen0.i as j at p where p < 4 -order by partkey, shipdate; +order by partkey, shipdate, pid; diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml index b73ce69..3f6b76e 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml +++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml @@ -3018,7 +3018,7 @@ <test-case FilePath="array_fun"> <compilation-unit name="array_slice/array_slice_exception_result"> <output-dir compare="Text">array_slice/array_slice_exception_result</output-dir> - <expected-error>ASX1081: Cannot find function with name TinySocial.array_slice</expected-error> + <expected-error>ASX1081: Cannot find function with signature TinySocial.array_slice()</expected-error> </compilation-unit> </test-case> <test-case FilePath="array_fun"> @@ -11896,14 +11896,14 @@ <test-case FilePath="user-defined-functions"> <compilation-unit name="bad-function-ddl-5"> <output-dir compare="Text">bad-function-ddl-5</output-dir> - <expected-error>ASX1081: Cannot find function with name experiments.function_that_does_not_exist</expected-error> - <expected-error>ASX1081: Cannot find function with name experiments2.function_that_does_not_exist </expected-error> + <expected-error>ASX1081: Cannot find function with signature experiments.function_that_does_not_exist()</expected-error> + <expected-error>ASX1081: Cannot find function with signature experiments2.function_that_does_not_exist()</expected-error> </compilation-unit> </test-case> <test-case FilePath="user-defined-functions"> <compilation-unit name="bad-function-ddl-6"> <output-dir compare="Text">bad-function-ddl-6</output-dir> - <expected-error>ASX1081: Cannot find function with name experiments.function_that_does_not_exist</expected-error> + <expected-error>ASX1081: Cannot find function with signature experiments.function_that_does_not_exist(2)</expected-error> </compilation-unit> </test-case> <test-case FilePath="user-defined-functions"> @@ -11921,13 +11921,13 @@ <test-case FilePath="user-defined-functions"> <compilation-unit name="bad-function-ddl-9"> <output-dir compare="Text">bad-function-ddl-9</output-dir> - <expected-error>ASX1081: Cannot find function with name experiments.function_that_does_not_exist</expected-error> + <expected-error>ASX1081: Cannot find function with signature experiments.function_that_does_not_exist()</expected-error> </compilation-unit> </test-case> <test-case FilePath="user-defined-functions"> <compilation-unit name="bad-function-ddl-10"> <output-dir compare="Text">bad-function-ddl-10</output-dir> - <expected-error>ASX1081: Cannot find function with name experiments.f0</expected-error> + <expected-error>ASX1081: Cannot find function with signature experiments.f0(2)</expected-error> </compilation-unit> </test-case> <test-case FilePath="user-defined-functions"> @@ -12005,8 +12005,8 @@ <test-case FilePath="user-defined-functions"> <compilation-unit name="drop-function-1"> <output-dir compare="Text">drop-function-1</output-dir> - <expected-error>ASX1081: Cannot find function with name experiments.my_sum</expected-error> - <expected-error>ASX1081: Cannot find function with name experiments.my_sum_va</expected-error> + <expected-error>ASX1081: Cannot find function with signature experiments.my_sum(2)</expected-error> + <expected-error>ASX1081: Cannot find function with signature experiments.my_sum_va(2)</expected-error> </compilation-unit> </test-case> <test-case FilePath="user-defined-functions"> @@ -12053,7 +12053,7 @@ <test-case FilePath="user-defined-functions"> <compilation-unit name="query-issue455"> <output-dir compare="Text">query-issue455</output-dir> - <expected-error>ASX1081: Cannot find function with name test.printName</expected-error> + <expected-error>ASX1081: Cannot find function with signature test.printName()</expected-error> </compilation-unit> </test-case> <test-case FilePath="user-defined-functions"> @@ -12241,7 +12241,7 @@ <test-case FilePath="user-defined-functions"> <compilation-unit name="f01"> <output-dir compare="Text">f01</output-dir> - <expected-error>ASX1081: Cannot find function with name test.tinyint</expected-error> + <expected-error>ASX1081: Cannot find function with signature test.tinyint()</expected-error> </compilation-unit> </test-case> <!-- This test case is not valid anymore since we do not required "IMPORT_PRIVATE_FUNCTIONS" flag anymore --> 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 22f7308..db8a70d 100644 --- a/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties +++ b/asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties @@ -168,7 +168,7 @@ 1078 = Unexpected operator %1$s in an OperatorExpr starting with %2$s 1079 = Compilation error: %1$s 1080 = Cannot find node group with name %1$s -1081 = Cannot find function with name %1$s +1081 = Cannot find function with signature %1$s 1082 = Cannot find datatype with name %1$s 1083 = Cannot find index with name %1$s 1084 = An index with this name %1$s already exists 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 67d07f0..a33cd61 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 @@ -165,7 +165,7 @@ public class FunctionUtil { } FunctionSignature fsBuiltin = builtinFunctionResolver.apply(name, arity); if (fsBuiltin == null) { - throw new CompilationException(ErrorCode.UNKNOWN_FUNCTION, sourceLoc, fs.toString(false)); + throw new CompilationException(ErrorCode.UNKNOWN_FUNCTION, sourceLoc, fs.toString()); } return fsBuiltin; }
