You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Istvan Toth (Jira)" <ji...@apache.org> on 2020/03/02 06:38:00 UTC

[jira] [Updated] (PHOENIX-4866) UDFs get error: org.apache.phoenix.schema.FunctionNotFoundException: ERROR 6001 (42F01): Function undefined

     [ https://issues.apache.org/jira/browse/PHOENIX-4866?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Istvan Toth updated PHOENIX-4866:
---------------------------------
    Comment: was deleted

(was: I have skimmed the code to see the where else EMPTY_TABLE_RESOLVER is used.

It seems that the same issue affects upserts too.
{code:java}
//UDFs in upserts
 stmt.executeUpdate("upsert into t values (10, myreverse2('rtz'), myreverse2('bnm'))");
 assertTrue(stmt.getUpdateCount()==1);
 rs = stmt.executeQuery("select * from t where id = 10");
 assertEquals(10, rs.getInt(1));
 assertEquals("ztr", rs.getString(2));
 assertEquals("mnb", rs.getString(3));
 assertFalse(rs.next());{code}
It also seems to be used during table creation, but I haven't followed that path.

Could you fix the upsert case, and check if create table has similar issues ?

 

 )

> UDFs get error: org.apache.phoenix.schema.FunctionNotFoundException: ERROR 6001 (42F01): Function undefined
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-4866
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4866
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 5.0.0
>         Environment: [^ArrayDistinctFunction.java]
>            Reporter: cherish peng
>            Assignee: Richard Antal
>            Priority: Blocker
>              Labels: User-Defined-Function, functions, udfs
>             Fix For: 5.0.0
>
>         Attachments: ArrayDistinctFunction.java, PHOENIX-4866.master.v1.patch
>
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
>  I built an udf `ARRAY_DISTINCT`, When i exec:
> {color:#d04437}①{color} SELECT ARRAY_DISTINCT(ARRAY['A', 'B', 'A', 'C'], TRUE);
> throw error:
>  
> {code:java}
> org.apache.phoenix.schema.FunctionNotFoundException: ERROR 6001 (42F01): Function undefined. functionName=ARRAY_DISTINCT at org.apache.phoenix.compile.FromCompiler$1.resolveFunction(FromCompiler.java:134) at org.apache.phoenix.compile.ExpressionCompiler.visitLeave(ExpressionCompiler.java:327)
> {code}
>  
> However when i exec:
> {color:#d04437}②{color} SELECT ARRAY_DISTINCT(ARRAY['A', 'B', 'A', 'C'], TRUE) {color:#f79232}FROM TABLE_NAME;{color}
> output:
> *+---------------------+*
> *|* *ARRAY['A','B','C']* *|*
> *+---------------------+*
> *+---------------------+*
>  
> {color:#d04437}③{color} SELECT ARRAY_DISTINCT({color:#f79232}array_elements{color}, TRUE) as arr {color:#f79232}FROM TABLE_NAME;{color}**
> {color:#f79232}output:{color}
> *+---------------------+*
> *| ARR*  *  **  |*
> *+---------------------+*
> *| ARRAY['A','B','C'] |***
> *+---------------------+*
>  
> The DDL: 
> CREATE FUNCTION ARRAY_DISTINCT(VARCHAR[], BOOLEAN) RETURNS VARCHAR AS 'com.godalgo.udf.ArrayDistinctFunction';
> My Environment:  apache-phoenix-5.0.0-HBase-2.0-bin  hbase-2.0.0 hadoop-3.1.0
>  
> I tried the built-in functions which provided by Phoenix, ALL OF THEM ARE OK .
> *I had putted ARRAY_DISTINCT's SOURCE TO attachment.*



--
This message was sent by Atlassian Jira
(v8.3.4#803005)