Repository: tajo
Updated Branches:
  refs/heads/branch-0.11.0 3d0e9833c -> 3f33a6b14


TAJO-1887: Disable the alter table add partition statement temporarily.


Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/3f33a6b1
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/3f33a6b1
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/3f33a6b1

Branch: refs/heads/branch-0.11.0
Commit: 3f33a6b14139ecb83e19a6069c27cb867dd6a95f
Parents: 3d0e983
Author: JaeHwa Jung <[email protected]>
Authored: Tue Sep 29 23:18:03 2015 +0900
Committer: JaeHwa Jung <[email protected]>
Committed: Tue Sep 29 23:18:03 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/3f33a6b1/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 3c52241..8247800 100644
--- a/CHANGES
+++ b/CHANGES
@@ -687,6 +687,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/3f33a6b1/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 912d24d..ba4f37e 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/3f33a6b1/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/3f33a6b1/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 8d4b10b..c843b21 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/3f33a6b1/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 a37d8f3..3126943 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
@@ -460,7 +460,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/3f33a6b1/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 c9dd24f..cbddab8 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/3f33a6b1/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/3f33a6b1/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/3f33a6b1/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 e28e7f1..ce043ec 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/3f33a6b1/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/3f33a6b1/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/3f33a6b1/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/3f33a6b1/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 6e61657..f852012 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/3f33a6b1/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/3f33a6b1/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/3f33a6b1/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/3f33a6b1/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/3f33a6b1/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/3f33a6b1/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 6a1e0a2..b89110d 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/3f33a6b1/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;
+  }
 }

Reply via email to