Hello Anon. E. Moose #1000171, Jenkins,

I'd like you to reexamine a change.  Please visit

    https://asterix-gerrit.ics.uci.edu/3270

to look at the new patch set (#3).

Change subject: [NO ISSUE][FUN] Fix type inference and casting in UDFs
......................................................................

[NO ISSUE][FUN] Fix type inference and casting in UDFs

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
The current UDF framework handles the argument types in a sloppy way. It
takes in the arguments and reads them as the expected data types in the
configuration. This could cause exception at runtime when passing in
arguments with unexpected datatypes. When setting the arguments, it did
a type casting for numeric values only to make sure the int64 from query
interface can be evaluated properly. However, this is not robust enough.

This patch fixes the type inference for UDFs during the complation time.
The ExternalTypeComputer is refactored to return defined data type, and
meanwhile checks the argument data types. Also, the
IntroduceDynamicTypeCastForExternalFunctionRule is modified to cover the
type castings for data types besides record type.

Change-Id: I40506fcca3cd8f14bbd6412359683433256c4c1f
---
M 
asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/IntroduceDynamicTypeCastForExternalFunctionRule.java
C 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.1.ddl.sqlpp
C 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.2.lib.sqlpp
C 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.3.query.sqlpp
C 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.6.lib.sqlpp
C 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/my_array_sum/my_array_sum.7.ddl.sqlpp
C 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/mysum/mysum.4.query.sqlpp
C 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/mysum/mysum.5.query.sqlpp
R 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/mysum/mysum.6.lib.sqlpp
R 
asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/external-library/mysum/mysum.7.ddl.sqlpp
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/my_array_sum/my_array_sum.1.adm
A 
asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/mysum/mysum.2.adm
M 
asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/validate-default-library/validate-default-library.1.adm
M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_it_sqlpp.xml
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/library/ExternalFunction.java
C 
asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/library/MyArraySumFactory.java
C 
asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/library/MyArraySumFunction.java
R 
asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/library/MySumFactory.java
R 
asterixdb/asterix-external-data/src/test/java/org/apache/asterix/external/library/MySumFunction.java
M asterixdb/asterix-external-data/src/test/resources/library_descriptor.xml
M 
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/functions/ExternalFunctionCompilerUtil.java
M 
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/functions/ExternalTypeComputer.java
M 
asterixdb/asterix-metadata/src/test/java/org/apache/asterix/metadata/functions/ExternalFunctionCompilerUtilTest.java
A 
asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-functions/my_array_sum/my_array_sum.1.adm
A 
asterixdb/asterix-server/src/test/resources/integrationts/library/results/library-functions/mysum/mysum.2.adm
M 
asterixdb/asterix-server/src/test/resources/integrationts/library/testsuite.xml
26 files changed, 114 insertions(+), 168 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/70/3270/3
-- 
To view, visit https://asterix-gerrit.ics.uci.edu/3270
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I40506fcca3cd8f14bbd6412359683433256c4c1f
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Xikui Wang <xkk...@gmail.com>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <jenk...@fulliautomatix.ics.uci.edu>

Reply via email to