Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
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:
if(num == 0) { //Schema only return new PlanFragment(null, schema, null); }
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 {
}
Attachments
Attachments
Issue Links
- causes
-
HIVE-21041 NPE, ParseException in getting schema from logical plan
- Closed
- links to