@Test public void testDescTable() throws Exception { String tableName; if (cluster.isHiveCatalogStoreRunning()) { tableName = "TEST_DESC_TABLE".toLowerCase(); } else { tableName = "TEST_DESC_TABLE"; } String sql = "create table \"" + tableName + "\" (col1 int4, col2 int4);"; verifyDescTable(sql, tableName, "testDescTable.result"); }
@Test public void testDescTableForNestedSchema() throws Exception { String tableName; if (cluster.isHiveCatalogStoreRunning()) { tableName = "TEST_DESC_TABLE_NESTED".toLowerCase(); } else { tableName = "TEST_DESC_TABLE_NESTED"; } String sql = "create table \"" + tableName + "\" (col1 int4, col2 int4, col3 record (col4 record (col5 text)));"; verifyDescTable(sql, tableName, "testDescTableForNestedSchema.result"); }
@Test public final void testCtasWithColumnedPartition() throws Exception { ResultSet res = executeQuery(); res.close(); String tableName = CatalogUtil.normalizeIdentifier("testCtasWithColumnedPartition"); TajoTestingCluster cluster = testBase.getTestingCluster(); CatalogService catalog = cluster.getMaster().getCatalog(); TableDesc desc = catalog.getTableDesc(DEFAULT_DATABASE_NAME, tableName); assertTrue(catalog.existsTable(DEFAULT_DATABASE_NAME, tableName)); PartitionMethodDesc partitionDesc = desc.getPartitionMethod(); assertEquals(partitionDesc.getPartitionType(), CatalogProtos.PartitionType.COLUMN); assertEquals( "key", partitionDesc.getExpressionSchema().getRootColumns().get(0).getSimpleName()); FileSystem fs = FileSystem.get(cluster.getConfiguration()); Path path = new Path(desc.getUri()); assertTrue(fs.isDirectory(path)); assertTrue(fs.isDirectory(new Path(path.toUri() + "/key=17.0"))); assertTrue(fs.isDirectory(new Path(path.toUri() + "/key=36.0"))); assertTrue(fs.isDirectory(new Path(path.toUri() + "/key=38.0"))); assertTrue(fs.isDirectory(new Path(path.toUri() + "/key=45.0"))); assertTrue(fs.isDirectory(new Path(path.toUri() + "/key=49.0"))); if (!cluster.isHiveCatalogStoreRunning()) { assertEquals(5, desc.getStats().getNumRows().intValue()); } ResultSet res2 = executeFile("check2.sql"); Map<Double, int[]> resultRows1 = Maps.newHashMap(); resultRows1.put(45.0d, new int[] {3, 2}); resultRows1.put(38.0d, new int[] {2, 2}); int i = 0; while (res2.next()) { assertEquals(resultRows1.get(res2.getDouble(3))[0], res2.getInt(1)); assertEquals(resultRows1.get(res2.getDouble(3))[1], res2.getInt(2)); i++; } res2.close(); assertEquals(2, i); }
private void verifyDescTable(String sql, String tableName, String resultFileName) throws Exception { setVar(tajoCli, SessionVars.CLI_FORMATTER_CLASS, TajoCliOutputTestFormatter.class.getName()); tajoCli.executeScript(sql); tajoCli.executeMetaCommand("\\d " + tableName); tajoCli.executeMetaCommand("\\d \"" + tableName + "\""); String consoleResult = new String(out.toByteArray()); if (!cluster.isHiveCatalogStoreRunning()) { assertOutputResult( resultFileName, consoleResult, new String[] {"${table.path}"}, new String[] { TablespaceManager.getDefault().getTableUri("default", tableName).toString() }); } }
@Test public void testConnectDatabase() throws Exception { String databaseName; if (cluster.isHiveCatalogStoreRunning()) { databaseName = "TEST_CONNECTION_DATABASE".toLowerCase(); } else { databaseName = "TEST_CONNECTION_DATABASE"; } String sql = "create database \"" + databaseName + "\";"; tajoCli.executeScript(sql); tajoCli.executeMetaCommand("\\c " + databaseName); assertEquals(databaseName, tajoCli.getContext().getCurrentDatabase()); tajoCli.executeMetaCommand("\\c default"); assertEquals("default", tajoCli.getContext().getCurrentDatabase()); tajoCli.executeMetaCommand("\\c \"" + databaseName + "\""); assertEquals(databaseName, tajoCli.getContext().getCurrentDatabase()); }