alex-plekhanov commented on a change in pull request #9185:
URL: https://github.com/apache/ignite/pull/9185#discussion_r672186901



##########
File path: 
modules/calcite/src/test/java/org/apache/ignite/internal/processors/query/calcite/integration/TableDdlIntegrationTest.java
##########
@@ -337,17 +338,260 @@ public void dropTableIfExists() {
 
         GridTestUtils.assertThrows(log,
             () -> executeSql("drop table my_table"),
-            IgniteSQLException.class, "Table doesn't exist: MY_TABLE]");
+            IgniteSQLException.class, "Table doesn't exist: MY_TABLE");
 
         executeSql("drop table my_schema.my_table");
 
         GridTestUtils.assertThrows(log,
             () -> executeSql("drop table my_schema.my_table"),
-            IgniteSQLException.class, "Table doesn't exist: MY_TABLE]");
+            IgniteSQLException.class, "Table doesn't exist: MY_TABLE");
 
         executeSql("drop table if exists my_schema.my_table");
     }
 
+    /**
+     * Add/drop column simple case.
+     */
+    @Test
+    public void alterTableAddDropSimpleCase() {
+        executeSql("create table my_table (id int primary key, val varchar)");
+
+        executeSql("alter table my_table add column val2 varchar");
+
+        executeSql("insert into my_table (id, val, val2) values (0, '1', 
'2')");
+
+        List<List<?>> res = executeSql("select * from my_table ");
+
+        assertEquals(1, res.size());
+        assertEquals("2", res.get(0).get(2));
+
+        executeSql("alter table my_table drop column val2");
+
+        res = executeSql("select * from my_table ");
+
+        assertEquals(1, res.size());
+        assertEquals(2, res.get(0).size());
+    }
+
+    /**
+     * Add/drop two columns at the same time.
+     */
+    @Test
+    public void alterTableAddDropTwoColumns() {
+        executeSql("create table my_table (id int primary key, val varchar)");
+
+        executeSql("alter table my_table add column (val2 varchar, val3 int)");
+
+        executeSql("insert into my_table (id, val, val2, val3) values (0, '1', 
'2', 3)");
+
+        List<List<?>> res = executeSql("select * from my_table ");
+
+        assertEquals(1, res.size());
+        assertEquals("2", res.get(0).get(2));
+        assertEquals(3, res.get(0).get(3));
+
+        executeSql("alter table my_table drop column (val2, val3)");
+
+        res = executeSql("select * from my_table ");
+
+        assertEquals(1, res.size());
+        assertEquals(2, res.get(0).size());
+    }
+
+    /**
+     * Add/drop column for table in custom schema.
+     */
+    @Test
+    public void alterTableAddDropCustomSchema() {
+        executeSql("create table my_schema.my_table (id int primary key, val 
varchar)");
+
+        executeSql("alter table my_schema.my_table add column val2 varchar");
+
+        executeSql("insert into my_schema.my_table (id, val, val2) values (0, 
'1', '2')");
+
+        List<List<?>> res = executeSql("select * from my_schema.my_table ");
+
+        assertEquals(1, res.size());
+        assertEquals("2", res.get(0).get(2));
+
+        executeSql("alter table my_schema.my_table drop column val2");
+
+        res = executeSql("select * from my_schema.my_table ");
+
+        assertEquals(1, res.size());
+        assertEquals(2, res.get(0).size());
+    }
+
+    /**
+     * Add/drop column if table exists.
+     */
+    @Test
+    public void alterTableAddDropIfTableExists() {
+        assertThrows("alter table my_table add val2 varchar", 
IgniteSQLException.class, "Table doesn't exist");
+
+        executeSql("alter table if exists my_table add column val2 varchar");
+
+        assertThrows("alter table my_table drop column val2", 
IgniteSQLException.class, "Table doesn't exist");
+
+        executeSql("alter table if exists my_table drop column val2");
+
+        executeSql("create table my_table (id int primary key, val varchar)");
+
+        executeSql("alter table if exists my_table add column val3 varchar");
+
+        executeSql("insert into my_table (id, val, val3) values (0, '1', 
'2')");
+
+        List<List<?>> res = executeSql("select * from my_table ");
+
+        assertEquals(1, res.size());
+        assertEquals("2", res.get(0).get(2));
+
+        executeSql("alter table if exists my_table drop column val3");
+
+        assertThrows("alter table if exists my_table drop column val3", 
IgniteSQLException.class,
+            "Column doesn't exist");
+
+        res = executeSql("select * from my_table ");
+
+        assertEquals(1, res.size());
+        assertEquals(2, res.get(0).size());
+    }
+

Review comment:
       Tests added




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to