[NO ISSUE] Improve handling of udf parameter/return types
- user model changes: yes
- storage format changes: no
- interface changes: no
Details:
- Prohibit parameter/return type specification for inline udfs
- Prohibit parameter/return type quantifier (?) for external udfs
- Allow external udfs to refer to types from other dataverses
- Do not store type quantifiers in udf metadata
- Align names of anonymous types automatically created by
QueryTranslator for datasets and udfs
- Reserve user-defined type names starting from '$' for system use
- Add testcases
- Prohibit UdfServlet operations if cluster is not active
- Return correct path from IOManager.getWorkspacePath()
- Test framework: support multiple commands in .lib.sqlpp files
- Remove CC files when deleting old instance data in
AsterixHyracksIntegrationUtil
Change-Id: I09bdfd8c7b26750d12339034d2143a16102d1212
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/6545
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Dmitry Lychagin <dmitry.lychagin@couchbase.com>
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 abee116..deb8503 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
@@ -3968,6 +3968,12 @@
</compilation-unit>
</test-case>
<test-case FilePath="ddl">
+ <compilation-unit name="bad-type-ddl">
+ <output-dir compare="Text">none</output-dir>
+ <expected-error>ASX1079: Compilation error: Reserved type name $x</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="ddl">
<compilation-unit name="create-dataset-inline-type-1">
<output-dir compare="Text">create-dataset-inline-type-1</output-dir>
</compilation-unit>
@@ -11714,6 +11720,13 @@
</compilation-unit>
</test-case>
<test-case FilePath="user-defined-functions">
+ <compilation-unit name="bad-function-ddl-11">
+ <output-dir compare="Text">bad-function-ddl-11</output-dir>
+ <expected-error>ASX1001: Syntax error: Unexpected type declaration for parameter a in function myfn001</expected-error>
+ <expected-error>ASX1001: Syntax error: Unexpected return type declaration for function myfn002</expected-error>
+ </compilation-unit>
+ </test-case>
+ <test-case FilePath="user-defined-functions">
<compilation-unit name="check-dependencies-1">
<output-dir compare="Text">check-dependencies-1</output-dir>
</compilation-unit>