use of io.prestosql.testing.TestingMetadata in project hetu-core by openlookeng.
the class TestCachedSqlQueryExecution method testQueriesWithFunctionsOnChangedTable.
@Test
public void testQueriesWithFunctionsOnChangedTable() throws Exception {
setupWithExecutionPlanCacheEnabled(DEFAULT_SESSION);
TestingMetadata metadata = new TestingMetadata();
queryRunner.installPlugin(new TestPlugin(metadata));
queryRunner.createCatalog("test", "test");
SqlQueryManager manager = (SqlQueryManager) queryRunner.getCoordinator().getQueryManager();
String query1 = "CREATE TABLE orders AS SELECT ORDERKEY, CUSTKEY, TOTALPRICE FROM tpch.tiny.orders";
String query2 = "INSERT INTO orders SELECT * FROM orders";
String query3 = "SELECT SUM(TOTALPRICE) FROM orders WHERE TOTALPRICE > 1";
String query4 = "CREATE TABLE orders AS SELECT ORDERKEY, CUSTKEY, cast(TOTALPRICE as integer) AS TOTALPRICE, COMMENT FROM tpch.tiny.orders";
Plan plan1 = getPlan(query1, manager);
Plan plan2 = getPlan(query2, manager);
Plan plan3 = getPlan(query3, manager);
metadata.dropTable(DEFAULT_SESSION.toConnectorSession(), metadata.getTableHandle(DEFAULT_SESSION.toConnectorSession(), new SchemaTableName("default", "orders")));
Plan plan4 = getPlan(query4, manager);
Plan plan5 = getPlan(query3, manager);
assertNotNull(plan1);
assertNotNull(plan2);
assertNotNull(plan3);
assertNotNull(plan4);
// Predicate types are different
assertNotSame(plan3.getStatsAndCosts(), plan5.getStatsAndCosts());
}
use of io.prestosql.testing.TestingMetadata in project hetu-core by openlookeng.
the class TestCachedSqlQueryExecution method testAlteredColumnType.
@Test
public void testAlteredColumnType() throws Exception {
setupWithExecutionPlanCacheEnabled(DEFAULT_SESSION);
TestingMetadata metadata = new TestingMetadata();
queryRunner.installPlugin(new TestPlugin(metadata));
queryRunner.createCatalog("test", "test");
SqlQueryManager manager = (SqlQueryManager) queryRunner.getCoordinator().getQueryManager();
String query1 = "CREATE TABLE orders AS SELECT ORDERKEY, CUSTKEY, TOTALPRICE, COMMENT FROM tpch.tiny.orders";
String query2 = "INSERT INTO orders SELECT * FROM orders";
String query3 = "SELECT ORDERKEY, TOTALPRICE FROM orders";
Plan plan1 = getPlan(query1, manager);
Plan plan2 = getPlan(query2, manager);
Plan plan3 = getPlan(query3, manager);
metadata.dropTable(DEFAULT_SESSION.toConnectorSession(), metadata.getTableHandle(DEFAULT_SESSION.toConnectorSession(), new SchemaTableName("default", "orders")));
String query4 = "CREATE TABLE orders AS SELECT ORDERKEY, CUSTKEY, cast(TOTALPRICE as integer) AS TOTALPRICE, COMMENT FROM tpch.tiny.orders";
Plan plan4 = getPlan(query4, manager);
Plan plan5 = getPlan(query3, manager);
assertNotNull(plan1);
assertNotNull(plan2);
assertNotNull(plan3);
assertNotNull(plan4);
assertNotNull(plan5);
// new plan should not be the same as the old plan
assertNotSame(plan3.getStatsAndCosts(), plan5.getStatsAndCosts());
}
use of io.prestosql.testing.TestingMetadata in project hetu-core by openlookeng.
the class TestCachedSqlQueryExecution method testCreateTable.
@Test
public void testCreateTable() throws Exception {
setupWithExecutionPlanCacheEnabled(DEFAULT_SESSION);
TestingMetadata metadata = new TestingMetadata();
queryRunner.installPlugin(new TestPlugin(metadata));
queryRunner.createCatalog("test", "test");
SqlQueryManager manager = (SqlQueryManager) queryRunner.getCoordinator().getQueryManager();
String query1 = "CREATE TABLE nation AS SELECT * FROM tpch.tiny.nation";
String query2 = "SELECT * FROM nation";
String query3 = "SELECT * FROM tpch.tiny.nation";
String query4 = "SELECT COUNT(*) FROM tpch.tiny.orders";
Plan plan1 = getPlan(query1, manager);
Plan plan2 = getPlan(query2, manager);
Plan plan3 = getPlan(query3, manager);
Plan plan4 = getPlan(query4, manager);
assertNotNull(plan1);
assertNotNull(plan2);
assertNotNull(plan4);
assertNotSame(plan2.getStatsAndCosts(), plan3.getStatsAndCosts());
}
use of io.prestosql.testing.TestingMetadata in project hetu-core by openlookeng.
the class TestCachedSqlQueryExecution method testQueriesWithCurrentUserFunction.
@Test
public void testQueriesWithCurrentUserFunction() throws Exception {
setupWithExecutionPlanCacheEnabled(DEFAULT_SESSION);
TestingMetadata metadata = new TestingMetadata();
queryRunner.installPlugin(new TestPlugin(metadata));
queryRunner.createCatalog("test", "test");
SqlQueryManager manager = (SqlQueryManager) queryRunner.getCoordinator().getQueryManager();
String query1 = "SELECT CURRENT_USER";
Plan plan1 = getPlan(query1, manager);
setupWithExecutionPlanCacheEnabled(TPCH_SESSION);
TestingMetadata metadata2 = new TestingMetadata();
queryRunner.installPlugin(new TestPlugin(metadata2));
queryRunner.createCatalog("test", "test");
SqlQueryManager manager2 = (SqlQueryManager) queryRunner.getCoordinator().getQueryManager();
Plan plan2 = getPlan(query1, manager2);
assertNotNull(plan1);
assertNotNull(plan2);
// Should not have the same plan
assertNotSame(plan1.getStatsAndCosts(), plan2.getStatsAndCosts());
MaterializedResult rows1 = queryRunner.execute(DEFAULT_SESSION, query1);
MaterializedResult rows2 = queryRunner.execute(TPCH_SESSION, query1);
assertEquals(rows1.getRowCount(), rows2.getRowCount());
MaterializedRow row1 = Iterables.getOnlyElement(rows1);
MaterializedRow row2 = Iterables.getOnlyElement(rows2);
assertEquals(row1.getFieldCount(), row2.getFieldCount());
assertNotSame(row1.getFields(), row2.getFields());
}
use of io.prestosql.testing.TestingMetadata in project hetu-core by openlookeng.
the class TestCachedSqlQueryExecution method testRenamedColumn.
@Test
public void testRenamedColumn() throws Exception {
setupWithExecutionPlanCacheEnabled(DEFAULT_SESSION);
TestingMetadata metadata = new TestingMetadata();
queryRunner.installPlugin(new TestPlugin(metadata));
queryRunner.createCatalog("test", "test");
SqlQueryManager manager = (SqlQueryManager) queryRunner.getCoordinator().getQueryManager();
String query1 = "CREATE TABLE orders AS SELECT ORDERKEY, CUSTKEY, TOTALPRICE, COMMENT FROM tpch.tiny.orders";
String query2 = "INSERT INTO orders SELECT * FROM orders";
String query3 = "SELECT * FROM orders";
Plan plan1 = getPlan(query1, manager);
Plan plan2 = getPlan(query2, manager);
Plan plan3 = getPlan(query3, manager);
metadata.renameColumn(DEFAULT_SESSION.toConnectorSession(), metadata.getTableHandle(DEFAULT_SESSION.toConnectorSession(), new SchemaTableName("default", "orders")), new TestingMetadata.TestingColumnHandle("comment", 3, CharType.createCharType(256)), "comments");
Plan plan4 = getPlan(query3, manager);
assertNotNull(plan1);
assertNotNull(plan2);
assertNotNull(plan3);
assertNotNull(plan4);
// new plan should not be the same as the old plan
assertNotSame(plan3.getStatsAndCosts(), plan4.getStatsAndCosts());
}
Aggregations