summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2005-07-17 17:26:31 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2005-07-17 17:26:31 +0000
commitcb083b26d58a0f603b5232bce50afa99a4d24e1c (patch)
tree6c8a719552a1b582b20f75ec2f920a6be95b9dbd
parent2401cfa1552e41bd9516161cf47f6597cce3cb9f (diff)
downloadpostgresql-cb083b26d58a0f603b5232bce50afa99a4d24e1c.tar.gz
Adjust alter_table regression test to avoid conflicts with rangefuncs
and prepare tests, which cause intermittent failures in parallel test mode. Back-port of fix originally applied to 8.0 and 7.4 branches; the problems do not appear to exist in 7.2 branch but they do occur in 7.3. Per buildfarm results.
-rw-r--r--src/test/regress/expected/alter_table.out203
-rw-r--r--src/test/regress/sql/alter_table.sql31
2 files changed, 44 insertions, 190 deletions
diff --git a/src/test/regress/expected/alter_table.out b/src/test/regress/expected/alter_table.out
index 550fa28d77..79263c2717 100644
--- a/src/test/regress/expected/alter_table.out
+++ b/src/test/regress/expected/alter_table.out
@@ -90,183 +90,36 @@ SELECT * FROM tmp;
DROP TABLE tmp;
--
--- rename -
--- should preserve indices, which we can check by seeing if a SELECT
--- chooses an indexscan; however, in the absence of vacuum statistics
--- it might not. Therefore, vacuum first.
+-- rename - check on both non-temp and temp tables
--
-VACUUM ANALYZE tenk1;
-ALTER TABLE tenk1 RENAME TO ten_k;
--- 20 values, sorted
-SELECT unique1 FROM ten_k WHERE unique1 < 20;
- unique1
----------
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
-(20 rows)
+CREATE TABLE tmp (regtable int);
+CREATE TEMP TABLE tmp (tmptable int);
+ALTER TABLE tmp RENAME TO tmp_new;
+SELECT * FROM tmp;
+ regtable
+----------
+(0 rows)
--- 20 values, sorted
-SELECT unique2 FROM ten_k WHERE unique2 < 20;
- unique2
----------
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
-(20 rows)
+SELECT * FROM tmp_new;
+ tmptable
+----------
+(0 rows)
--- 100 values, sorted
-SELECT hundred FROM ten_k WHERE hundred = 50;
- hundred
----------
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
- 50
-(100 rows)
+ALTER TABLE tmp RENAME TO tmp_new2;
+SELECT * FROM tmp; -- should fail
+ERROR: Relation "tmp" does not exist
+SELECT * FROM tmp_new;
+ tmptable
+----------
+(0 rows)
-ALTER TABLE ten_k RENAME TO tenk1;
--- 5 values, sorted
-SELECT unique1 FROM tenk1 WHERE unique1 < 5;
- unique1
----------
- 0
- 1
- 2
- 3
- 4
-(5 rows)
+SELECT * FROM tmp_new2;
+ regtable
+----------
+(0 rows)
+DROP TABLE tmp_new;
+DROP TABLE tmp_new2;
-- ALTER TABLE ... RENAME on non-table relations
-- renaming indexes (FIXME: this should probably test the index's functionality)
ALTER TABLE onek_unique1 RENAME TO tmp_onek_unique1;
@@ -274,6 +127,8 @@ ALTER TABLE tmp_onek_unique1 RENAME TO onek_unique1;
-- renaming views
CREATE VIEW tmp_view (unique1) AS SELECT unique1 FROM tenk1;
ALTER TABLE tmp_view RENAME TO tmp_view_new;
+-- analyze to ensure we get an indexscan here
+ANALYZE tenk1;
-- 5 values, sorted
SELECT unique1 FROM tenk1 WHERE unique1 < 5;
unique1
@@ -740,8 +595,8 @@ drop table def_test;
alter table pg_class drop column relname;
ERROR: ALTER TABLE: relation "pg_class" is a system catalog
-- try altering non-existent table, should fail
-alter table foo drop column bar;
-ERROR: Relation "foo" does not exist
+alter table nosuchtable drop column bar;
+ERROR: Relation "nosuchtable" does not exist
-- test dropping columns
create table atacc1 (a int4 not null, b int4, c int4 not null, d int4);
insert into atacc1 values (1, 2, 3, 4);
diff --git a/src/test/regress/sql/alter_table.sql b/src/test/regress/sql/alter_table.sql
index df9be01401..1e7617e576 100644
--- a/src/test/regress/sql/alter_table.sql
+++ b/src/test/regress/sql/alter_table.sql
@@ -140,28 +140,25 @@ DROP TABLE tmp;
--
--- rename -
--- should preserve indices, which we can check by seeing if a SELECT
--- chooses an indexscan; however, in the absence of vacuum statistics
--- it might not. Therefore, vacuum first.
+-- rename - check on both non-temp and temp tables
--
-VACUUM ANALYZE tenk1;
+CREATE TABLE tmp (regtable int);
+CREATE TEMP TABLE tmp (tmptable int);
-ALTER TABLE tenk1 RENAME TO ten_k;
+ALTER TABLE tmp RENAME TO tmp_new;
--- 20 values, sorted
-SELECT unique1 FROM ten_k WHERE unique1 < 20;
+SELECT * FROM tmp;
+SELECT * FROM tmp_new;
--- 20 values, sorted
-SELECT unique2 FROM ten_k WHERE unique2 < 20;
+ALTER TABLE tmp RENAME TO tmp_new2;
--- 100 values, sorted
-SELECT hundred FROM ten_k WHERE hundred = 50;
+SELECT * FROM tmp; -- should fail
+SELECT * FROM tmp_new;
+SELECT * FROM tmp_new2;
-ALTER TABLE ten_k RENAME TO tenk1;
+DROP TABLE tmp_new;
+DROP TABLE tmp_new2;
--- 5 values, sorted
-SELECT unique1 FROM tenk1 WHERE unique1 < 5;
-- ALTER TABLE ... RENAME on non-table relations
-- renaming indexes (FIXME: this should probably test the index's functionality)
@@ -170,6 +167,8 @@ ALTER TABLE tmp_onek_unique1 RENAME TO onek_unique1;
-- renaming views
CREATE VIEW tmp_view (unique1) AS SELECT unique1 FROM tenk1;
ALTER TABLE tmp_view RENAME TO tmp_view_new;
+-- analyze to ensure we get an indexscan here
+ANALYZE tenk1;
-- 5 values, sorted
SELECT unique1 FROM tenk1 WHERE unique1 < 5;
DROP VIEW tmp_view_new;
@@ -577,7 +576,7 @@ drop table def_test;
alter table pg_class drop column relname;
-- try altering non-existent table, should fail
-alter table foo drop column bar;
+alter table nosuchtable drop column bar;
-- test dropping columns
create table atacc1 (a int4 not null, b int4, c int4 not null, d int4);