The stack below looks like a bug; Hive should support joins like these, or it should fail with a parse error, not an NPE. Can you open a JIRA?
On 16/2/4, 15:15, "Nicholas Hakobian" <nicholas.hakob...@rallyhealth.com> wrote: >I'm only aware of this: >https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Joins >but its unclear if it supports your syntax or not. > >Nicholas Szandor Hakobian >Data Scientist >Rally Health >nicholas.hakob...@rallyhealth.com > >On Thu, Feb 4, 2016 at 12:57 PM, Dave Nicodemus ><dave.nicode...@gmail.com> wrote: >> Thanks Nick, >> >> I did a few experiments and found that the version of the query below >>does >> work. So I'm not sure about your theory. Do you know if there is a >>document >> that spells out the exact accepted syntax ? >> >> SELECT COUNT(*) >> FROM (nation n INNER JOIN customer c ON n.n_nationkey = c.c_nationkey) >>INNER >> JOIN orders o ON c.c_custkey = o.o_custkey; >> >> >> >> >> On Thu, Feb 4, 2016 at 3:45 PM, Nicholas Hakobian >> <nicholas.hakob...@rallyhealth.com> wrote: >>> >>> I don't believe Hive supports that join format. Its expecting either a >>> table name or a subquery. If its a subquery, it usually requires it to >>> have a table name alias so it can be referenced in an outer statement. >>> >>> -Nick >>> >>> Nicholas Szandor Hakobian >>> Data Scientist >>> Rally Health >>> nicholas.hakob...@rallyhealth.com >>> >>> On Thu, Feb 4, 2016 at 11:28 AM, Dave Nicodemus >>> <dave.nicode...@gmail.com> wrote: >>> > Using hive 1.2.1.2.3 Connecting using JDBC, issuing the following >>>query >>> > : >>> > >>> > SELECT COUNT(*) >>> > FROM nation n >>> > INNER JOIN (customer c >>> > INNER JOIN orders o ON c.c_custkey = >>> > o.o_custkey) >>> > ON n.n_nationkey = c.c_nationkey; >>> > >>> > Generates the NPE and stack below. Fields are integer data type >>> > >>> > Does anyone know if this is a known issue and whether it's fixed >>> > someplace >>> > ? >>> > >>> > Thanks, >>> > Dave >>> > >>> > Stack >>> > -------- >>> > Caused by: java.lang.NullPointerExcEeption: Remote >>> > java.lang.NullPointerException: null >>> > >>> > at >>> > >>> > >>>org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.isPresent(SemanticAnaly >>>zer.java:2046) >>> > at >>> > >>> > >>>org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.parseJoinCondPopulateAl >>>ias(SemanticAnalyzer.java:2109) >>> > at >>> > >>> > >>>org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.parseJoinCondPopulateAl >>>ias(SemanticAnalyzer.java:2185) >>> > at >>> > >>> > >>>org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.parseJoinCondition(Sema >>>nticAnalyzer.java:2445) >>> > at >>> > >>> > >>>org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.parseJoinCondition(Sema >>>nticAnalyzer.java:2386) >>> > at >>> > >>> > >>>org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genJoinTree(SemanticAna >>>lyzer.java:8192) >>> > at >>> > >>> > >>>org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genJoinTree(SemanticAna >>>lyzer.java:8131) >>> > at >>> > >>> > >>>org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyze >>>r.java:9709) >>> > at >>> > >>> > >>>org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyze >>>r.java:9636) >>> > at >>> > >>> > >>>org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genOPTree(SemanticAnaly >>>zer.java:10109) >>> > at >>> > >>> > >>>org.apache.hadoop.hive.ql.parse.CalcitePlanner.genOPTree(CalcitePlanner. >>>java:329) >>> > at >>> > >>> > >>>org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(Semanti >>>cAnalyzer.java:10120) >>> > at >>> > >>> > >>>org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePl >>>anner.java:211) >>> > at >>> > >>> > >>>org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanti >>>cAnalyzer.java:227) >>> > at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:454) >>> > at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:314) >>> > at >>> > org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1164) >>> > at >>> > org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:1158) >>> > at >>> > >>> > >>>org.apache.hive.service.cli.operation.SQLOperation.prepare(SQLOperation. >>>java:110) >>> > >>> > >>> > >>> > >> >> >