[ 
https://issues.apache.org/jira/browse/HIVE-784?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13794530#comment-13794530
 ] 

Phabricator commented on HIVE-784:
----------------------------------

ashutoshc has requested changes to the revision "HIVE-784 [jira] Support 
uncorrelated subqueries in the WHERE clause".

  Design looks good. Mostly implementation related comments.

INLINE COMMENTS
  ql/src/java/org/apache/hadoop/hive/ql/parse/IdentifiersParser.g:391 It would 
be nicer if instead of two rules for IN / NOT IN if we could just have one 
rule, which can conditionally generate TOK_SUBQUERY_OP_NOTIN / 
TOK_SUBQUERY_OP_IN token. Not a big deal, but would be nice to have since that 
makes grammar bit more succinct.
  ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java:1804 You 
mentioned in comment above that we don't support nested / recursive subq, but I 
don't see a check for that. Perhaps, its there but I missed it.
  ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java:1789 Thanks 
for detailed comments. Very helpful!
  ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java:1811 There 
should exactly one subq currently. If so, will be good to add a note for it.
  ql/src/java/org/apache/hadoop/hive/ql/parse/SubQueryUtils.java:101 Since, OR 
is not supported, It will be good to generate an error message here if OR is 
encountered.
  ql/src/java/org/apache/hadoop/hive/ql/parse/SubQueryUtils.java:226-233 Same 
logic exists in SemanticAnalyzer::doPhase1GetAllAggregations, perhaps we can 
create a util method in ParseUtils, instead of repeating code here.
  ql/src/java/org/apache/hadoop/hive/ql/parse/QBSubQuery.java:289 If you mark 
this as transient, you probably wont need to write Kryo serializer for this.
  ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java:699 I dont think 
its required. We should probably mark all usage of instances of ASTNodeOrigin 
as transient.
  ql/src/java/org/apache/hadoop/hive/ql/parse/QBSubQuery.java:470 This should 
never be the case. Shall we throw an exception here, instead of silently 
returning?
  ql/src/java/org/apache/hadoop/hive/ql/parse/QBSubQuery.java:496 Is this 
allowed by standard that subq predicate may refer to Outer? If yes, than in 
future perhaps we can add this predicate as a conjunct for outer query.
  ql/src/java/org/apache/hadoop/hive/ql/parse/QBSubQuery.java:537 Is this need 
to be .equals() check here instead of == ?
  ql/src/java/org/apache/hadoop/hive/ql/parse/QBSubQuery.java:539 It will be 
good to add a comment, why we need to have True condition here, instead? 
Probably, because plan gen fails later while generating rest of filter plan.
  ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java:1821 Good 
to name this method as validateAndRewriteAST() ?
  ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java:6526 Quite 
a bit of this code is repeated from genJoinTree(), seems like atleast some bits 
could be refactored out of genJoinTree() which this method can make use of.
  ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java:1827 name 
sqOperator is misleading here, topOp perhaps ?
  ql/src/java/org/apache/hadoop/hive/ql/parse/QBSubQuery.java:41 This is not an 
operator in classic Hive sense. Perhaps, SubqASTcontainer or something else.
  ql/src/java/org/apache/hadoop/hive/ql/parse/QBSubQuery.java:24 SubQueryType 
instead of SubQueryOperatorType ?

REVISION DETAIL
  https://reviews.facebook.net/D13443

BRANCH
  SubQuery

ARCANIST PROJECT
  hive

To: JIRA, ashutoshc, hbutani


> Support uncorrelated subqueries in the WHERE clause
> ---------------------------------------------------
>
>                 Key: HIVE-784
>                 URL: https://issues.apache.org/jira/browse/HIVE-784
>             Project: Hive
>          Issue Type: New Feature
>          Components: Query Processor
>            Reporter: Ning Zhang
>            Assignee: Harish Butani
>         Attachments: D13443.1.patch, HIVE-784.1.patch.txt, HIVE-784.2.patch, 
> SubQuerySpec.pdf, tpchQueriesUsingSubQueryClauses.sql
>
>
> Hive currently only support views in the FROM-clause, some Facebook use cases 
> suggest that Hive should support subqueries such as those connected by 
> IN/EXISTS in the WHERE-clause. 



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to