mirror of
https://github.com/apache/impala.git
synced 2026-01-06 15:01:43 -05:00
Add execution for vararg UDFs.
Change-Id: I46e5670c09ac0b8e62f39dfc832fe880dd1dc995 Reviewed-on: http://gerrit.ent.cloudera.com:8080/572 Tested-by: jenkins Reviewed-by: Nong Li <nong@cloudera.com>
This commit is contained in:
@@ -11,8 +11,9 @@ drop function if exists udf_test.identity(string);
|
||||
drop function if exists udf_test.all_types_fn(
|
||||
string, boolean, tinyint, smallint, int, bigint, float, double);
|
||||
drop function if exists udf_test.no_args();
|
||||
drop function if exists udf_test.var_sum(int...);
|
||||
drop function if exists udf_test.var_sum_multiply(double, int...);
|
||||
|
||||
drop database if exists udf_test;
|
||||
create database if not exists udf_test;
|
||||
|
||||
create function udf_test.identity(boolean) returns boolean
|
||||
@@ -56,4 +57,12 @@ symbol='_Z8AllTypesPN10impala_udf15FunctionContextERKNS_9StringValERKNS_10Boolea
|
||||
create function udf_test.no_args() returns string
|
||||
location '/test-warehouse/test-udfs.ll'
|
||||
symbol='_Z6NoArgsPN10impala_udf15FunctionContextE';
|
||||
|
||||
create function udf_test.var_sum(int...) returns int
|
||||
location '/test-warehouse/test-udfs.ll'
|
||||
symbol='_Z6VarSumPN10impala_udf15FunctionContextEiPKNS_6IntValE';
|
||||
|
||||
create function udf_test.var_sum_multiply(double, int...) returns double
|
||||
location '/test-warehouse/test-udfs.ll'
|
||||
symbol='_Z14VarSumMultiplyPN10impala_udf15FunctionContextERKNS_9DoubleValEiPKNS_6IntValE';
|
||||
====
|
||||
|
||||
@@ -11,8 +11,9 @@ drop function if exists udf_test.identity(string);
|
||||
drop function if exists udf_test.all_types_fn(
|
||||
string, boolean, tinyint, smallint, int, bigint, float, double);
|
||||
drop function if exists udf_test.no_args();
|
||||
drop function if exists udf_test.var_sum(int...);
|
||||
drop function if exists udf_test.var_sum_multiply(double, int...);
|
||||
|
||||
drop database if exists udf_test;
|
||||
create database if not exists udf_test;
|
||||
|
||||
create function udf_test.identity(boolean) returns boolean
|
||||
@@ -56,4 +57,12 @@ symbol='_Z8AllTypesPN10impala_udf15FunctionContextERKNS_9StringValERKNS_10Boolea
|
||||
create function udf_test.no_args() returns string
|
||||
location '/test-warehouse/libTestUdfs.so'
|
||||
symbol='_Z6NoArgsPN10impala_udf15FunctionContextE';
|
||||
|
||||
create function udf_test.var_sum(int...) returns int
|
||||
location '/test-warehouse/libTestUdfs.so'
|
||||
symbol='_Z6VarSumPN10impala_udf15FunctionContextEiPKNS_6IntValE';
|
||||
|
||||
create function udf_test.var_sum_multiply(double, int...) returns double
|
||||
location '/test-warehouse/libTestUdfs.so'
|
||||
symbol='_Z14VarSumMultiplyPN10impala_udf15FunctionContextERKNS_9DoubleValEiPKNS_6IntValE';
|
||||
====
|
||||
|
||||
@@ -184,3 +184,68 @@ int
|
||||
---- RESULT
|
||||
NULL
|
||||
====
|
||||
---- QUERY
|
||||
select udf_test.var_sum(NULL, NULL, NULL)
|
||||
---- TYPES
|
||||
int
|
||||
---- RESULT
|
||||
NULL
|
||||
====
|
||||
---- QUERY
|
||||
select udf_test.var_sum(1, 2, 3, 4, 5, 6)
|
||||
---- TYPES
|
||||
int
|
||||
---- RESULT
|
||||
21
|
||||
====
|
||||
---- QUERY
|
||||
select tinyint_col, int_col, udf_test.var_sum(tinyint_col, int_col)
|
||||
from functional.alltypestiny
|
||||
---- TYPES
|
||||
tinyint, int, int
|
||||
---- RESULT
|
||||
0,0,0
|
||||
1,1,2
|
||||
0,0,0
|
||||
1,1,2
|
||||
0,0,0
|
||||
1,1,2
|
||||
0,0,0
|
||||
1,1,2
|
||||
====
|
||||
---- QUERY
|
||||
select udf_test.var_sum_multiply(NULL, 1, 2)
|
||||
---- TYPES
|
||||
double
|
||||
---- RESULT
|
||||
NULL
|
||||
====
|
||||
---- QUERY
|
||||
select udf_test.var_sum_multiply(1.0, 1, 2, NULL, 3)
|
||||
---- TYPES
|
||||
double
|
||||
---- RESULT
|
||||
NULL
|
||||
====
|
||||
---- QUERY
|
||||
select udf_test.var_sum_multiply(5.0, 1, 2, 3, 4, 5, 6)
|
||||
---- TYPES
|
||||
double
|
||||
---- RESULT
|
||||
105
|
||||
====
|
||||
---- QUERY
|
||||
select tinyint_col, int_col, udf_test.var_sum_multiply(2, tinyint_col, int_col)
|
||||
from functional.alltypestiny
|
||||
---- TYPES
|
||||
tinyint, int, double
|
||||
---- RESULT
|
||||
0,0,0
|
||||
1,1,4
|
||||
0,0,0
|
||||
1,1,4
|
||||
0,0,0
|
||||
1,1,4
|
||||
0,0,0
|
||||
1,1,4
|
||||
====
|
||||
|
||||
Reference in New Issue
Block a user