Teddy Choi created HIVE-20552:
---------------------------------

             Summary: Get Schema from LogicalPlan faster
                 Key: HIVE-20552
                 URL: https://issues.apache.org/jira/browse/HIVE-20552
             Project: Hive
          Issue Type: Test
            Reporter: Teddy Choi
            Assignee: Teddy Choi


To get the schema of a query faster, it currently needs to compile, optimize, 
and generate a TezPlan, which creates extra overhead when only the LogicalPlan 
is needed.

1. Copy the method \{{HiveMaterializedViewsRegistry.parseQuery}}, making it 
\{{public static}} and putting it in a utility class. 
2. Change the return statement of the method to \{{return 
analyzer.getResultSchema();}}
3. Change the return type of the method to \{{List<FieldSchema>}}
4. Call the new method from \{{GenericUDTFGetSplits.createPlanFragment}} 
replacing the current code which does this:
{code}
 if(num == 0) {
 //Schema only
 return new PlanFragment(null, schema, null);
 }
{code}
moving the call earlier in \{{getPlanFragment}} ... right after the HiveConf is 
created ... bypassing the code that uses \{{HiveTxnManager}} and \{{Driver}}.
5. Convert the \{{List<FieldSchema>}} to 
\{{org.apache.hadoop.hive.llap.Schema}}.
6. return from \{{getPlanFragment}} by returning \{{new PlanFragment(null, 
schema, null)}}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to