mirror of
https://github.com/apache/impala.git
synced 2026-01-11 03:00:14 -05:00
Hive has 2 types of UDFs. This commit contains limited support for the second generation UDFs called GenericUDFs. The main limitations are as follows: Decimal types are not supported. The Impala framework determines the precision and scale of the decimal return type. However, the Hive GenericUDFs allow the capability to choose its own return type based on the parameters. Until this can be resolved, it is safer to forbid decimals from being used. Note that this limitation currently exists in the first generation of Hive Java UDFs. Complex types are not supported. Functions are not extracted from the jar file. The first generation of Hive UDFs allowed this because the method prototypes are explicitly defined and can be determined at function creation time. For GenericUDFs, the return types are determined based on the parameters passed in when running a query. For the same reason as above, GenericUDFs cannot be made permanent. They will need to be recreated everytime the server is restarted. This is a severe limitation and will be resolved in the near future. Change-Id: Ie6fd09120db413fade94410c83ebe8ff104013cd Reviewed-on: http://gerrit.cloudera.org:8080/18295 Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com> Reviewed-by: Csaba Ringhofer <csringhofer@cloudera.com>
87 lines
3.5 KiB
Plaintext
87 lines
3.5 KiB
Plaintext
====
|
|
---- QUERY
|
|
create function hive_bround(int) returns int
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/hive-exec.jar'
|
|
symbol='org.apache.hadoop.hive.ql.udf.generic.GenericUDFBRound';
|
|
|
|
create function hive_bround(double) returns double
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/hive-exec.jar'
|
|
symbol='org.apache.hadoop.hive.ql.udf.generic.GenericUDFBRound';
|
|
|
|
create function hive_upper(string) returns string
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/hive-exec.jar'
|
|
symbol='org.apache.hadoop.hive.ql.udf.generic.GenericUDFUpper';
|
|
|
|
create function generic_identity(boolean) returns boolean
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/impala-hive-udfs.jar'
|
|
symbol='org.apache.impala.TestGenericUdf';
|
|
|
|
create function generic_identity(tinyint) returns tinyint
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/impala-hive-udfs.jar'
|
|
symbol='org.apache.impala.TestGenericUdf';
|
|
|
|
create function generic_identity(smallint) returns smallint
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/impala-hive-udfs.jar'
|
|
symbol='org.apache.impala.TestGenericUdf';
|
|
|
|
create function generic_identity(int) returns int
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/impala-hive-udfs.jar'
|
|
symbol='org.apache.impala.TestGenericUdf';
|
|
|
|
create function generic_identity(bigint) returns bigint
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/impala-hive-udfs.jar'
|
|
symbol='org.apache.impala.TestGenericUdf';
|
|
|
|
create function generic_add(boolean, boolean) returns boolean
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/impala-hive-udfs.jar'
|
|
symbol='org.apache.impala.TestGenericUdf';
|
|
|
|
create function generic_identity(float) returns float
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/impala-hive-udfs.jar'
|
|
symbol='org.apache.impala.TestGenericUdf';
|
|
|
|
create function generic_identity(double) returns double
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/impala-hive-udfs.jar'
|
|
symbol='org.apache.impala.TestGenericUdf';
|
|
|
|
create function generic_identity(string) returns string
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/impala-hive-udfs.jar'
|
|
symbol='org.apache.impala.TestGenericUdf';
|
|
|
|
create function generic_add(string, string) returns string
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/impala-hive-udfs.jar'
|
|
symbol='org.apache.impala.TestGenericUdf';
|
|
|
|
create function generic_add(string, string, string) returns string
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/impala-hive-udfs.jar'
|
|
symbol='org.apache.impala.TestGenericUdf';
|
|
|
|
create function generic_add(smallint, smallint) returns smallint
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/impala-hive-udfs.jar'
|
|
symbol='org.apache.impala.TestGenericUdf';
|
|
|
|
create function generic_add(int, int) returns int
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/impala-hive-udfs.jar'
|
|
symbol='org.apache.impala.TestGenericUdf';
|
|
|
|
create function generic_add(float, float) returns float
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/impala-hive-udfs.jar'
|
|
symbol='org.apache.impala.TestGenericUdf';
|
|
|
|
create function generic_add(double, double) returns double
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/impala-hive-udfs.jar'
|
|
symbol='org.apache.impala.TestGenericUdf';
|
|
|
|
create function generic_throws_exception() returns boolean
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/impala-hive-udfs.jar'
|
|
symbol='org.apache.impala.TestGenericUdfException';
|
|
|
|
create function generic_replace_string(string) returns string
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/impala-hive-udfs.jar'
|
|
symbol='org.apache.impala.GenericReplaceStringUdf';
|
|
|
|
create function generic_import_nearby_classes(string) returns string
|
|
location '$FILESYSTEM_PREFIX/test-warehouse/impala-hive-udfs.jar'
|
|
symbol='org.apache.impala.GenericImportsNearbyClassesUdf';
|
|
====
|