@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); }
@Test public final void testGetFunctions() throws IOException, ServiceException, SQLException { Collection<FunctionDesc> catalogFunctions = cluster.getMaster().getCatalog().getFunctions(); String functionName = "sum"; int numFunctions = 0; for (FunctionDesc eachFunction : catalogFunctions) { if (functionName.equals(eachFunction.getSignature())) { numFunctions++; } } List<CatalogProtos.FunctionDescProto> functions = client.getFunctions(functionName); assertEquals(numFunctions, functions.size()); functions = client.getFunctions("notmatched"); assertEquals(0, functions.size()); functions = client.getFunctions(null); assertEquals(catalogFunctions.size(), functions.size()); }
@Test(timeout = 3000) public void testNonForwardQueryPause() throws Exception { final String sql = "select * from default.lineitem"; TajoCli cli = null; try { TableDesc tableDesc = cluster.getMaster().getCatalog().getTableDesc("default", "lineitem"); assertNotNull(tableDesc); assertEquals(0L, tableDesc.getStats().getNumRows().longValue()); InputStream testInput = new ByteArrayInputStream(new byte[] {(byte) DefaultTajoCliOutputFormatter.QUIT_COMMAND}); cli = new TajoCli(cluster.getConfiguration(), new String[] {}, testInput, out); setVar(cli, SessionVars.CLI_PAGE_ROWS, "2"); setVar(cli, SessionVars.CLI_FORMATTER_CLASS, TajoCliOutputTestFormatter.class.getName()); cli.executeScript(sql); String consoleResult; consoleResult = new String(out.toByteArray()); assertOutputResult(consoleResult); } finally { cli.close(); } }