use of org.apache.drill.test.ClientFixture in project drill by apache.
the class TestConfigLinkage method testConfigOption.
/* Test if config option takes precedence if config option is not set */
@Test
public void testConfigOption() throws Exception {
ClusterFixtureBuilder builder = ClusterFixture.builder(dirTestWatcher).setOptionDefault(ExecConstants.SLICE_TARGET, 1000);
try (ClusterFixture cluster = builder.build();
ClientFixture client = cluster.clientFixture()) {
String slice_target = client.queryBuilder().sql("SELECT val FROM sys.%s where name='planner.slice_target' and optionScope = 'BOOT'", SystemTable.OPTIONS.getTableName()).singletonString();
assertEquals(slice_target, "1000");
}
}
use of org.apache.drill.test.ClientFixture in project drill by apache.
the class TestConfigLinkage method testScope.
/* Test if the scope is set during BOOT time and scope is actually BOOT */
@Test
public void testScope() throws Exception {
ClusterFixtureBuilder builder = ClusterFixture.bareBuilder(dirTestWatcher).setOptionDefault(ExecConstants.SLICE_TARGET, 100000);
try (ClusterFixture cluster = builder.build();
ClientFixture client = cluster.clientFixture()) {
String scope = client.queryBuilder().sql("SELECT optionScope from sys.%s where name='planner.slice_target'", SystemTable.OPTIONS.getTableName()).singletonString();
Assert.assertEquals("BOOT", scope);
}
}
use of org.apache.drill.test.ClientFixture in project drill by apache.
the class TestOrderedMuxExchange method testOrderedMuxForOrderBy.
/**
* Test case to verify the OrderedMuxExchange created for order by clause.
* It checks by forcing the plan to create OrderedMuxExchange and also verifies the
* output column is ordered.
*
* @throws Exception if anything goes wrong
*/
@Test
public void testOrderedMuxForOrderBy() throws Exception {
ClusterFixtureBuilder builder = ClusterFixture.builder(dirTestWatcher).maxParallelization(1).configProperty(ExecConstants.SYS_STORE_PROVIDER_LOCAL_ENABLE_WRITE, true);
try (ClusterFixture cluster = builder.build();
ClientFixture client = cluster.clientFixture()) {
client.alterSession(ExecConstants.SLICE_TARGET, 10);
String sql = "SELECT emp_id, emp_name FROM dfs.`empTable` e order BY emp_name, emp_id";
client.testBuilder().unOrdered().optionSettingQueriesForTestQuery("alter session set `planner.slice_target` = 10;").sqlQuery(sql).optionSettingQueriesForBaseline(// Use default option setting.
"alter session set `planner.enable_ordered_mux_exchange` = false").sqlBaselineQuery(sql).build().run();
client.alterSession(ExecConstants.ORDERED_MUX_EXCHANGE, true);
String explainText = client.queryBuilder().sql(sql).explainText();
assertTrue(explainText.contains(ORDERED_MUX_EXCHANGE));
}
}
use of org.apache.drill.test.ClientFixture in project drill by apache.
the class TestOrderedMuxExchange method testOrderedMuxForWindowAgg.
/**
* Test case to verify the OrderedMuxExchange created for window functions.
* It checks by forcing the plan to create OrderedMuxExchange and also verifies the
* output column is ordered.
*
* @throws Exception if anything goes wrong
*/
@Test
public void testOrderedMuxForWindowAgg() throws Exception {
ClusterFixtureBuilder builder = ClusterFixture.builder(dirTestWatcher).maxParallelization(1).configProperty(ExecConstants.SYS_STORE_PROVIDER_LOCAL_ENABLE_WRITE, true);
try (ClusterFixture cluster = builder.build();
ClientFixture client = cluster.clientFixture()) {
client.alterSession(ExecConstants.SLICE_TARGET, 10);
String sql = "SELECT emp_name, max(emp_id) over (order by emp_name) FROM dfs.`empTable` e order BY emp_name";
client.testBuilder().unOrdered().optionSettingQueriesForTestQuery("alter session set `planner.slice_target` = 10;").sqlQuery(sql).optionSettingQueriesForBaseline(// Use default option setting.
"alter session set `planner.enable_ordered_mux_exchange` = false").sqlBaselineQuery(sql).build().run();
client.alterSession(ExecConstants.ORDERED_MUX_EXCHANGE, true);
String explainText = client.queryBuilder().sql(sql).explainText();
assertTrue(explainText.contains(ORDERED_MUX_EXCHANGE));
}
}
use of org.apache.drill.test.ClientFixture in project drill by apache.
the class TestOrderedMuxExchange method testLimitOnOrderedMuxWindow.
/**
* Test case to verify the OrderedMuxExchange created for order by with limit and window agg.
* It checks that the limit is pushed down the OrderedMuxExchange.
*
* @throws Exception if anything goes wrong
*/
@Test
public void testLimitOnOrderedMuxWindow() throws Exception {
ClusterFixtureBuilder builder = ClusterFixture.builder(dirTestWatcher).maxParallelization(1).configProperty(ExecConstants.SYS_STORE_PROVIDER_LOCAL_ENABLE_WRITE, true);
try (ClusterFixture cluster = builder.build();
ClientFixture client = cluster.clientFixture()) {
client.alterSession(ExecConstants.SLICE_TARGET, 10);
String sql = "SELECT emp_name, max(emp_id) over (order by emp_name) FROM dfs.`empTable` e order BY emp_name limit 10";
client.testBuilder().unOrdered().optionSettingQueriesForTestQuery("alter session set `planner.slice_target` = 10;").sqlQuery(sql).optionSettingQueriesForBaseline(// Use default option setting.
"alter session set `planner.enable_ordered_mux_exchange` = false").sqlBaselineQuery(sql).build().run();
client.alterSession(ExecConstants.ORDERED_MUX_EXCHANGE, true);
String explainText = client.queryBuilder().sql(sql).explainText();
assertTrue(explainText.matches(String.format(MATCH_PATTERN_ACROSS_LINES + "%s" + MATCH_PATTERN_ACROSS_LINES + "%s" + MATCH_PATTERN_ACROSS_LINES, ORDERED_MUX_EXCHANGE, TOPN)));
}
}
Aggregations