phoenix-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jaime Solano <jdjsol...@gmail.com>
Subject Re: UDF - Access Tuple Column Values By Name
Date Wed, 06 May 2015 12:43:21 GMT
Hi Kathir,

I don't know if that's posible, but seems like the better approach is to
just define your function to take two arguments.

What do you think?

Best,
-Jaime
On May 6, 2015 7:50 AM, "Kathiresan S" <kathiresanselvaraj@gmail.com> wrote:

> Hi,
>
> In UDF, in the implemented evaluate(tuple,ptr) method, i could access the
> expression object of the columns passed to the UDF, by invoking
> *getChildren.get(index)*. and then by invoking
> expression.evaluate(tuple,ptr), i can get the value copied to the ptr
> object. But, how do i access other elements of the tuple by passing its
> column name. I don't have access to the expression object of other columns
> in the select query within the UDF implementation method. Please suggest
> what we should do to get the value of other columns from the tuple by
> passing the column name.
>
> For eg.
>
> CREATE TABLE TESTTABLE (ID VARCHAR, NAME VARCHAR, PREFIX VARCHAR)
>
> CREATE FUNCTION MYFUNCTION(VARCHAR) RETURNS VARCHAR WITH 'com.test.CF'
> using jar '/tmp/cf.jar'
>
> SELECT ID,MYFUNCTION(NAME),PREFIX FROM TESTTABLE
>
> MYFUNCTION - is expected to concatenate PREFIX columns value and the NAME
> columns value in each row.
>
> In the evaluate method, as i pass the NAME column as argument to the
> function, i get the expression object of it by invoking
> nameExpr=getChildren.get(0) and then by invoking
> nameExpr.evaluate(tuple,ptr) i can have the value copied to ptr. In this
> case, is there a way to access the prefix columns value from the tuple, as
> its also present in the SELECT clause.
>
> Thanks,
> Kathir
>

Mime
View raw message