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;
-- 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
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);
--
--- 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)
-- 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;
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);