> On April 5, 2017, 3:37 p.m., Ashutosh Chauhan wrote:
> > ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g
> > Lines 590-592 (patched)
> > <https://reviews.apache.org/r/58181/diff/2/?file=1684715#file1684715line590>
> >
> >     It will be good to not add extra tokens in grammar as it increases the 
> > size of state machine. How about:
> >     
> >     
> >         KW_IS (a=KW_NOT)? KW_DISTINCT KW_FROM
> >         -> {$a !=null}? ^(EQUAL_NS)
> >         -> ^(KW_NOT EQUAL_NS)

I agree and I tried not to add new tokens but I couldn't figure out how to 
write grammar in such a way to avoid adding it. 

For is distinct from we want AST as follows
KW_NOT
  EQUAL_NS
    Expr1
    Expr2
  
isDistinctFrom rule is invoked from precedenceEqualOperator which is suppose to 
return an AST for operator. This AST is further used by 
precedenceEqualOperator's invoker to make an AST with returned AST as root and 
with two expression as it's children. So if isDistinctFrom return this AST
  KW_NOT
    EQUAL_NS
    
  invoker of precedenceEqualOperator will end up creating
  KW_NOT
   EQUAL_NS
   Expr1
   Expr2
   
  which is not what we want.
  
 Your above suggestion throws an exception while parsing FAILED: 
RewriteEmptyStreamException token KW_NOT.
 
 I am not sure why


- Vineet


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/58181/#review171125
-----------------------------------------------------------


On April 4, 2017, 11:05 p.m., Vineet Garg wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/58181/
> -----------------------------------------------------------
> 
> (Updated April 4, 2017, 11:05 p.m.)
> 
> 
> Review request for hive, Ashutosh Chauhan and Jesús Camacho Rodríguez.
> 
> 
> Bugs: HIVE-15986
>     https://issues.apache.org/jira/browse/HIVE-15986
> 
> 
> Repository: hive-git
> 
> 
> Description
> -------
> 
> This patch adds support for 'is distinct from' and 'is not distinct from'.
> 
> 
> Diffs
> -----
> 
>   itests/src/test/resources/testconfiguration.properties 7a70c9c 
>   ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java ccfb455 
>   
> ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/SqlFunctionConverter.java
>  85450c9 
>   ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g d98a663 
>   ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g 8c4ee8a 
>   ql/src/test/queries/clientpositive/is_distinct_from.q PRE-CREATION 
>   ql/src/test/results/clientpositive/llap/is_distinct_from.q.out PRE-CREATION 
> 
> 
> Diff: https://reviews.apache.org/r/58181/diff/2/
> 
> 
> Testing
> -------
> 
> Added new tests
> Pre-commit testing
> 
> 
> Thanks,
> 
> Vineet Garg
> 
>

Reply via email to