mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-06 15:49:20 +02:00
\dx was used on pg_walinspect to list its objects in 1.0 but the names of the objects in this version do not have an order that is always guaranteed depending on the collation used. Rather than append a COLLATE clause in the query of \dx, this tweaks the regression test to produce an output whose order is guaranteed. Reported-by: Andres Freund Author: Bharath Rupireddy Discussion: https://postgr.es/m/20230314215440.gma7g4keswdnldj5@awork3.anarazel.de
69 lines
2.4 KiB
Plaintext
69 lines
2.4 KiB
Plaintext
-- test old extension version entry points
|
|
CREATE EXTENSION pg_walinspect WITH VERSION '1.0';
|
|
-- Mask DETAIL messages as these could refer to current LSN positions.
|
|
\set VERBOSITY terse
|
|
-- List what version 1.0 contains, using a locale-independent sorting.
|
|
SELECT pg_describe_object(classid, objid, 0) AS obj
|
|
FROM pg_depend
|
|
WHERE refclassid = 'pg_extension'::regclass AND
|
|
refobjid = (SELECT oid FROM pg_extension
|
|
WHERE extname = 'pg_walinspect') AND deptype = 'e'
|
|
ORDER BY pg_describe_object(classid, objid, 0) COLLATE "C";
|
|
obj
|
|
-----------------------------------------------------------
|
|
function pg_get_wal_record_info(pg_lsn)
|
|
function pg_get_wal_records_info(pg_lsn,pg_lsn)
|
|
function pg_get_wal_records_info_till_end_of_wal(pg_lsn)
|
|
function pg_get_wal_stats(pg_lsn,pg_lsn,boolean)
|
|
function pg_get_wal_stats_till_end_of_wal(pg_lsn,boolean)
|
|
(5 rows)
|
|
|
|
-- Make sure checkpoints don't interfere with the test.
|
|
SELECT 'init' FROM pg_create_physical_replication_slot('regress_pg_walinspect_slot', true, false);
|
|
?column?
|
|
----------
|
|
init
|
|
(1 row)
|
|
|
|
CREATE TABLE sample_tbl(col1 int, col2 int);
|
|
SELECT pg_current_wal_lsn() AS wal_lsn1 \gset
|
|
INSERT INTO sample_tbl SELECT * FROM generate_series(1, 2);
|
|
-- Check bounds for these past functions.
|
|
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_records_info_till_end_of_wal(:'wal_lsn1');
|
|
ok
|
|
----
|
|
t
|
|
(1 row)
|
|
|
|
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_stats_till_end_of_wal(:'wal_lsn1');
|
|
ok
|
|
----
|
|
t
|
|
(1 row)
|
|
|
|
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_records_info_till_end_of_wal('FFFFFFFF/FFFFFFFF');
|
|
ERROR: WAL start LSN must be less than current LSN
|
|
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_stats_till_end_of_wal('FFFFFFFF/FFFFFFFF');
|
|
ERROR: WAL start LSN must be less than current LSN
|
|
-- Move to new version 1.1
|
|
ALTER EXTENSION pg_walinspect UPDATE TO '1.1';
|
|
-- List what version 1.1 contains
|
|
\dx+ pg_walinspect
|
|
Objects in extension "pg_walinspect"
|
|
Object description
|
|
--------------------------------------------------
|
|
function pg_get_wal_block_info(pg_lsn,pg_lsn)
|
|
function pg_get_wal_record_info(pg_lsn)
|
|
function pg_get_wal_records_info(pg_lsn,pg_lsn)
|
|
function pg_get_wal_stats(pg_lsn,pg_lsn,boolean)
|
|
(4 rows)
|
|
|
|
SELECT pg_drop_replication_slot('regress_pg_walinspect_slot');
|
|
pg_drop_replication_slot
|
|
--------------------------
|
|
|
|
(1 row)
|
|
|
|
DROP TABLE sample_tbl;
|
|
DROP EXTENSION pg_walinspect;
|