Test ALTER TABLE.. ADD PRIMARY KEY
authorAmruta Deolasee <[email protected]>
Tue, 11 Sep 2018 06:02:56 +0000 (06:02 +0000)
committerPavan Deolasee <[email protected]>
Tue, 11 Sep 2018 09:52:19 +0000 (15:22 +0530)
Ensure that this sets columns NOT NULL on all child tables on all nodes

src/test/regress/expected/xl_misc.out
src/test/regress/sql/xl_misc.sql

index 54ceb9a87535a843df0912f580a589eb14c8bc88..f7a4a36dd86db2ccd26cea265fe9ff50c0db9d32 100644 (file)
@@ -366,6 +366,7 @@ SELECT * FROM t1_tmp ORDER BY empno;
  develop   |    11 |   5200 | 25100
 (10 rows)
 
+-- Test ALTER TYPE .. RENAME VALUE #211
 CREATE TYPE rainbow AS ENUM ('red', 'orange', 'yellow', 'green', 'blue', 'purple');
 CREATE TABLE enumtest_parent (id rainbow PRIMARY KEY);
 CREATE TABLE enumtest_child (parent rainbow REFERENCES enumtest_parent);
@@ -428,3 +429,48 @@ SELECT * FROM enumtest_child;
 DROP TABLE enumtest_child;
 DROP TABLE enumtest_parent;
 DROP TYPE rainbow;
+-- Check if ALTER TABLE .. ADD PRIMARY KEY sets columns 
+-- NOT NULL on all child tables on all nodes #203
+CREATE TABLE test_add_primary(id int,a int);
+CREATE TABLE test_add_primary_child(b int) INHERITS (test_add_primary);
+ALTER TABLE test_add_primary ADD PRIMARY KEY (id);
+EXECUTE DIRECT ON (datanode_1) $$ SELECT COLUMN_NAME, IS_NULLABLE
+FROM INFORMATION_SCHEMA.COLUMNS
+WHERE table_name = 'test_add_primary' $$;
+ column_name | is_nullable 
+-------------+-------------
+ id          | NO
+ a           | YES
+(2 rows)
+
+EXECUTE DIRECT ON (datanode_2) $$ SELECT column_name, IS_NULLABLE
+FROM INFORMATION_SCHEMA.COLUMNS
+WHERE table_name = 'test_add_primary' $$;
+ column_name | is_nullable 
+-------------+-------------
+ id          | NO
+ a           | YES
+(2 rows)
+
+EXECUTE DIRECT ON (datanode_1) $$ SELECT COLUMN_NAME, IS_NULLABLE
+FROM INFORMATION_SCHEMA.COLUMNS
+WHERE table_name = 'test_add_primary_child' $$;
+ column_name | is_nullable 
+-------------+-------------
+ id          | NO
+ a           | YES
+ b           | YES
+(3 rows)
+
+EXECUTE DIRECT ON (datanode_2) $$ SELECT column_name, IS_NULLABLE
+FROM INFORMATION_SCHEMA.COLUMNS
+WHERE table_name = 'test_add_primary_child' $$;
+ column_name | is_nullable 
+-------------+-------------
+ id          | NO
+ a           | YES
+ b           | YES
+(3 rows)
+
+DROP TABLE test_add_primary CASCADE;
+NOTICE:  drop cascades to table test_add_primary_child
index 62faf3a0ee5e0954b2d792f2e62ea199f47e44f6..d0c06300a1454b997ef6393327b4512745110cd8 100644 (file)
@@ -211,6 +211,7 @@ CREATE TEMPORARY TABLE t1_tmp (depname text, empno int, salary int, sum int);
 INSERT INTO t1_tmp SELECT depname, empno, salary, sum(salary) OVER (PARTITION BY depname) FROM empsalary;
 SELECT * FROM t1_tmp ORDER BY empno;
 
+-- Test ALTER TYPE .. RENAME VALUE #211
 CREATE TYPE rainbow AS ENUM ('red', 'orange', 'yellow', 'green', 'blue', 'purple');
 CREATE TABLE enumtest_parent (id rainbow PRIMARY KEY);
 CREATE TABLE enumtest_child (parent rainbow REFERENCES enumtest_parent);
@@ -240,3 +241,27 @@ SELECT * FROM enumtest_child;
 DROP TABLE enumtest_child;
 DROP TABLE enumtest_parent;
 DROP TYPE rainbow;
+
+-- Check if ALTER TABLE .. ADD PRIMARY KEY sets columns 
+-- NOT NULL on all child tables on all nodes #203
+CREATE TABLE test_add_primary(id int,a int);
+CREATE TABLE test_add_primary_child(b int) INHERITS (test_add_primary);
+ALTER TABLE test_add_primary ADD PRIMARY KEY (id);
+
+EXECUTE DIRECT ON (datanode_1) $$ SELECT COLUMN_NAME, IS_NULLABLE
+FROM INFORMATION_SCHEMA.COLUMNS
+WHERE table_name = 'test_add_primary' $$;
+
+EXECUTE DIRECT ON (datanode_2) $$ SELECT column_name, IS_NULLABLE
+FROM INFORMATION_SCHEMA.COLUMNS
+WHERE table_name = 'test_add_primary' $$;
+
+EXECUTE DIRECT ON (datanode_1) $$ SELECT COLUMN_NAME, IS_NULLABLE
+FROM INFORMATION_SCHEMA.COLUMNS
+WHERE table_name = 'test_add_primary_child' $$;
+
+EXECUTE DIRECT ON (datanode_2) $$ SELECT column_name, IS_NULLABLE
+FROM INFORMATION_SCHEMA.COLUMNS
+WHERE table_name = 'test_add_primary_child' $$;
+
+DROP TABLE test_add_primary CASCADE;