hadoop-hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ning Zhang (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HIVE-924) Extract LogicalPlan and PhysicalPlan classes from SemanticAnalysis class
Date Tue, 01 Dec 2009 22:19:20 GMT

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

Ning Zhang commented on HIVE-924:

Yes, I can use that revision # to apply your patch.

The CTAS was originally added to DDLSemanticAnalyzer but due to some difficulties, we move
it to SemanticAnalyzer. The main reason is that the we need to analyze the select part first
to get the schema of the target table and the operator tree, and use that schema to change
the last moveTask and the metastore call to create the table. If we do it separately, the
DDLSemanticAnalyzer need to recursively call SemanticAnalyzer and workthrough the intermediate
result (operator tree) from the output of the SemanticAnalyzer to change the move task and
add the DDLTask, and then call the rest of SemanticAnalyzer to generate mapredWork. That makes
it more complex and error prone. I think with your refactoring SemanticAlayzer into LogicalPlan
and PhysicalPlan, it will make it easier for separating CTAS to DDLSemanticAnalyzer.  

> Extract LogicalPlan and PhysicalPlan classes from SemanticAnalysis class
> ------------------------------------------------------------------------
>                 Key: HIVE-924
>                 URL: https://issues.apache.org/jira/browse/HIVE-924
>             Project: Hadoop Hive
>          Issue Type: Bug
>          Components: Query Processor
>            Reporter: Carl Steinbach
>         Attachments: HIVE-924.patch
> Currently the SemanticAnalyzer class handles semantic analysis, as well as logical plan
generation and physical plan generation. I think it would be beneficial to extract distinct
LogicalPlan and PhysicalPlan classes from the SemanticAnalyzer, and have the query processing
phase be coordinated by a QueryCompiler class that would be responsible for triggering the
parsing, semantic analysis, logical plan generation, optimization, and physical plan generation
phases. This proposed reorganization of components would help to isolate the state of each
phase, and would also bring the source into closer alignment with the description of the query
compiler in the Hive design document on the wiki.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message