From 0357041307fcdb847af404538dac53087b4897d5 Mon Sep 17 00:00:00 2001 From: Alexandre Felipe Date: Wed, 16 Sep 2026 20:18:05 +0100 Subject: [PATCH-v2 3/3] establish expected/tablespace.out wrap up with the regress reference and disable debugging --- src/test/regress/expected/tablespace.out | 322 +++++++++++++++++++++++ src/test/regress/sql/tablespace.sql | 1 - 2 files changed, 322 insertions(+), 1 deletion(-) diff --git a/src/test/regress/expected/tablespace.out b/src/test/regress/expected/tablespace.out index f0dd25cdf0c..4d0a0fa8906 100644 --- a/src/test/regress/expected/tablespace.out +++ b/src/test/regress/expected/tablespace.out @@ -967,6 +967,328 @@ ERROR: tablespace name "invalid name" contains a newline or carriage return character -- Should succeed DROP TABLESPACE regress_tblspace_renamed; +-- +-- Deferred heap copy for ALTER TABLE SET TABLESPACE on indexed tables +-- +SET allow_in_place_tablespaces = true; +SET enable_seqscan = off; +SET enable_bitmapscan = off; +CREATE TABLESPACE regress_tblspace LOCATION ''; +CREATE TABLESPACE regress_tblspace2 LOCATION ''; +PREPARE check_tablespace AS + SELECT n.nspname, c.relname, coalesce(s.spcname, '(default)') AS tablespace + FROM pg_class c + LEFT JOIN pg_tablespace s ON s.oid = c.reltablespace + LEFT JOIN pg_namespace n ON n.oid = c.relnamespace + WHERE c.relname = 'defer_t' + ORDER BY 1; +-- COMMIT +CREATE TABLE defer_t (a int); +EXECUTE check_tablespace; + nspname | relname | tablespace +---------+---------+------------ + public | defer_t | (default) +(1 row) + +CREATE INDEX defer_t_idx ON defer_t (a); +INSERT INTO defer_t VALUES (1); +BEGIN; +INSERT INTO defer_t VALUES (2); +ALTER TABLE defer_t SET TABLESPACE regress_tblspace; +INSERT INTO defer_t VALUES (3); +COMMIT; +EXECUTE check_tablespace; + nspname | relname | tablespace +---------+---------+------------------ + public | defer_t | regress_tblspace +(1 row) + +INSERT INTO defer_t VALUES (4), (5); +SELECT ctid, a FROM defer_t ORDER BY a; + ctid | a +-------+--- + (0,1) | 1 + (0,2) | 2 + (0,3) | 3 + (0,4) | 4 + (0,5) | 5 +(5 rows) + +DROP TABLE defer_t; +-- ROLLBACK +CREATE TABLE defer_t (a int); +CREATE INDEX defer_t_idx ON defer_t (a); +INSERT INTO defer_t VALUES (1); +BEGIN; +INSERT INTO defer_t VALUES (2); +ALTER TABLE defer_t SET TABLESPACE regress_tblspace; +INSERT INTO defer_t VALUES (3); +ROLLBACK; +EXECUTE check_tablespace; + nspname | relname | tablespace +---------+---------+------------ + public | defer_t | (default) +(1 row) + +INSERT INTO defer_t VALUES (4), (5); +SELECT ctid, a FROM defer_t ORDER BY a; + ctid | a +-------+--- + (0,1) | 1 + (0,4) | 4 + (0,5) | 5 +(3 rows) + +DROP TABLE defer_t; +-- COMMIT ENDING UP IN THE SAME SPACE +CREATE TABLE defer_t (a int); +CREATE INDEX defer_t_idx ON defer_t (a); +INSERT INTO defer_t VALUES (1); +BEGIN; +INSERT INTO defer_t VALUES (2); +ALTER TABLE defer_t SET TABLESPACE regress_tblspace; +INSERT INTO defer_t VALUES (3); +ALTER TABLE defer_t SET TABLESPACE pg_default; +INSERT INTO defer_t VALUES (4); +COMMIT; +EXECUTE check_tablespace; + nspname | relname | tablespace +---------+---------+------------ + public | defer_t | (default) +(1 row) + +INSERT INTO defer_t VALUES (5); +SELECT ctid, a FROM defer_t ORDER BY a; + ctid | a +-------+--- + (0,1) | 1 + (0,2) | 2 + (0,3) | 3 + (0,4) | 4 + (0,5) | 5 +(5 rows) + +DROP TABLE defer_t; +-- PREPARE TRANSACTION, COMMIT PREPARED +CREATE TABLE defer_t (a int); +CREATE INDEX defer_t_idx ON defer_t (a); +INSERT INTO defer_t VALUES (1); +BEGIN; +INSERT INTO defer_t VALUES (2); +ALTER TABLE defer_t SET TABLESPACE regress_tblspace; +INSERT INTO defer_t VALUES (3); +PREPARE TRANSACTION 'defer_tblsp_prep_commit'; +COMMIT PREPARED 'defer_tblsp_prep_commit'; +EXECUTE check_tablespace; + nspname | relname | tablespace +---------+---------+------------------ + public | defer_t | regress_tblspace +(1 row) + +INSERT INTO defer_t VALUES (4), (5); +SELECT ctid, a FROM defer_t ORDER BY a; + ctid | a +-------+--- + (0,1) | 1 + (0,2) | 2 + (0,3) | 3 + (0,4) | 4 + (0,5) | 5 +(5 rows) + +DROP TABLE defer_t; +-- PREPARE TRANSACTION, ROLLBACK PREPARED +CREATE TABLE defer_t (a int); +CREATE INDEX defer_t_idx ON defer_t (a); +INSERT INTO defer_t VALUES (1); +BEGIN; +INSERT INTO defer_t VALUES (2); +ALTER TABLE defer_t SET TABLESPACE regress_tblspace2; +INSERT INTO defer_t VALUES (3); +PREPARE TRANSACTION 'defer_tblsp_prep_rollback'; +ROLLBACK PREPARED 'defer_tblsp_prep_rollback'; +EXECUTE check_tablespace; + nspname | relname | tablespace +---------+---------+------------ + public | defer_t | (default) +(1 row) + +INSERT INTO defer_t VALUES (4), (5); +SELECT ctid, a FROM defer_t ORDER BY a; + ctid | a +-------+--- + (0,1) | 1 + (0,4) | 4 + (0,5) | 5 +(3 rows) + +DROP TABLE defer_t; +-- Subtransaction: move in savepoint, subcommit, then top-level commit +CREATE TABLE defer_t (a int); +CREATE INDEX defer_t_idx ON defer_t (a); +INSERT INTO defer_t VALUES (1); +BEGIN; +INSERT INTO defer_t VALUES (2); +SAVEPOINT sp1; +INSERT INTO defer_t VALUES (3); +ALTER TABLE defer_t SET TABLESPACE regress_tblspace; +INSERT INTO defer_t VALUES (4); +RELEASE SAVEPOINT sp1; +INSERT INTO defer_t VALUES (5); +COMMIT; +EXECUTE check_tablespace; + nspname | relname | tablespace +---------+---------+------------------ + public | defer_t | regress_tblspace +(1 row) + +INSERT INTO defer_t VALUES (6), (7); +SELECT ctid, a FROM defer_t ORDER BY a; + ctid | a +-------+--- + (0,1) | 1 + (0,2) | 2 + (0,3) | 3 + (0,4) | 4 + (0,5) | 5 + (0,6) | 6 + (0,7) | 7 +(7 rows) + +DROP TABLE defer_t; +-- Subtransaction: move in savepoint, then rollback to savepoint +CREATE TABLE defer_t (a int); +CREATE INDEX defer_t_idx ON defer_t (a); +INSERT INTO defer_t VALUES (1); +BEGIN; +INSERT INTO defer_t VALUES (2); +SAVEPOINT sp1; +INSERT INTO defer_t VALUES (3); +ALTER TABLE defer_t SET TABLESPACE regress_tblspace; +INSERT INTO defer_t VALUES (4); +ROLLBACK TO SAVEPOINT sp1; +INSERT INTO defer_t VALUES (5); +COMMIT; +EXECUTE check_tablespace; + nspname | relname | tablespace +---------+---------+------------ + public | defer_t | (default) +(1 row) + +INSERT INTO defer_t VALUES (6), (7), (8); +SELECT ctid, a FROM defer_t ORDER BY a; + ctid | a +-------+--- + (0,1) | 1 + (0,2) | 2 + (0,5) | 5 + (0,6) | 6 + (0,7) | 7 + (0,8) | 8 +(6 rows) + +DROP TABLE defer_t; +-- Subtransaction: subcommit move, then top-level rollback cancels move +CREATE TABLE defer_t (a int); +CREATE INDEX defer_t_idx ON defer_t (a); +INSERT INTO defer_t VALUES (1); +BEGIN; +INSERT INTO defer_t VALUES (2); +SAVEPOINT sp1; +INSERT INTO defer_t VALUES (3); +ALTER TABLE defer_t SET TABLESPACE regress_tblspace; +INSERT INTO defer_t VALUES (4); +RELEASE SAVEPOINT sp1; +INSERT INTO defer_t VALUES (5); +ROLLBACK; +EXECUTE check_tablespace; + nspname | relname | tablespace +---------+---------+------------ + public | defer_t | (default) +(1 row) + +INSERT INTO defer_t VALUES (6), (7), (8); +SELECT ctid, a FROM defer_t ORDER BY a; + ctid | a +-------+--- + (0,1) | 1 + (0,6) | 6 + (0,7) | 7 + (0,8) | 8 +(4 rows) + +DROP TABLE defer_t; +-- Subtransaction: two deferred moves in one transaction +CREATE TABLE defer_t (a int); +CREATE INDEX defer_t_idx ON defer_t (a); +INSERT INTO defer_t VALUES (1); +BEGIN; +INSERT INTO defer_t VALUES (2); +SAVEPOINT sp1; +INSERT INTO defer_t VALUES (3); +ALTER TABLE defer_t SET TABLESPACE regress_tblspace; +INSERT INTO defer_t VALUES (4); +SAVEPOINT sp2; +INSERT INTO defer_t VALUES (5); +ALTER TABLE defer_t SET TABLESPACE regress_tblspace2; +INSERT INTO defer_t VALUES (6); +COMMIT; +EXECUTE check_tablespace; + nspname | relname | tablespace +---------+---------+------------------- + public | defer_t | regress_tblspace2 +(1 row) + +INSERT INTO defer_t VALUES (7), (8), (9); +SELECT ctid, a FROM defer_t ORDER BY a; + ctid | a +-------+--- + (0,1) | 1 + (0,2) | 2 + (0,3) | 3 + (0,4) | 4 + (0,5) | 5 + (0,6) | 6 + (0,7) | 7 + (0,8) | 8 + (0,9) | 9 +(9 rows) + +DROP TABLE defer_t; +CREATE TABLE defer_t (a int); +CREATE INDEX defer_t_idx ON defer_t (a); +INSERT INTO defer_t VALUES (1); +BEGIN; +INSERT INTO defer_t VALUES (2); +SAVEPOINT sp1; +INSERT INTO defer_t VALUES (3); +ALTER TABLE defer_t SET TABLESPACE regress_tblspace; +INSERT INTO defer_t VALUES (4); +SAVEPOINT sp2; +INSERT INTO defer_t VALUES (5); +ALTER TABLE defer_t SET TABLESPACE regress_tblspace2; +INSERT INTO defer_t VALUES (6); +ROLLBACK; +EXECUTE check_tablespace; + nspname | relname | tablespace +---------+---------+------------ + public | defer_t | (default) +(1 row) + +INSERT INTO defer_t VALUES (7), (8), (9); +SELECT ctid, a FROM defer_t ORDER BY a; + ctid | a +-------+--- + (0,1) | 1 + (0,7) | 7 + (0,8) | 8 + (0,9) | 9 +(4 rows) + +DROP TABLE defer_t; +RESET enable_sort; +DROP TABLESPACE regress_tblspace; +DROP TABLESPACE regress_tblspace2; DROP SCHEMA testschema CASCADE; NOTICE: drop cascades to 7 other objects DETAIL: drop cascades to table testschema.foo diff --git a/src/test/regress/sql/tablespace.sql b/src/test/regress/sql/tablespace.sql index d58cd4af3d5..060b8a4a46d 100644 --- a/src/test/regress/sql/tablespace.sql +++ b/src/test/regress/sql/tablespace.sql @@ -441,7 +441,6 @@ DROP TABLESPACE regress_tblspace_renamed; -- Deferred heap copy for ALTER TABLE SET TABLESPACE on indexed tables -- SET allow_in_place_tablespaces = true; -SET client_min_messages = DEBUG1; SET enable_seqscan = off; SET enable_bitmapscan = off; CREATE TABLESPACE regress_tblspace LOCATION ''; -- 2.53.0