Skip to content

Commit 4f1882b

Browse files
committed
Improve a bit the tests of pg_walinspect
This commit improves the tests of pg_walinspect on a few things: - Remove aggregates for queries that should fail. If the code is reworked in such a way that the behavior of these queries is changed, we would get more input from them, written this way. - Expect at least one record reported in the valid queries doing scans across ranges, rather than zero records. - Adjust a few comments, for consistency. Author: Bharath Rupireddy Discussion: https://postgr.es/m/CALj2ACVaoXW3nJD9zq8E66BEf-phgJfFcKRVJq9GXkuX0b3ULQ@mail.gmail.com
1 parent 8fba928 commit 4f1882b

File tree

4 files changed

+47
-45
lines changed

4 files changed

+47
-45
lines changed

contrib/pg_walinspect/expected/oldextversions.out

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
-- test old extension version entry points
1+
-- Test old extension version entry points.
22
CREATE EXTENSION pg_walinspect WITH VERSION '1.0';
33
-- Mask DETAIL messages as these could refer to current LSN positions.
44
\set VERBOSITY terse
@@ -28,7 +28,7 @@ SELECT 'init' FROM pg_create_physical_replication_slot('regress_pg_walinspect_sl
2828
CREATE TABLE sample_tbl(col1 int, col2 int);
2929
SELECT pg_current_wal_lsn() AS wal_lsn1 \gset
3030
INSERT INTO sample_tbl SELECT * FROM generate_series(1, 2);
31-
-- Check bounds for these past functions.
31+
-- Tests for the past functions.
3232
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_records_info_till_end_of_wal(:'wal_lsn1');
3333
ok
3434
----
@@ -41,13 +41,14 @@ SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_stats_till_end_of_wal(:'wal_lsn1');
4141
t
4242
(1 row)
4343

44-
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_records_info_till_end_of_wal('FFFFFFFF/FFFFFFFF');
44+
-- Failures with start LSNs.
45+
SELECT * FROM pg_get_wal_records_info_till_end_of_wal('FFFFFFFF/FFFFFFFF');
4546
ERROR: WAL start LSN must be less than current LSN
46-
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_stats_till_end_of_wal('FFFFFFFF/FFFFFFFF');
47+
SELECT * FROM pg_get_wal_stats_till_end_of_wal('FFFFFFFF/FFFFFFFF');
4748
ERROR: WAL start LSN must be less than current LSN
48-
-- Move to new version 1.1
49+
-- Move to new version 1.1.
4950
ALTER EXTENSION pg_walinspect UPDATE TO '1.1';
50-
-- List what version 1.1 contains
51+
-- List what version 1.1 contains.
5152
\dx+ pg_walinspect
5253
Objects in extension "pg_walinspect"
5354
Object description

contrib/pg_walinspect/expected/pg_walinspect.out

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ SELECT 'init' FROM pg_create_physical_replication_slot('regress_pg_walinspect_sl
99
(1 row)
1010

1111
CREATE TABLE sample_tbl(col1 int, col2 int);
12-
-- Save some LSNs for comparisons
12+
-- Save some LSNs for comparisons.
1313
SELECT pg_current_wal_lsn() AS wal_lsn1 \gset
1414
INSERT INTO sample_tbl SELECT * FROM generate_series(1, 2);
1515
SELECT pg_current_wal_lsn() AS wal_lsn2 \gset
@@ -35,56 +35,56 @@ ERROR: WAL start LSN must be less than end LSN
3535
SELECT * FROM pg_get_wal_block_info(:'wal_lsn2', :'wal_lsn1');
3636
ERROR: WAL start LSN must be less than end LSN
3737
-- LSNs with the highest value possible.
38-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_record_info('FFFFFFFF/FFFFFFFF');
38+
SELECT * FROM pg_get_wal_record_info('FFFFFFFF/FFFFFFFF');
3939
ERROR: WAL input LSN must be less than current LSN
4040
-- Success with end LSNs.
41-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_records_info(:'wal_lsn1', 'FFFFFFFF/FFFFFFFF');
41+
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_records_info(:'wal_lsn1', 'FFFFFFFF/FFFFFFFF');
4242
ok
4343
----
4444
t
4545
(1 row)
4646

47-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_stats(:'wal_lsn1', 'FFFFFFFF/FFFFFFFF');
47+
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_stats(:'wal_lsn1', 'FFFFFFFF/FFFFFFFF');
4848
ok
4949
----
5050
t
5151
(1 row)
5252

53-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_block_info(:'wal_lsn1', 'FFFFFFFF/FFFFFFFF');
53+
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_block_info(:'wal_lsn1', 'FFFFFFFF/FFFFFFFF');
5454
ok
5555
----
5656
t
5757
(1 row)
5858

59-
-- failures with start LSNs
60-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_records_info('FFFFFFFF/FFFFFFFE', 'FFFFFFFF/FFFFFFFF');
59+
-- Failures with start LSNs.
60+
SELECT * FROM pg_get_wal_records_info('FFFFFFFF/FFFFFFFE', 'FFFFFFFF/FFFFFFFF');
6161
ERROR: WAL start LSN must be less than current LSN
62-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_stats('FFFFFFFF/FFFFFFFE', 'FFFFFFFF/FFFFFFFF');
62+
SELECT * FROM pg_get_wal_stats('FFFFFFFF/FFFFFFFE', 'FFFFFFFF/FFFFFFFF');
6363
ERROR: WAL start LSN must be less than current LSN
64-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_block_info('FFFFFFFF/FFFFFFFE', 'FFFFFFFF/FFFFFFFF');
64+
SELECT * FROM pg_get_wal_block_info('FFFFFFFF/FFFFFFFE', 'FFFFFFFF/FFFFFFFF');
6565
ERROR: WAL start LSN must be less than current LSN
6666
-- ===================================================================
6767
-- Tests for all function executions
6868
-- ===================================================================
69-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_record_info(:'wal_lsn1');
69+
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_record_info(:'wal_lsn1');
7070
ok
7171
----
7272
t
7373
(1 row)
7474

75-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_records_info(:'wal_lsn1', :'wal_lsn2');
75+
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_records_info(:'wal_lsn1', :'wal_lsn2');
7676
ok
7777
----
7878
t
7979
(1 row)
8080

81-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_stats(:'wal_lsn1', :'wal_lsn2');
81+
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_stats(:'wal_lsn1', :'wal_lsn2');
8282
ok
8383
----
8484
t
8585
(1 row)
8686

87-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_block_info(:'wal_lsn1', :'wal_lsn2');
87+
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_block_info(:'wal_lsn1', :'wal_lsn2');
8888
ok
8989
----
9090
t
@@ -115,7 +115,7 @@ SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_records_info(:'wal_lsn1', :'wal_lsn2'
115115
-- ===================================================================
116116
-- Tests to get block information from WAL record
117117
-- ===================================================================
118-
-- Update table to generate some block data
118+
-- Update table to generate some block data.
119119
SELECT pg_current_wal_lsn() AS wal_lsn3 \gset
120120
UPDATE sample_tbl SET col1 = col1 + 1 WHERE col1 = 1;
121121
SELECT pg_current_wal_lsn() AS wal_lsn4 \gset
@@ -172,7 +172,7 @@ SELECT has_function_privilege('regress_pg_walinspect',
172172
f
173173
(1 row)
174174

175-
-- Functions accessible by users with role pg_read_server_files
175+
-- Functions accessible by users with role pg_read_server_files.
176176
GRANT pg_read_server_files TO regress_pg_walinspect;
177177
SELECT has_function_privilege('regress_pg_walinspect',
178178
'pg_get_wal_record_info(pg_lsn)', 'EXECUTE'); -- yes
@@ -203,7 +203,7 @@ SELECT has_function_privilege('regress_pg_walinspect',
203203
(1 row)
204204

205205
REVOKE pg_read_server_files FROM regress_pg_walinspect;
206-
-- Superuser can grant execute to other users
206+
-- Superuser can grant execute to other users.
207207
GRANT EXECUTE ON FUNCTION pg_get_wal_record_info(pg_lsn)
208208
TO regress_pg_walinspect;
209209
GRANT EXECUTE ON FUNCTION pg_get_wal_records_info(pg_lsn, pg_lsn)

contrib/pg_walinspect/sql/oldextversions.sql

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
-- test old extension version entry points
1+
-- Test old extension version entry points.
22

33
CREATE EXTENSION pg_walinspect WITH VERSION '1.0';
44

@@ -20,16 +20,17 @@ CREATE TABLE sample_tbl(col1 int, col2 int);
2020
SELECT pg_current_wal_lsn() AS wal_lsn1 \gset
2121
INSERT INTO sample_tbl SELECT * FROM generate_series(1, 2);
2222

23-
-- Check bounds for these past functions.
23+
-- Tests for the past functions.
2424
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_records_info_till_end_of_wal(:'wal_lsn1');
2525
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_stats_till_end_of_wal(:'wal_lsn1');
26-
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_records_info_till_end_of_wal('FFFFFFFF/FFFFFFFF');
27-
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_stats_till_end_of_wal('FFFFFFFF/FFFFFFFF');
26+
-- Failures with start LSNs.
27+
SELECT * FROM pg_get_wal_records_info_till_end_of_wal('FFFFFFFF/FFFFFFFF');
28+
SELECT * FROM pg_get_wal_stats_till_end_of_wal('FFFFFFFF/FFFFFFFF');
2829

29-
-- Move to new version 1.1
30+
-- Move to new version 1.1.
3031
ALTER EXTENSION pg_walinspect UPDATE TO '1.1';
3132

32-
-- List what version 1.1 contains
33+
-- List what version 1.1 contains.
3334
\dx+ pg_walinspect
3435

3536
SELECT pg_drop_replication_slot('regress_pg_walinspect_slot');

contrib/pg_walinspect/sql/pg_walinspect.sql

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ SELECT 'init' FROM pg_create_physical_replication_slot('regress_pg_walinspect_sl
88

99
CREATE TABLE sample_tbl(col1 int, col2 int);
1010

11-
-- Save some LSNs for comparisons
11+
-- Save some LSNs for comparisons.
1212
SELECT pg_current_wal_lsn() AS wal_lsn1 \gset
1313
INSERT INTO sample_tbl SELECT * FROM generate_series(1, 2);
1414
SELECT pg_current_wal_lsn() AS wal_lsn2 \gset
@@ -32,24 +32,24 @@ SELECT * FROM pg_get_wal_stats(:'wal_lsn2', :'wal_lsn1');
3232
SELECT * FROM pg_get_wal_block_info(:'wal_lsn2', :'wal_lsn1');
3333

3434
-- LSNs with the highest value possible.
35-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_record_info('FFFFFFFF/FFFFFFFF');
35+
SELECT * FROM pg_get_wal_record_info('FFFFFFFF/FFFFFFFF');
3636
-- Success with end LSNs.
37-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_records_info(:'wal_lsn1', 'FFFFFFFF/FFFFFFFF');
38-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_stats(:'wal_lsn1', 'FFFFFFFF/FFFFFFFF');
39-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_block_info(:'wal_lsn1', 'FFFFFFFF/FFFFFFFF');
40-
-- failures with start LSNs
41-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_records_info('FFFFFFFF/FFFFFFFE', 'FFFFFFFF/FFFFFFFF');
42-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_stats('FFFFFFFF/FFFFFFFE', 'FFFFFFFF/FFFFFFFF');
43-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_block_info('FFFFFFFF/FFFFFFFE', 'FFFFFFFF/FFFFFFFF');
37+
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_records_info(:'wal_lsn1', 'FFFFFFFF/FFFFFFFF');
38+
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_stats(:'wal_lsn1', 'FFFFFFFF/FFFFFFFF');
39+
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_block_info(:'wal_lsn1', 'FFFFFFFF/FFFFFFFF');
40+
-- Failures with start LSNs.
41+
SELECT * FROM pg_get_wal_records_info('FFFFFFFF/FFFFFFFE', 'FFFFFFFF/FFFFFFFF');
42+
SELECT * FROM pg_get_wal_stats('FFFFFFFF/FFFFFFFE', 'FFFFFFFF/FFFFFFFF');
43+
SELECT * FROM pg_get_wal_block_info('FFFFFFFF/FFFFFFFE', 'FFFFFFFF/FFFFFFFF');
4444

4545
-- ===================================================================
4646
-- Tests for all function executions
4747
-- ===================================================================
4848

49-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_record_info(:'wal_lsn1');
50-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_records_info(:'wal_lsn1', :'wal_lsn2');
51-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_stats(:'wal_lsn1', :'wal_lsn2');
52-
SELECT COUNT(*) >= 0 AS ok FROM pg_get_wal_block_info(:'wal_lsn1', :'wal_lsn2');
49+
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_record_info(:'wal_lsn1');
50+
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_records_info(:'wal_lsn1', :'wal_lsn2');
51+
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_stats(:'wal_lsn1', :'wal_lsn2');
52+
SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_block_info(:'wal_lsn1', :'wal_lsn2');
5353

5454
-- ===================================================================
5555
-- Test for filtering out WAL records of a particular table
@@ -72,7 +72,7 @@ SELECT COUNT(*) >= 1 AS ok FROM pg_get_wal_records_info(:'wal_lsn1', :'wal_lsn2'
7272
-- Tests to get block information from WAL record
7373
-- ===================================================================
7474

75-
-- Update table to generate some block data
75+
-- Update table to generate some block data.
7676
SELECT pg_current_wal_lsn() AS wal_lsn3 \gset
7777
UPDATE sample_tbl SET col1 = col1 + 1 WHERE col1 = 1;
7878
SELECT pg_current_wal_lsn() AS wal_lsn4 \gset
@@ -103,9 +103,9 @@ SELECT has_function_privilege('regress_pg_walinspect',
103103
SELECT has_function_privilege('regress_pg_walinspect',
104104
'pg_get_wal_block_info(pg_lsn, pg_lsn) ', 'EXECUTE'); -- no
105105

106-
-- Functions accessible by users with role pg_read_server_files
107-
106+
-- Functions accessible by users with role pg_read_server_files.
108107
GRANT pg_read_server_files TO regress_pg_walinspect;
108+
109109
SELECT has_function_privilege('regress_pg_walinspect',
110110
'pg_get_wal_record_info(pg_lsn)', 'EXECUTE'); -- yes
111111
SELECT has_function_privilege('regress_pg_walinspect',
@@ -117,7 +117,7 @@ SELECT has_function_privilege('regress_pg_walinspect',
117117

118118
REVOKE pg_read_server_files FROM regress_pg_walinspect;
119119

120-
-- Superuser can grant execute to other users
120+
-- Superuser can grant execute to other users.
121121
GRANT EXECUTE ON FUNCTION pg_get_wal_record_info(pg_lsn)
122122
TO regress_pg_walinspect;
123123
GRANT EXECUTE ON FUNCTION pg_get_wal_records_info(pg_lsn, pg_lsn)

0 commit comments

Comments
 (0)