private boolean assertRelationNoExistence(Context context, String tableName) { String qualifiedName = guessTableName(context, tableName); if (catalog.existsTable(qualifiedName)) { context.state.addVerification(new DuplicateTableException(qualifiedName)); return false; } return true; }
private boolean assertRelationNoExistence(Context context, String tableName) { String qualifiedName = guessTableName(context, tableName); if (catalog.existsTable(qualifiedName)) { context.state.addVerification(new DuplicateTableException(qualifiedName)); return false; } return true; }
private boolean assertRelationExistence(Context context, String tableName) { String qualifiedName; if (IdentifierUtil.isFQTableName(tableName)) { qualifiedName = tableName; } else { qualifiedName = IdentifierUtil.buildFQName(context.queryContext.get(SessionVars.CURRENT_DATABASE), tableName); } if (!catalog.existsTable(qualifiedName)) { context.state.addVerification(new UndefinedTableException(qualifiedName)); return false; } return true; }
/** * Check if CTAS is already done * @param rootNode * @return */ private boolean checkIfCtasAlreadyDone(LogicalNode rootNode) { if (rootNode.getChild(0).getType() == NodeType.CREATE_TABLE) { CreateTableNode createTable = (CreateTableNode) rootNode.getChild(0); if (createTable.isIfNotExists() && catalog.existsTable(createTable.getTableName())) { return true; } } return false; }
private boolean assertRelationExistence(Context context, String tableName) { String qualifiedName; if (CatalogUtil.isFQTableName(tableName)) { qualifiedName = tableName; } else { qualifiedName = CatalogUtil.buildFQName(context.queryContext.get(SessionVars.CURRENT_DATABASE), tableName); } if (!catalog.existsTable(qualifiedName)) { context.state.addVerification(new UndefinedTableException(qualifiedName)); return false; } return true; }
/** * Check if CTAS is already done * @param rootNode * @return */ private boolean checkIfCtasAlreadyDone(LogicalNode rootNode) { if (rootNode.getChild(0).getType() == NodeType.CREATE_TABLE) { CreateTableNode createTable = (CreateTableNode) rootNode.getChild(0); if (createTable.isIfNotExists() && catalog.existsTable(createTable.getTableName())) { return true; } } return false; }
@Test public final void testFixedCharSelectWithNoLength() throws Exception { ResultSet res = executeFile("test1_nolength_ddl.sql"); res.close(); CatalogService catalog = testingCluster.getMaster().getCatalog(); assertTrue(catalog.existsTable(getCurrentDatabase(), "test1")); res = executeFile("testInsertIntoSelectWithFixedSizeCharWithNoLength.sql"); res.close(); //remove \0 String resultDatas = getTableFileContents("test1").replaceAll("\0",""); String expected = "a\n"; assertNotNull(resultDatas); assertEquals(expected.length(), resultDatas.length()); assertEquals(expected, resultDatas); executeString("DROP TABLE test1 PURGE"); }
@Test public final void testFixedCharSelect() throws Exception { ResultSet res = executeFile("test1_ddl.sql"); res.close(); CatalogService catalog = testingCluster.getMaster().getCatalog(); assertTrue(catalog.existsTable(getCurrentDatabase(), "test1")); res = executeFile("testInsertIntoSelectWithFixedSizeChar.sql"); res.close(); //remove \0 String resultDatas = getTableFileContents("test1").replaceAll("\0",""); String expected = "a\n" + "abc\n" + "abcde\n"; assertNotNull(resultDatas); assertEquals(expected.length(), resultDatas.length()); assertEquals(expected, resultDatas); executeString("DROP TABLE test1 PURGE"); } }
public final void testInsertOverwriteAllValues(String rawTableName, String query) throws Exception { String tableName = IdentifierUtil.normalizeIdentifier(rawTableName); ResultSet res = executeString("create table " + tableName +" (col1 int4, col2 float4, col3 text)"); res.close(); CatalogService catalog = testingCluster.getMaster().getCatalog(); assertTrue(catalog.existsTable(getCurrentDatabase(), tableName)); res = executeString(query); res.close(); TableDesc desc = catalog.getTableDesc(getCurrentDatabase(), tableName); if (!testingCluster.isHiveCatalogStoreRunning()) { assertEquals(1, desc.getStats().getNumRows().intValue()); } res = executeString("select * from " + tableName + ";"); assertTrue(res.next()); assertEquals(3, res.getMetaData().getColumnCount()); assertEquals(1, res.getInt(1)); assertEquals(2.1f, res.getFloat(2), 10); assertEquals("test", res.getString(3)); res.close(); executeString("DROP TABLE " + tableName + " PURGE"); }
@Test public final void testCreateAfterSelect() throws Exception { ResultSet res = testBase.execute( "create table orderkeys as select l_orderkey from lineitem"); res.close(); TajoTestingCluster cluster = testBase.getTestingCluster(); CatalogService catalog = cluster.getMaster().getCatalog(); assertTrue(catalog.existsTable(DEFAULT_DATABASE_NAME, "orderkeys")); TableDesc orderKeys = catalog.getTableDesc(DEFAULT_DATABASE_NAME, "orderkeys"); if (!cluster.isHiveCatalogStoreRunning()) { assertEquals(8, orderKeys.getStats().getNumRows().intValue()); } }
@Test public final void testInsertWithDifferentColumnOrder() throws Exception { ResultSet res = executeFile("nation_diff_col_order.ddl"); res.close(); CatalogService catalog = testingCluster.getMaster().getCatalog(); assertTrue(catalog.existsTable(getCurrentDatabase(), "nation_diff")); try { res = executeFile("testInsertWithDifferentColumnOrder.sql"); res.close(); res = executeString("select * from nation_diff"); assertResultSet(res); } finally { executeString("drop table nation_diff purge;"); } }
private void createColumnPartitionedTable() throws Exception { String tableName = IdentifierUtil.normalizeIdentifier("ColumnPartitionedTable"); ResultSet res = executeString( "create table " + tableName + " (col1 int4, col2 int4) partition by column(key float8) "); res.close(); assertTrue(catalog.existsTable(DEFAULT_DATABASE_NAME, tableName)); assertEquals(2, catalog.getTableDesc(DEFAULT_DATABASE_NAME, tableName).getSchema().size()); assertEquals(3, catalog.getTableDesc(DEFAULT_DATABASE_NAME, tableName).getLogicalSchema().size()); res = testBase.execute( "insert overwrite into " + tableName + " select l_orderkey, l_partkey, l_quantity from lineitem"); res.close(); }
@Test public final void testInsertOverwrite() throws Exception { ResultSet res = executeFile("table1_ddl.sql"); res.close(); CatalogService catalog = testingCluster.getMaster().getCatalog(); assertTrue(catalog.existsTable(getCurrentDatabase(), "table1")); res = executeFile("testInsertOverwrite.sql"); res.close(); TableDesc desc = catalog.getTableDesc(getCurrentDatabase(), "table1"); if (!testingCluster.isHiveCatalogStoreRunning()) { assertEquals(8, desc.getStats().getNumRows().intValue()); } executeString("DROP TABLE table1 PURGE"); }
@Test public final void testInsertOverwriteWithDatabase() throws Exception { ResultSet res = executeFile("table1_ddl.sql"); res.close(); CatalogService catalog = testingCluster.getMaster().getCatalog(); assertTrue(catalog.existsTable(getCurrentDatabase(), "table1")); res = executeQuery(); res.close(); TableDesc desc = catalog.getTableDesc(getCurrentDatabase(), "table1"); if (!testingCluster.isHiveCatalogStoreRunning()) { assertEquals(8, desc.getStats().getNumRows().intValue()); } executeString("DROP TABLE table1 PURGE"); }
@Test public final void testInsertOverwriteWithAsterisk() throws Exception { ResultSet res = executeFile("full_table_csv_ddl.sql"); res.close(); CatalogService catalog = testingCluster.getMaster().getCatalog(); assertTrue(catalog.existsTable(getCurrentDatabase(), "full_table_csv")); res = executeString("insert overwrite into full_table_csv select * from default.lineitem where l_orderkey = 3"); res.close(); TableDesc desc = catalog.getTableDesc(getCurrentDatabase(), "full_table_csv"); if (!testingCluster.isHiveCatalogStoreRunning()) { assertEquals(2, desc.getStats().getNumRows().intValue()); } executeString("DROP TABLE full_table_csv PURGE"); }
@Test public final void testInsertOverwriteCapitalTableName() throws Exception { String tableName = IdentifierUtil.normalizeIdentifier("testInsertOverwriteCapitalTableName"); ResultSet res = executeString("create table " + tableName + " as select * from default.lineitem"); res.close(); CatalogService catalog = testingCluster.getMaster().getCatalog(); assertTrue(catalog.existsTable(getCurrentDatabase(), tableName)); res = executeString("insert overwrite into " + tableName + " select * from default.lineitem where l_orderkey = 3"); res.close(); TableDesc desc = catalog.getTableDesc(getCurrentDatabase(), tableName); if (!testingCluster.isHiveCatalogStoreRunning()) { assertEquals(2, desc.getStats().getNumRows().intValue()); } executeString("DROP TABLE " + tableName + " PURGE"); }
@Test public final void testInsertOverwriteWithAsteriskAndMore() throws Exception { ResultSet res = executeFile("lineitem_year_month_ddl.sql"); res.close(); CatalogService catalog = testingCluster.getMaster().getCatalog(); assertTrue(catalog.existsTable(getCurrentDatabase(), "lineitem_year_month")); res = executeFile("load_to_lineitem_year_month.sql"); res.close(); TableDesc desc = catalog.getTableDesc(getCurrentDatabase(), "lineitem_year_month"); if (!testingCluster.isHiveCatalogStoreRunning()) { assertEquals(8, desc.getStats().getNumRows().intValue()); } res = executeQuery(); assertResultSet(res); res.close(); executeString("DROP TABLE lineitem_year_month PURGE"); }
@Test public final void testInsertOverwriteSmallerColumns() throws Exception { ResultSet res = executeFile("table1_ddl.sql"); res.close(); CatalogService catalog = testingCluster.getMaster().getCatalog(); assertTrue(catalog.existsTable(getCurrentDatabase(), "table1")); TableDesc originalDesc = catalog.getTableDesc(getCurrentDatabase(), "table1"); res = executeFile("testInsertOverwriteSmallerColumns.sql"); res.close(); TableDesc desc = catalog.getTableDesc(getCurrentDatabase(), "table1"); if (!testingCluster.isHiveCatalogStoreRunning()) { assertEquals(8, desc.getStats().getNumRows().intValue()); } assertEquals(originalDesc.getSchema(), desc.getSchema()); executeString("DROP TABLE table1 PURGE"); }
@Test public final void testColumnPartitionedTableWithSmallerExpressions1() throws Exception { ResultSet res = null; String tableName = IdentifierUtil.normalizeIdentifier("testColumnPartitionedTableWithSmallerExpressions1"); res = executeString( "create table " + tableName + " (col1 int4, col2 int4, null_col int4) partition by column(key float8) "); res.close(); assertTrue(catalog.existsTable(DEFAULT_DATABASE_NAME, tableName)); ClientProtos.SubmitQueryResponse response = client.executeQuery("insert overwrite into " + tableName + " select l_orderkey, l_partkey from lineitem"); assertTrue(ReturnStateUtil.isError(response.getState())); assertEquals(response.getState().getMessage(), "INSERT has smaller expressions than target columns"); res = executeFile("case14.sql"); assertResultSet(res, "case14.result"); res.close(); TableDesc desc = catalog.getTableDesc(DEFAULT_DATABASE_NAME, tableName); verifyPartitionDirectoryFromCatalog(DEFAULT_DATABASE_NAME, tableName, new String[]{"key"}, desc.getStats().getNumRows()); executeString("DROP TABLE " + tableName + " PURGE").close(); }
@Test public final void testInsertOverwriteWithAsteriskUsingParquet() throws Exception { if (!testingCluster.isHiveCatalogStoreRunning()) { ResultSet res = executeFile("full_table_parquet_ddl.sql"); res.close(); CatalogService catalog = testingCluster.getMaster().getCatalog(); assertTrue(catalog.existsTable(getCurrentDatabase(), "full_table_parquet")); res = executeString( "insert overwrite into full_table_parquet select * from default.lineitem where l_orderkey = 3"); res.close(); TableDesc desc = catalog.getTableDesc(getCurrentDatabase(), "full_table_parquet"); if (!testingCluster.isHiveCatalogStoreRunning()) { assertEquals(2, desc.getStats().getNumRows().intValue()); } res = executeString("select * from full_table_parquet;"); assertResultSet(res); res = executeString("select l_orderkey, l_partkey from full_table_parquet;"); assertResultSet(res, "testInsertOverwriteWithAsteriskUsingParquet2.result"); executeString("DROP TABLE full_table_parquet PURGE"); } }