Hi Navis, I suspected that the parser only accepted an expression like (value1, value2, value3...) as input. I guess one solution as you say would be to add an array as an allowed argument to IN. I do not know if other SQL dialects allow this. Another way would be to introduce a new type of UDF that is expanded before it is sent to the parser (use string as return type). Much like variables are handled I guess.
Thanks, Petter 2014-03-11 2:32 GMT+01:00 Navis류승우 <navis....@nexr.com>: > (KW_IN expressions) > -> ^(TOK_FUNCTION KW_IN $precedenceEqualExpression expressions) > > expressions > : > LPAREN expression (COMMA expression)* RPAREN -> expression* > ; > > You should have arguments of IN wrapped by parentheses. But It seemed > not possible to use array returning expression in it (type mismatch in > current hive). > > We might extend IN function to accept single array as a argument. > > > 2014-03-11 8:16 GMT+09:00 java8964 <java8...@hotmail.com>: > > I don't know from syntax point of view, if Hive will allow to do > "columnA IN > > UDF(columnB)". > > > > What I do know that even let's say above work, it won't do the partition > > pruning. > > > > The partition pruning in Hive is strict static, any dynamic values > provided > > to partition column won't enable partition pruning, even though it is a > > feature I missed too. > > > > Yong > > > > ________________________________ > > Date: Mon, 10 Mar 2014 16:23:01 +0100 > > Subject: Using an UDF in the WHERE (IN) clause > > From: petter.von.dolw...@gmail.com > > To: user@hive.apache.org > > > > > > Hi, > > > > I'm trying to get the following query to work. The parser don't like it. > > Anybody aware of a workaround? > > > > SELECT * FROM mytable WHERE partitionCol IN my_udf("2014-03-10"); > > > > partitionCol is my partition column of type INT and I want to achieve > early > > pruning. I've tried returning an array of INTs from my_udf and also a > plain > > string in the format (1,2,3). It seems like the parser wont allow me to > put > > an UDF in this place. > > > > Any help appreciated. > > > > Thanks, > > Petter >