mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-23 19:39:53 +08:00
More bogosity in alter_table test: sometimes causes prepare test to fail
by means of arbitrarily renaming tables the other test depends on.
This commit is contained in:
parent
d30c69bc63
commit
03d968fb4e
@ -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
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user