Skip to content

Commit 25ff00c

Browse files
committed
Add alternate expected output for pg_buffercache with 4-node cluster
The existing expected output assumes a 2-node cluster. CI uses a standard demo cluster with 1 coordinator + 3 primaries (4 nodes), producing 4 rows from gp_buffercache_summary and a different buffer count match result. Add pg_buffercache_1.out for this configuration.
1 parent 8f47803 commit 25ff00c

1 file changed

Lines changed: 173 additions & 0 deletions

File tree

Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
CREATE EXTENSION pg_buffercache;
2+
select count(*) = (select setting::bigint
3+
from pg_settings
4+
where name = 'shared_buffers')
5+
from pg_buffercache;
6+
?column?
7+
----------
8+
t
9+
(1 row)
10+
11+
select buffers_used + buffers_unused > 0,
12+
buffers_dirty <= buffers_used,
13+
buffers_pinned <= buffers_used
14+
from pg_buffercache_summary();
15+
?column? | ?column? | ?column?
16+
----------+----------+----------
17+
t | t | t
18+
(1 row)
19+
20+
SELECT count(*) > 0 FROM pg_buffercache_usage_counts() WHERE buffers >= 0;
21+
?column?
22+
----------
23+
t
24+
(1 row)
25+
26+
-- Check that the functions / views can't be accessed by default. To avoid
27+
-- having to create a dedicated user, use the pg_database_owner pseudo-role.
28+
SET ROLE pg_database_owner;
29+
SELECT * FROM pg_buffercache;
30+
ERROR: permission denied for view pg_buffercache
31+
SELECT * FROM pg_buffercache_pages() AS p (wrong int);
32+
ERROR: permission denied for function pg_buffercache_pages
33+
SELECT * FROM pg_buffercache_summary();
34+
ERROR: permission denied for function pg_buffercache_summary
35+
SELECT * FROM pg_buffercache_usage_counts();
36+
ERROR: permission denied for function pg_buffercache_usage_counts
37+
RESET role;
38+
SELECT count(*) > 0 FROM pg_buffercache_usage_counts() WHERE buffers >= 0;
39+
?column?
40+
----------
41+
t
42+
(1 row)
43+
44+
-- Test GPDB functions/views
45+
SELECT count(*) = (select setting::bigint
46+
from pg_settings
47+
where name = 'shared_buffers') *
48+
(select count(*) from gp_segment_configuration where role='p')
49+
as buffers
50+
FROM gp_buffercache;
51+
buffers
52+
---------
53+
t
54+
(1 row)
55+
56+
SELECT buffers_used + buffers_unused > 0,
57+
buffers_dirty <= buffers_used,
58+
buffers_pinned <= buffers_used
59+
FROM gp_buffercache_summary;
60+
?column? | ?column? | ?column?
61+
----------+----------+----------
62+
t | t | t
63+
t | t | t
64+
t | t | t
65+
t | t | t
66+
(4 rows)
67+
68+
SELECT buffers_used + buffers_unused > 0,
69+
buffers_dirty <= buffers_used,
70+
buffers_pinned <= buffers_used
71+
FROM gp_buffercache_summary_aggregated;
72+
?column? | ?column? | ?column?
73+
----------+----------+----------
74+
t | t | t
75+
(1 row)
76+
77+
SELECT count(*) > 0 FROM gp_buffercache_usage_counts WHERE buffers >= 0;
78+
?column?
79+
----------
80+
t
81+
(1 row)
82+
83+
SELECT count(*) > 0 FROM gp_buffercache_usage_counts_aggregated WHERE buffers >= 0;
84+
?column?
85+
----------
86+
t
87+
(1 row)
88+
89+
-- Check that the functions / views can't be accessed by default.
90+
SET ROLE pg_database_owner;
91+
-- GPDB
92+
SELECT * FROM pg_buffercache_summary;
93+
ERROR: permission denied for view pg_buffercache_summary
94+
SELECT * FROM pg_buffercache_usage_counts;
95+
ERROR: permission denied for view pg_buffercache_usage_counts
96+
SELECT * FROM gp_buffercache;
97+
ERROR: permission denied for view gp_buffercache
98+
SELECT * FROM gp_buffercache_summary;
99+
ERROR: permission denied for view gp_buffercache_summary
100+
SELECT * FROM gp_buffercache_usage_counts;
101+
ERROR: permission denied for view gp_buffercache_usage_counts
102+
SELECT * FROM gp_buffercache_summary_aggregated;
103+
ERROR: permission denied for view gp_buffercache_summary_aggregated
104+
SELECT * FROM gp_buffercache_usage_counts_aggregated;
105+
ERROR: permission denied for view gp_buffercache_usage_counts_aggregated
106+
RESET ROLE;
107+
-- Check that pg_monitor is allowed to query view / function
108+
SET ROLE pg_monitor;
109+
SELECT count(*) > 0 FROM pg_buffercache;
110+
?column?
111+
----------
112+
t
113+
(1 row)
114+
115+
SELECT buffers_used + buffers_unused > 0 FROM pg_buffercache_summary();
116+
?column?
117+
----------
118+
t
119+
(1 row)
120+
121+
SELECT count(*) > 0 FROM pg_buffercache_usage_counts();
122+
?column?
123+
----------
124+
t
125+
(1 row)
126+
127+
-- GPDB
128+
SELECT count(*) > 0 FROM pg_buffercache_summary;
129+
?column?
130+
----------
131+
t
132+
(1 row)
133+
134+
SELECT count(*) > 0 FROM pg_buffercache_usage_counts;
135+
?column?
136+
----------
137+
t
138+
(1 row)
139+
140+
SELECT count(*) > 0 FROM gp_buffercache;
141+
?column?
142+
----------
143+
t
144+
(1 row)
145+
146+
SELECT buffers_used + buffers_unused > 0 FROM gp_buffercache_summary;
147+
?column?
148+
----------
149+
t
150+
t
151+
t
152+
t
153+
(4 rows)
154+
155+
SELECT buffers_used + buffers_unused > 0 FROM gp_buffercache_summary_aggregated;
156+
?column?
157+
----------
158+
t
159+
(1 row)
160+
161+
SELECT count(*) > 0 FROM gp_buffercache_usage_counts;
162+
?column?
163+
----------
164+
t
165+
(1 row)
166+
167+
SELECT count(*) > 0 FROM gp_buffercache_usage_counts_aggregated;
168+
?column?
169+
----------
170+
t
171+
(1 row)
172+
173+
RESET ROLE;

0 commit comments

Comments
 (0)