Repository: tajo Updated Branches: refs/heads/master 3035b0143 -> 4564c37fa
TAJO-1887: Disable the alter table add partition statement temporarily. Closes #785 Project: http://git-wip-us.apache.org/repos/asf/tajo/repo Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/4564c37f Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/4564c37f Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/4564c37f Branch: refs/heads/master Commit: 4564c37fa7a54888424134d75ec06adcbb8c10c0 Parents: 3035b01 Author: JaeHwa Jung <[email protected]> Authored: Tue Sep 29 23:07:52 2015 +0900 Committer: JaeHwa Jung <[email protected]> Committed: Tue Sep 29 23:07:52 2015 +0900 ---------------------------------------------------------------------- CHANGES | 3 ++ .../tajo/catalog/AbstractCatalogClient.java | 3 +- .../org/apache/tajo/catalog/CatalogService.java | 10 +++- .../catalog/store/TestHiveCatalogStore.java | 2 +- .../org/apache/tajo/catalog/CatalogServer.java | 7 ++- .../org/apache/tajo/catalog/TestCatalog.java | 2 +- .../TestCatalogAgainstCaseSensitivity.java | 2 +- .../tajo/catalog/TestCatalogExceptions.java | 56 ++++++++++++-------- .../org/apache/tajo/cli/tools/TajoDump.java | 12 +++-- .../apache/tajo/exception/ReturnStateUtil.java | 5 ++ .../org/apache/tajo/cli/tools/TestTajoDump.java | 11 ++-- .../org/apache/tajo/cli/tsql/TestTajoCli.java | 12 +++++ .../tajo/engine/planner/TestLogicalPlanner.java | 2 +- .../tajo/engine/query/TestAlterTable.java | 2 +- .../apache/tajo/parser/sql/TestSQLAnalyzer.java | 7 ++- ...stAddPartitionNotimplementedException.result | 2 + .../TestTajoDump/testPartitionsDump.result | 5 +- .../main/sphinx/sql_language/alter_table.rst | 16 ------ .../java/org/apache/tajo/jdbc/TestTajoJdbc.java | 3 +- .../plan/verifier/PreLogicalPlanVerifier.java | 10 ++++ 20 files changed, 111 insertions(+), 61 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/4564c37f/CHANGES ---------------------------------------------------------------------- diff --git a/CHANGES b/CHANGES index 431812d..ed11b5f 100644 --- a/CHANGES +++ b/CHANGES @@ -703,6 +703,9 @@ Release 0.11.0 - unreleased SUB TASKS + TAJO-1887: Disable the alter table add partition statement temporarily. + (jaehwa) + TAJO-1493: Make partition pruning based on catalog informations. (jaehwa) TAJO-1673: Implement recover partitions. (jaehwa) http://git-wip-us.apache.org/repos/asf/tajo/blob/4564c37f/tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java ---------------------------------------------------------------------- diff --git a/tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java b/tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java index 38e02ae..be6fe65 100644 --- a/tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java +++ b/tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java @@ -921,7 +921,7 @@ public abstract class AbstractCatalogClient implements CatalogService, Closeable public final void alterTable(final AlterTableDesc desc) throws DuplicateDatabaseException, DuplicateTableException, DuplicateColumnException, DuplicatePartitionException, UndefinedDatabaseException, UndefinedTableException, UndefinedColumnException, UndefinedPartitionMethodException, - InsufficientPrivilegeException, UndefinedPartitionException { + InsufficientPrivilegeException, UndefinedPartitionException, NotImplementedException { try { final BlockingInterface stub = getStub(); @@ -936,6 +936,7 @@ public abstract class AbstractCatalogClient implements CatalogService, Closeable throwsIfThisError(state, UndefinedPartitionException.class); throwsIfThisError(state, UndefinedPartitionMethodException.class); throwsIfThisError(state, InsufficientPrivilegeException.class); + throwsIfThisError(state, NotImplementedException.class); ensureOk(state); } catch (ServiceException e) { http://git-wip-us.apache.org/repos/asf/tajo/blob/4564c37f/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogService.java ---------------------------------------------------------------------- diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogService.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogService.java index 2140b49..54d22e7 100644 --- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogService.java +++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogService.java @@ -228,11 +228,18 @@ public interface CatalogService { /** * Add a table via table description * + * @param desc * @throws DuplicateColumnException * @throws DuplicateTableException * @throws InsufficientPrivilegeException * @throws UndefinedColumnException * @throws UndefinedTableException + * @throws DuplicateDatabaseException + * @throws DuplicatePartitionException + * @throws UndefinedDatabaseException + * @throws UndefinedPartitionMethodException + * @throws UndefinedPartitionException + * @throws NotImplementedException * * @see AlterTableDesc */ @@ -246,7 +253,8 @@ public interface CatalogService { DuplicatePartitionException, UndefinedDatabaseException, UndefinedPartitionMethodException, - UndefinedPartitionException; + UndefinedPartitionException, + NotImplementedException; void updateTableStats(UpdateTableStatsProto stats) throws UndefinedTableException, InsufficientPrivilegeException; } http://git-wip-us.apache.org/repos/asf/tajo/blob/4564c37f/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/test/java/org/apache/tajo/catalog/store/TestHiveCatalogStore.java ---------------------------------------------------------------------- diff --git a/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/test/java/org/apache/tajo/catalog/store/TestHiveCatalogStore.java b/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/test/java/org/apache/tajo/catalog/store/TestHiveCatalogStore.java index f28eb21..3c2c6c1 100644 --- a/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/test/java/org/apache/tajo/catalog/store/TestHiveCatalogStore.java +++ b/tajo-catalog/tajo-catalog-drivers/tajo-hive/src/test/java/org/apache/tajo/catalog/store/TestHiveCatalogStore.java @@ -219,7 +219,7 @@ public class TestHiveCatalogStore { } - @Test + // TODO: This should be added at TAJO-1891 public void testAddTableByPartition() throws Exception { TableMeta meta = new TableMeta("TEXT", new KeyValueSet()); http://git-wip-us.apache.org/repos/asf/tajo/blob/4564c37f/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java ---------------------------------------------------------------------- diff --git a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java index 50f2c4a..40d9d46 100644 --- a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java +++ b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java @@ -459,7 +459,12 @@ public class CatalogServer extends AbstractService { if (metaDictionary.isSystemDatabase(split[0])) { return errInsufficientPrivilege("alter a table in database '" + split[0] + "'"); } - + + // TODO: This should be removed at TAJO-1891 + if (proto.getAlterTableType() == CatalogProtos.AlterTableType.ADD_PARTITION) { + return errFeatureNotImplemented("ADD PARTTIION"); + } + wlock.lock(); try { http://git-wip-us.apache.org/repos/asf/tajo/blob/4564c37f/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java ---------------------------------------------------------------------- diff --git a/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java index 36f98cf..606f39a 100644 --- a/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java +++ b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalog.java @@ -777,7 +777,7 @@ public class TestCatalog { assertFalse(catalog.existsTable(tableName)); } - @Test + // TODO: This should be added at TAJO-1891 public final void testAddAndDeleteTablePartitionByColumn() throws Exception { Schema schema = new Schema(); schema.addColumn("id", Type.INT4) http://git-wip-us.apache.org/repos/asf/tajo/blob/4564c37f/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogAgainstCaseSensitivity.java ---------------------------------------------------------------------- diff --git a/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogAgainstCaseSensitivity.java b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogAgainstCaseSensitivity.java index 794ae4a..58ec3fc 100644 --- a/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogAgainstCaseSensitivity.java +++ b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogAgainstCaseSensitivity.java @@ -145,7 +145,7 @@ public class TestCatalogAgainstCaseSensitivity { assertEquals(5000, stats.getNumRows().longValue()); } - @Test + // TODO: This should be added at TAJO-1891 public void testTablePartition() throws Exception { ////////////////////////////////////////////////////////////////////////////// // Test add partition http://git-wip-us.apache.org/repos/asf/tajo/blob/4564c37f/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogExceptions.java ---------------------------------------------------------------------- diff --git a/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogExceptions.java b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogExceptions.java index 6586cec..5d40656 100644 --- a/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogExceptions.java +++ b/tajo-catalog/tajo-catalog-server/src/test/java/org/apache/tajo/catalog/TestCatalogExceptions.java @@ -79,11 +79,11 @@ public class TestCatalogExceptions { @Test(expected = TajoInternalError.class) public void testAlterTablespaceWithWrongUri() throws Exception { catalog.alterTablespace(AlterTablespaceProto.newBuilder(). - setSpaceName("space1"). - addCommand( - AlterTablespaceCommand.newBuilder(). - setType(AlterTablespaceType.LOCATION). - setLocation("hdfs:")).build()); + setSpaceName("space1"). + addCommand( + AlterTablespaceCommand.newBuilder(). + setType(AlterTablespaceType.LOCATION). + setLocation("hdfs:")).build()); } @Test(expected = UndefinedTablespaceException.class) @@ -121,11 +121,11 @@ public class TestCatalogExceptions { schema.addColumn(CatalogUtil.buildFQName(tableName, "cOlumn"), Type.INT8); Path path = new Path(CommonTestingUtil.getTestDir(), tableName); catalog.createTable( - new TableDesc( - CatalogUtil.buildFQName("TestDatabase1", tableName), - schema, - new TableMeta("TEXT", new KeyValueSet()), - path.toUri(), true)); + new TableDesc( + CatalogUtil.buildFQName("TestDatabase1", tableName), + schema, + new TableMeta("TEXT", new KeyValueSet()), + path.toUri(), true)); } @Test(expected = DuplicateTableException.class) @@ -147,17 +147,17 @@ public class TestCatalogExceptions { @Test(expected = UndefinedTableException.class) public void testUpdateTableStatsOfUndefinedTable() throws Exception { catalog.updateTableStats( - UpdateTableStatsProto.newBuilder(). - setTableName(CatalogUtil.buildFQName("TestDatabase1", "undefined")). - setStats( - TableStatsProto.newBuilder(). - setNumRows(0). - setNumBytes(0). - build()). - build()); + UpdateTableStatsProto.newBuilder(). + setTableName(CatalogUtil.buildFQName("TestDatabase1", "undefined")). + setStats( + TableStatsProto.newBuilder(). + setNumRows(0). + setNumBytes(0). + build()). + build()); } - @Test + // TODO: This should be added at TAJO-1891 public void testAddPartitionWithWrongUri() throws Exception { // TODO: currently, wrong uri does not occur any exception. String partitionName = "DaTe=/=AaA"; @@ -171,7 +171,7 @@ public class TestCatalogExceptions { catalog.alterTable(alterTableDesc); } - @Test(expected = DuplicatePartitionException.class) + // TODO: This should be added at TAJO-1891 public void testAddDuplicatePartition() throws Exception { String partitionName = "DaTe=bBb/dAtE=AaA"; PartitionDesc partitionDesc = CatalogTestingUtil.buildPartitionDesc(partitionName); @@ -194,7 +194,7 @@ public class TestCatalogExceptions { catalog.alterTable(alterTableDesc); } - @Test(expected = UndefinedTableException.class) + // TODO: This should be added at TAJO-1891 public void testAddPartitionToUndefinedTable() throws Exception { String partitionName = "DaTe=bBb/dAtE=AaA"; PartitionDesc partitionDesc = CatalogTestingUtil.buildPartitionDesc(partitionName); @@ -207,6 +207,20 @@ public class TestCatalogExceptions { catalog.alterTable(alterTableDesc); } + // TODO: This should be removed at TAJO-1891 + @Test(expected = NotImplementedException.class) + public void testAddPartitionNotimplementedException() throws Exception { + String partitionName = "DaTe=/=AaA"; + PartitionDesc partitionDesc = CatalogTestingUtil.buildPartitionDesc(partitionName); + + AlterTableDesc alterTableDesc = new AlterTableDesc(); + alterTableDesc.setTableName(CatalogUtil.buildFQName("TestDatabase1", "TestPartition1")); + alterTableDesc.setPartitionDesc(partitionDesc); + alterTableDesc.setAlterTableType(AlterTableType.ADD_PARTITION); + + catalog.alterTable(alterTableDesc); + } + @Test(expected = UndefinedPartitionException.class) public void testDropUndefinedPartition() throws Exception { String partitionName = "DaTe=undefined/dAtE=undefined"; http://git-wip-us.apache.org/repos/asf/tajo/blob/4564c37f/tajo-cli/src/main/java/org/apache/tajo/cli/tools/TajoDump.java ---------------------------------------------------------------------- diff --git a/tajo-cli/src/main/java/org/apache/tajo/cli/tools/TajoDump.java b/tajo-cli/src/main/java/org/apache/tajo/cli/tools/TajoDump.java index 43ebeb0..3204a88 100644 --- a/tajo-cli/src/main/java/org/apache/tajo/cli/tools/TajoDump.java +++ b/tajo-cli/src/main/java/org/apache/tajo/cli/tools/TajoDump.java @@ -191,10 +191,14 @@ public class TajoDump { writer.write("--\n"); writer.write(String.format("-- Table Partitions: %s%n", tableName)); writer.write("--\n"); - List<PartitionDescProto> partitionProtos = client.getPartitionsOfTable(fqName); - for (PartitionDescProto eachPartitionProto : partitionProtos) { - writer.write(DDLBuilder.buildDDLForAddPartition(table, eachPartitionProto)); - } + // TODO: This should be improved at TAJO-1891 +// List<PartitionDescProto> partitionProtos = client.getPartitionsOfTable(fqName); +// for (PartitionDescProto eachPartitionProto : partitionProtos) { +// writer.write(DDLBuilder.buildDDLForAddPartition(table, eachPartitionProto)); +// } + writer.write(String.format("ALTER TABLE %s REPAIR PARTITION", + CatalogUtil.denormalizeIdentifier(databaseName) + "." + CatalogUtil.denormalizeIdentifier(tableName))); + writer.write("\n\n"); } http://git-wip-us.apache.org/repos/asf/tajo/blob/4564c37f/tajo-common/src/main/java/org/apache/tajo/exception/ReturnStateUtil.java ---------------------------------------------------------------------- diff --git a/tajo-common/src/main/java/org/apache/tajo/exception/ReturnStateUtil.java b/tajo-common/src/main/java/org/apache/tajo/exception/ReturnStateUtil.java index cf98f37..3257f46 100644 --- a/tajo-common/src/main/java/org/apache/tajo/exception/ReturnStateUtil.java +++ b/tajo-common/src/main/java/org/apache/tajo/exception/ReturnStateUtil.java @@ -201,4 +201,9 @@ public class ReturnStateUtil { public static ReturnState errDuplicateFunction(String signature) { return returnError(ResultCode.DUPLICATE_FUNCTION, signature); } + + public static ReturnState errFeatureNotImplemented(String feature) { + return returnError(ResultCode.NOT_IMPLEMENTED, feature); + } + } http://git-wip-us.apache.org/repos/asf/tajo/blob/4564c37f/tajo-core-tests/src/test/java/org/apache/tajo/cli/tools/TestTajoDump.java ---------------------------------------------------------------------- diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/cli/tools/TestTajoDump.java b/tajo-core-tests/src/test/java/org/apache/tajo/cli/tools/TestTajoDump.java index 365aca6..13936e6 100644 --- a/tajo-core-tests/src/test/java/org/apache/tajo/cli/tools/TestTajoDump.java +++ b/tajo-core-tests/src/test/java/org/apache/tajo/cli/tools/TestTajoDump.java @@ -113,17 +113,16 @@ public class TestTajoDump extends QueryTestCaseBase { + " partition by column(\"col3\" int4, \"col4\" int4)" ); - executeString("ALTER TABLE \"" + getCurrentDatabase() + "\".\"TableName3\"" + - " ADD PARTITION (\"col3\" = 1 , \"col4\" = 2)"); - + // TODO: This should be improved at TAJO-1891 +// executeString("ALTER TABLE \"" + getCurrentDatabase() + "\".\"TableName3\"" + +// " ADD PARTITION (\"col3\" = 1 , \"col4\" = 2)"); +// executeString("ALTER TABLE \"" + getCurrentDatabase() + "\".\"TableName4\"" + +// " ADD PARTITION (\"col3\" = 'tajo' , \"col4\" = '2015-09-01')"); executeString("create table \"" + getCurrentDatabase() + "\".\"TableName4\"" + " (\"col1\" int4, \"col2\" int4) " + " partition by column(\"col3\" TEXT, \"col4\" date)" ); - executeString("ALTER TABLE \"" + getCurrentDatabase() + "\".\"TableName4\"" + - " ADD PARTITION (\"col3\" = 'tajo' , \"col4\" = '2015-09-01')"); - try { UserRoleInfo userInfo = UserRoleInfo.getCurrentUser(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); http://git-wip-us.apache.org/repos/asf/tajo/blob/4564c37f/tajo-core-tests/src/test/java/org/apache/tajo/cli/tsql/TestTajoCli.java ---------------------------------------------------------------------- diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/cli/tsql/TestTajoCli.java b/tajo-core-tests/src/test/java/org/apache/tajo/cli/tsql/TestTajoCli.java index da51aed..f265e55 100644 --- a/tajo-core-tests/src/test/java/org/apache/tajo/cli/tsql/TestTajoCli.java +++ b/tajo-core-tests/src/test/java/org/apache/tajo/cli/tsql/TestTajoCli.java @@ -473,7 +473,19 @@ public class TestTajoCli { } } + // TODO: This should be removed at TAJO-1891 @Test + public void testAddPartitionNotimplementedException() throws Exception { + String tableName = CatalogUtil.normalizeIdentifier("testAddPartitionNotimplementedException"); + tajoCli.executeScript("create table " + tableName + " (col1 int4, col2 int4) partition by column(key float8)"); + tajoCli.executeScript("alter table " + tableName + " add partition (key2 = 0.1)"); + + String consoleResult; + consoleResult = new String(out.toByteArray()); + assertOutputResult(consoleResult); + } + + // TODO: This should be added at TAJO-1891 public void testAlterTableAddDropPartition() throws Exception { String tableName = CatalogUtil.normalizeIdentifier("testAlterTableAddPartition"); http://git-wip-us.apache.org/repos/asf/tajo/blob/4564c37f/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java ---------------------------------------------------------------------- diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java index 5a0bd94..3e99143 100644 --- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java +++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java @@ -1286,7 +1286,7 @@ public class TestLogicalPlanner { "ALTER TABLE partitioned_table DROP PARTITION (col1 = '2015' , col2 = '01', col3 = '11' )", //1 }; - @Test + // TODO: This should be added at TAJO-1891 public final void testAddPartitionAndDropPartition() throws TajoException { String tableName = CatalogUtil.normalizeIdentifier("partitioned_table"); String qualifiedTableName = CatalogUtil.buildFQName(DEFAULT_DATABASE_NAME, tableName); http://git-wip-us.apache.org/repos/asf/tajo/blob/4564c37f/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestAlterTable.java ---------------------------------------------------------------------- diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestAlterTable.java b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestAlterTable.java index 6262a7a..9a30012 100644 --- a/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestAlterTable.java +++ b/tajo-core-tests/src/test/java/org/apache/tajo/engine/query/TestAlterTable.java @@ -75,7 +75,7 @@ public class TestAlterTable extends QueryTestCaseBase { cleanupQuery(after_res); } - @Test + // TODO: This should be added at TAJO-1891 public final void testAlterTableAddPartition() throws Exception { executeDDL("create_partitioned_table.sql", null); http://git-wip-us.apache.org/repos/asf/tajo/blob/4564c37f/tajo-core-tests/src/test/java/org/apache/tajo/parser/sql/TestSQLAnalyzer.java ---------------------------------------------------------------------- diff --git a/tajo-core-tests/src/test/java/org/apache/tajo/parser/sql/TestSQLAnalyzer.java b/tajo-core-tests/src/test/java/org/apache/tajo/parser/sql/TestSQLAnalyzer.java index 3a577e8..e2968a8 100644 --- a/tajo-core-tests/src/test/java/org/apache/tajo/parser/sql/TestSQLAnalyzer.java +++ b/tajo-core-tests/src/test/java/org/apache/tajo/parser/sql/TestSQLAnalyzer.java @@ -75,7 +75,12 @@ public class TestSQLAnalyzer { new Predicate<FileStatus>() { @Override public boolean apply(@Nullable FileStatus input) { - return input.isFile(); + // TODO: This should be removed at TAJO-1891 + if (input.getPath().getName().indexOf("add_partition") > -1) { + return false; + } else { + return input.isFile(); + } } } ); http://git-wip-us.apache.org/repos/asf/tajo/blob/4564c37f/tajo-core-tests/src/test/resources/results/TestTajoCli/testAddPartitionNotimplementedException.result ---------------------------------------------------------------------- diff --git a/tajo-core-tests/src/test/resources/results/TestTajoCli/testAddPartitionNotimplementedException.result b/tajo-core-tests/src/test/resources/results/TestTajoCli/testAddPartitionNotimplementedException.result new file mode 100644 index 0000000..4aab8c8 --- /dev/null +++ b/tajo-core-tests/src/test/resources/results/TestTajoCli/testAddPartitionNotimplementedException.result @@ -0,0 +1,2 @@ +OK +ERROR: not implemented feature: ADD PARTITION \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tajo/blob/4564c37f/tajo-core-tests/src/test/resources/results/TestTajoDump/testPartitionsDump.result ---------------------------------------------------------------------- diff --git a/tajo-core-tests/src/test/resources/results/TestTajoDump/testPartitionsDump.result b/tajo-core-tests/src/test/resources/results/TestTajoDump/testPartitionsDump.result index 696bb19..d678f89 100644 --- a/tajo-core-tests/src/test/resources/results/TestTajoDump/testPartitionsDump.result +++ b/tajo-core-tests/src/test/resources/results/TestTajoDump/testPartitionsDump.result @@ -17,8 +17,7 @@ CREATE TABLE "TestTajoDump"."TableName3" (col1 INT4, col2 INT4) USING TEXT WITH -- -- Table Partitions: TableName3 -- -ALTER TABLE "TestTajoDump"."TableName3" ADD IF NOT EXISTS PARTITION (col3=1,col4=2) LOCATION '${partition.path1}/col3=1/col4=2'; - +ALTER TABLE "TestTajoDump"."TableName3" REPAIR PARTITION @@ -30,4 +29,4 @@ CREATE TABLE "TestTajoDump"."TableName4" (col1 INT4, col2 INT4) USING TEXT WITH -- -- Table Partitions: TableName4 -- -ALTER TABLE "TestTajoDump"."TableName4" ADD IF NOT EXISTS PARTITION (col3='tajo',col4='2015-09-01') LOCATION '${partition.path2}/col3=tajo/col4=2015-09-01'; \ No newline at end of file +ALTER TABLE "TestTajoDump"."TableName4" REPAIR PARTITION \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tajo/blob/4564c37f/tajo-docs/src/main/sphinx/sql_language/alter_table.rst ---------------------------------------------------------------------- diff --git a/tajo-docs/src/main/sphinx/sql_language/alter_table.rst b/tajo-docs/src/main/sphinx/sql_language/alter_table.rst index 959ebcc..47e7492 100644 --- a/tajo-docs/src/main/sphinx/sql_language/alter_table.rst +++ b/tajo-docs/src/main/sphinx/sql_language/alter_table.rst @@ -66,22 +66,6 @@ SET PROPERTY This statement will allow users to change a table property. ======================== -ADD PARTITION -======================== - -*Synopsis* - -.. code-block:: sql - - ALTER TABLE <table_name> [IF NOT EXISTS] ADD PARTITION (<partition column> = <partition value>, ...) [LOCATION = <partition's path>] - - For example: - ALTER TABLE table1 ADD PARTITION (col1 = 1 , col2 = 2) - ALTER TABLE table1 ADD PARTITION (col1 = 1 , col2 = 2) LOCATION 'hdfs://xxx.com/warehouse/table1/col1=1/col2=2' - -You can use ``ALTER TABLE ADD PARTITION`` to add partitions to a table. The location must be a directory inside of which data files reside. If the location doesn't exist on the file system, Tajo will make the location by force. ``ADD PARTITION`` changes the table metadata, but does not load data. If the data does not exist in the partition's location, queries will not return any results. An error is thrown if the partition for the table already exists. You can use ``IF NOT EXISTS`` to skip the error. - -======================== DROP PARTITION ======================== http://git-wip-us.apache.org/repos/asf/tajo/blob/4564c37f/tajo-jdbc/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java ---------------------------------------------------------------------- diff --git a/tajo-jdbc/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java b/tajo-jdbc/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java index c6d1fe3..80c6e86 100644 --- a/tajo-jdbc/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java +++ b/tajo-jdbc/src/test/java/org/apache/tajo/jdbc/TestTajoJdbc.java @@ -578,8 +578,7 @@ public class TestTajoJdbc extends QueryTestCaseBase { } } - - @Test + // TODO: This should be added at TAJO-1891 public void testAlterTableAddPartition() throws Exception { Statement stmt = null; ResultSet resultSet = null; http://git-wip-us.apache.org/repos/asf/tajo/blob/4564c37f/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/PreLogicalPlanVerifier.java ---------------------------------------------------------------------- diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/PreLogicalPlanVerifier.java b/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/PreLogicalPlanVerifier.java index c16736d..83c161e 100644 --- a/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/PreLogicalPlanVerifier.java +++ b/tajo-plan/src/main/java/org/apache/tajo/plan/verifier/PreLogicalPlanVerifier.java @@ -354,4 +354,14 @@ public class PreLogicalPlanVerifier extends BaseAlgebraVisitor<PreLogicalPlanVer return expr; } + + // TODO: This should be removed at TAJO-1891 + @Override + public Expr visitAlterTable(Context context, Stack<Expr> stack, AlterTable expr) throws TajoException { + if (expr.getAlterTableOpType() == AlterTableOpType.ADD_PARTITION) { + context.state.addVerification(new NotImplementedException("ADD PARTITION")); + } + + return expr; + } }
