Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 4f1882b

Browse filesBrowse 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
Copy full SHA for 4f1882b

File tree

4 files changed

+47
-45
lines changed
Filter options

4 files changed

+47
-45
lines changed

‎contrib/pg_walinspect/expected/oldextversions.out

Copy file name to clipboardExpand all lines: contrib/pg_walinspect/expected/oldextversions.out
+7-6Lines 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

Copy file name to clipboardExpand all lines: contrib/pg_walinspect/expected/pg_walinspect.out
+16-16Lines 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

Copy file name to clipboardExpand all lines: contrib/pg_walinspect/sql/oldextversions.sql
+7-6Lines 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

Copy file name to clipboardExpand all lines: contrib/pg_walinspect/sql/pg_walinspect.sql
+17-17Lines 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 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.