Hi all,
To reiterate, I've been getting mismatched output when I use two different UDFs
on the pk column in the same query statement. If two UDFs are in the SELECT
clause, only the first one is picked up. If there's a UDF in the WHERE clause,
it's picked up instead of the UDF in the SELECT clause. Details are at
PHOENIX-2151.
Can anyone reproduce this issue? Rajeshbabu, I'd appreciate your input.
Thank you,Anchal
On Thursday, August 6, 2015 2:40 PM, Anchal Agrawal <[email protected]>
wrote:
Hi Nicholas,
Do you have any updates about this issue? I noticed that Rajeshbabu reopened
the ticket yesterday.
Thanks,Anchal
On Wednesday, August 5, 2015 7:02 PM, Nicholas Whitehead
<[email protected]> wrote:
Not sure, actually. I think it's got something to do with differences in the
implementation of the UDF's evaluate method. In retrospect, my test case
implemented a practical passthrough where as my original observation was on a
UDF that did something more complex. I'll dig it up.
//Nicholas
On Wed, Aug 5, 2015 at 9:35 PM, Anchal Agrawal <[email protected]> wrote:
Sure, Nicholas. I'll add in the details. According to the ticket, it looks like
you were able to reproduce the issue initially. Do you know what changed
between the time you reproduced it and when you couldn't? Or was it just a
false positive?
Thanks,Anchal
On Wednesday, August 5, 2015 5:48 PM, Nicholas Whitehead
<[email protected]> wrote:
I will go back and redo the test case and hopefully reproduce. And reopen the
ticket. Perhaps you could attach the details of your case too.Plan ?On Aug 5,
2015 8:04 PM, "Anchal Agrawal" <[email protected]> wrote:
Hi Nicholas,
Yes, I'm getting the same issue (HBase 0.98.8). On my setup, if I run:select
pk, udf1(pk), udf2(pk) from "mytable" I get pk, udf1(pk), udf1(pk)
And if I run:select pk, udf2(pk), udf1(pk) from "mytable" I get pk, udf2(pk),
udf2(pk)
It appears to be picking up the first UDF. However, in Query 3 (from my
previous email), when the second UDF is in the WHERE clause, the second UDF is
picked up instead of the first one.
Sincerely,Anchal
On Wednesday, August 5, 2015 4:45 PM, Nicholas Whitehead
<[email protected]> wrote:
Hmm... I opened a jira ticket on that, but then my simplified test case could
not
reproduce.https://issues.apache.org/jira/browse/PHOENIX-2151?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanelLook
the same ?Hi,
I'm using v4.4.0. I'm getting mismatched output when I use two UDFs in a query.
Phoenix view of existing HBase table: create view "mytable" (pk VARBINARY
PRIMARY KEY, "cf"."col" UNSIGNED_LONG);
UDF1: create function udf1(VARBINARY) returns UNSIGNED_LONG as
'mypkg.GetX';UDF2: create function udf2(VARBINARY) returns INTEGER as
'mypkg.GetY';Query1: select udf1(pk), udf2(pk) from "mytable";Query2: select
udf2(pk), udf1(pk) from "mytable";Query3: select udf1(pk), "col" from "mytable"
where udf2(pk) > 0;
Query 1: The output has two columns, but they're both udf1(pk) so both columns
have the same rows in the output.Query 2: Same as Query 1, except that both
columns are udf2(pk).
Query 3: The output has two columns, udf2(pk) and "col", instead of udf1(pk)
and "col".
If I have just one UDF in a query, like so: select pk, udf2(pk) from "mytable";
then the output is as expected.
I'm not sure what I'm missing. Rajeshbabu, is there a caveat associated with
using two UDFs in one query? I appreciate your help.
Thank you,Anchal