/** * To query plan. * * @return the query plan * @throws UnsupportedEncodingException the unsupported encoding exception */ public QueryPlan toQueryPlan() throws UnsupportedEncodingException { return new QueryPlan(new ArrayList<>(tablesQueried), hasSubQuery, execMode != null ? execMode.name() : null, scanMode != null ? scanMode.name() : null, handle, URLEncoder.encode(getPlan(), "UTF-8"), new QueryCostTOBuilder(getCost()).build()); } }
/** * To query plan. * * @return the query plan * @throws UnsupportedEncodingException the unsupported encoding exception */ public QueryPlan toQueryPlan() throws UnsupportedEncodingException { return new QueryPlan(new ArrayList<>(tablesQueried), hasSubQuery, execMode != null ? execMode.name() : null, scanMode != null ? scanMode.name() : null, handle, URLEncoder.encode(getPlan(), "UTF-8"), new QueryCostTOBuilder(getCost()).build()); } }
/** * Test explain output. * * @throws Exception the exception */ @Test public void testExplainOutput() throws Exception { int handleSize = getHandleSize(); createTestTable("explain_test_1"); createTestTable("explain_test_2"); SessionState.setCurrentSessionState(ss); DriverQueryPlan plan = driver.explain(createExplainContext("SELECT explain_test_1.ID, count(1) FROM " + " explain_test_1 join explain_test_2 on explain_test_1.ID = explain_test_2.ID" + " WHERE explain_test_1.ID = 'foo' or explain_test_2.ID = 'bar'" + " GROUP BY explain_test_1.ID", queryConf)); assertHandleSize(handleSize); assertTrue(plan instanceof HiveQueryPlan); assertNotNull(plan.getTablesQueried()); assertEquals(plan.getTablesQueried().size(), 2); assertNotNull(plan.getTableWeights()); assertTrue(plan.getTableWeights().containsKey(dataBase + ".explain_test_1")); assertTrue(plan.getTableWeights().containsKey(dataBase + ".explain_test_2")); assertTrue(plan.getPlan() != null && !plan.getPlan().isEmpty()); driver.closeQuery(plan.getHandle()); }