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(SemanticAnalyzer.java:2046) > > at > > > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.parseJoinCondPopulateAlias(SemanticAnalyzer.java:2109) > > at > > > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.parseJoinCondPopulateAlias(SemanticAnalyzer.java:2185) > > at > > > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.parseJoinCondition(SemanticAnalyzer.java:2445) > > at > > > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.parseJoinCondition(SemanticAnalyzer.java:2386) > > at > > > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genJoinTree(SemanticAnalyzer.java:8192) > > at > > > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genJoinTree(SemanticAnalyzer.java:8131) > > at > > > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:9709) > > at > > > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:9636) > > at > > > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genOPTree(SemanticAnalyzer.java:10109) > > at > > > org.apache.hadoop.hive.ql.parse.CalcitePlanner.genOPTree(CalcitePlanner.java:329) > > at > > > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:10120) > > at > > > org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:211) > > at > > > org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.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) > > > > > > > > >