hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Shelukhin" <ser...@hortonworks.com>
Subject Re: Review Request 25550: HIVE-8021 CBO: support CTAS and insert ... select
Date Thu, 23 Oct 2014 20:42:57 GMT


> On Oct. 23, 2014, 7:47 p.m., John Pullokkaran wrote:
> > ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java, line 9960
> > <https://reviews.apache.org/r/25550/diff/7/?file=728978#file728978line9960>
> >
> >     Seems like we could refactor the code here for ease of maintanence:
> >     1. Modify PreCboCtx to include error msg
> >     2. processStmtForCBO(PreCboCtx, qb)
> >     3. Move all of the logic below to #2
> >           // Note: for now, we don't actually pass the queryForCbo to CBO, because
it accepts qb, not
> >           //    AST, and can also access all the private stuff in SA. We rely on
the fact that CBO
> >           //    ignores the unknown tokens (create table, destination), so if the
query is otherwise ok,
> >           //    it is as if we did remove those and gave CBO the proper AST. That
is kinda hacky.
> >            queryForCbo = ast;
> >            if (cboCtx.type == PreCboCtx.Type.CTAS) {
> >              // nodeOfInterest is the query
> >              queryForCbo = cboCtx.nodeOfInterest;
> >            }
> >            int root = queryForCbo.getToken().getType();
> >            boolean isSupportedRoot =
> >                root == HiveParser.TOK_QUERY || root == HiveParser.TOK_EXPLAIN ||
qb.isCTAS();
> >            // Assumption: If top level QB is query then everything below it must
also be Query
> >            // Can there be an insert or CTAS that wouldn't
> >           //        be supported and would require additional checks similar to
IsQuery?
> >            boolean isSupportedType =
> >                qb.getIsQuery() || qb.isCTAS() || cboCtx.type == PreCboCtx.Type.INSERT;
> >            runCBO = runCBO && isSupportedRoot && isSupportedType
&& createVwDesc == null;
> >     
> >     .3 If PreCboCtx err msg is empty then check if CBO can handle Select Query
> >     rename canHandleQuery to canHandleSelectQuery

refactored all the checks into the method, and all the non-checks separately


- Sergey


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


On Oct. 22, 2014, 8:34 p.m., Sergey Shelukhin wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/25550/
> -----------------------------------------------------------
> 
> (Updated Oct. 22, 2014, 8:34 p.m.)
> 
> 
> Review request for hive, Ashutosh Chauhan and John Pullokkaran.
> 
> 
> Repository: hive-git
> 
> 
> Description
> -------
> 
> see JIRA
> 
> 
> Diffs
> -----
> 
>   ql/src/java/org/apache/hadoop/hive/ql/optimizer/index/RewriteParseContextGenerator.java
dee7d7e 
>   ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java 37cbf7f 
>   ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java 511103b 
>   ql/src/test/queries/clientpositive/cbo_correctness.q 4d8f156 
>   ql/src/test/queries/clientpositive/ctas_colname.q 5322626 
>   ql/src/test/queries/clientpositive/decimal_serde.q cf3a86c 
>   ql/src/test/queries/clientpositive/insert0.q PRE-CREATION 
>   ql/src/test/results/clientpositive/ctas_colname.q.out 97dacf6 
>   ql/src/test/results/clientpositive/decimal_serde.q.out e461c2e 
>   ql/src/test/results/clientpositive/insert0.q.out PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/25550/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Sergey Shelukhin
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message