Csaba Ringhofer created IMPALA-11549:
----------------------------------------
Summary: Incorrent return type mismatch in Hive generic UDFs
Key: IMPALA-11549
URL: https://issues.apache.org/jira/browse/IMPALA-11549
Project: IMPALA
Issue Type: Bug
Components: Frontend
Affects Versions: Impala 4.1.0
Reporter: Csaba Ringhofer
The valid looking function creation returned an error:
CREATE FUNCTION IF NOT EXISTS st_bin(bigint, binary) returns bigint LOCATION '
...' SYMBOL='org.apache.hadoop.hive.ql.udf.esri.ST_Bin';
ERROR: CatalogException: Error retrieving class class
org.apache.hadoop.hive.ql.udf.esri.ST_Bin: Function expected return type bigint
but was created with BIGINT
I think that issue is that we use =! to check for mismatch:
https://github.com/apache/impala/blob/fec7a79c50de9ef5db2c652ece111aaa303d57c7/fe/src/main/java/org/apache/impala/hive/executor/HiveGenericJavaFunction.java#L149
Comparison of ObjectInspectors should be done in a more complex way, see
https://github.com/apache/hive/blob/d06957f254e026e719f30027d161264be43386b0/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorUtils.java#L1325
--
This message was sent by Atlassian Jira
(v8.20.10#820010)