> 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) > > Vineet Garg wrote: > 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
can u try KW_IS (a=KW_NOT)? KW_DISTINCT KW_FROM -> {$a !=null}? ^(EQUAL_NS) -> ^(KW_NOT ^EQUAL_NS) - pengcheng ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/58181/#review171125 ----------------------------------------------------------- On April 6, 2017, 8:02 p.m., Vineet Garg wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/58181/ > ----------------------------------------------------------- > > (Updated April 6, 2017, 8:02 p.m.) > > > Review request for hive, Ashutosh Chauhan, Jesús Camacho Rodríguez, and > Pengcheng Xu. > > > 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/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java > f979c14 > ql/src/test/queries/clientpositive/is_distinct_from.q PRE-CREATION > ql/src/test/results/clientpositive/llap/is_distinct_from.q.out PRE-CREATION > ql/src/test/results/clientpositive/show_functions.q.out 68e248a > ql/src/test/results/clientpositive/udf_equal.q.out 52bd843 > > > Diff: https://reviews.apache.org/r/58181/diff/4/ > > > Testing > ------- > > Added new tests > Pre-commit testing > > > Thanks, > > Vineet Garg > >