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)