Skip to content

Commit 29e312b

Browse files
committed
pageinspect: Remove platform-dependent values from hash tests.
Per a report from Tom Lane, the ffactor reported by hash_metapage_info and the free_size reported by hash_page_stats vary by platform. Ashutosh Sharma and Robert Haas
1 parent c6eeb67 commit 29e312b

File tree

2 files changed

+79
-29
lines changed

2 files changed

+79
-29
lines changed

contrib/pageinspect/expected/hash.out

Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,13 @@ DETAIL: Expected 00000001, got 00000002.
4747
SELECT * FROM hash_bitmap_info('test_hash_a_idx', 5);
4848
ERROR: page is not an overflow page
4949
DETAIL: Expected 00000001, got 00000004.
50-
SELECT * FROM hash_metapage_info(get_raw_page('test_hash_a_idx', 0));
50+
SELECT magic, version, ntuples, bsize, bmsize, bmshift, maxbucket, highmask,
51+
lowmask, ovflpoint, firstfree, nmaps, procid, spares, mapp FROM
52+
hash_metapage_info(get_raw_page('test_hash_a_idx', 0));
5153
-[ RECORD 1 ]----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5254
magic | 105121344
5355
version | 2
5456
ntuples | 1
55-
ffactor | 307
5657
bsize | 8152
5758
bmsize | 4096
5859
bmshift | 15
@@ -66,67 +67,85 @@ procid | 450
6667
spares | {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
6768
mapp | {5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
6869

69-
SELECT * FROM hash_metapage_info(get_raw_page('test_hash_a_idx', 1));
70+
SELECT magic, version, ntuples, bsize, bmsize, bmshift, maxbucket, highmask,
71+
lowmask, ovflpoint, firstfree, nmaps, procid, spares, mapp FROM
72+
hash_metapage_info(get_raw_page('test_hash_a_idx', 1));
7073
ERROR: page is not a hash meta page
71-
SELECT * FROM hash_metapage_info(get_raw_page('test_hash_a_idx', 2));
74+
SELECT magic, version, ntuples, bsize, bmsize, bmshift, maxbucket, highmask,
75+
lowmask, ovflpoint, firstfree, nmaps, procid, spares, mapp FROM
76+
hash_metapage_info(get_raw_page('test_hash_a_idx', 2));
7277
ERROR: page is not a hash meta page
73-
SELECT * FROM hash_metapage_info(get_raw_page('test_hash_a_idx', 3));
78+
SELECT magic, version, ntuples, bsize, bmsize, bmshift, maxbucket, highmask,
79+
lowmask, ovflpoint, firstfree, nmaps, procid, spares, mapp FROM
80+
hash_metapage_info(get_raw_page('test_hash_a_idx', 3));
7481
ERROR: page is not a hash meta page
75-
SELECT * FROM hash_metapage_info(get_raw_page('test_hash_a_idx', 4));
82+
SELECT magic, version, ntuples, bsize, bmsize, bmshift, maxbucket, highmask,
83+
lowmask, ovflpoint, firstfree, nmaps, procid, spares, mapp FROM
84+
hash_metapage_info(get_raw_page('test_hash_a_idx', 4));
7685
ERROR: page is not a hash meta page
77-
SELECT * FROM hash_metapage_info(get_raw_page('test_hash_a_idx', 5));
86+
SELECT magic, version, ntuples, bsize, bmsize, bmshift, maxbucket, highmask,
87+
lowmask, ovflpoint, firstfree, nmaps, procid, spares, mapp FROM
88+
hash_metapage_info(get_raw_page('test_hash_a_idx', 5));
7889
ERROR: page is not a hash meta page
79-
SELECT * FROM hash_page_stats(get_raw_page('test_hash_a_idx', 0));
90+
SELECT live_items, dead_items, page_size, hasho_prevblkno, hasho_nextblkno,
91+
hasho_bucket, hasho_flag, hasho_page_id FROM
92+
hash_page_stats(get_raw_page('test_hash_a_idx', 0));
8093
ERROR: page is not a hash bucket or overflow page
81-
SELECT * FROM hash_page_stats(get_raw_page('test_hash_a_idx', 1));
94+
SELECT live_items, dead_items, page_size, hasho_prevblkno, hasho_nextblkno,
95+
hasho_bucket, hasho_flag, hasho_page_id FROM
96+
hash_page_stats(get_raw_page('test_hash_a_idx', 1));
8297
-[ RECORD 1 ]---+-----------
8398
live_items | 0
8499
dead_items | 0
85100
page_size | 8192
86-
free_size | 8148
87101
hasho_prevblkno | 4294967295
88102
hasho_nextblkno | 4294967295
89103
hasho_bucket | 0
90104
hasho_flag | 2
91105
hasho_page_id | 65408
92106

93-
SELECT * FROM hash_page_stats(get_raw_page('test_hash_a_idx', 2));
107+
SELECT live_items, dead_items, page_size, hasho_prevblkno, hasho_nextblkno,
108+
hasho_bucket, hasho_flag, hasho_page_id FROM
109+
hash_page_stats(get_raw_page('test_hash_a_idx', 2));
94110
-[ RECORD 1 ]---+-----------
95111
live_items | 0
96112
dead_items | 0
97113
page_size | 8192
98-
free_size | 8148
99114
hasho_prevblkno | 4294967295
100115
hasho_nextblkno | 4294967295
101116
hasho_bucket | 1
102117
hasho_flag | 2
103118
hasho_page_id | 65408
104119

105-
SELECT * FROM hash_page_stats(get_raw_page('test_hash_a_idx', 3));
120+
SELECT live_items, dead_items, page_size, hasho_prevblkno, hasho_nextblkno,
121+
hasho_bucket, hasho_flag, hasho_page_id FROM
122+
hash_page_stats(get_raw_page('test_hash_a_idx', 3));
106123
-[ RECORD 1 ]---+-----------
107124
live_items | 1
108125
dead_items | 0
109126
page_size | 8192
110-
free_size | 8128
111127
hasho_prevblkno | 4294967295
112128
hasho_nextblkno | 4294967295
113129
hasho_bucket | 2
114130
hasho_flag | 2
115131
hasho_page_id | 65408
116132

117-
SELECT * FROM hash_page_stats(get_raw_page('test_hash_a_idx', 4));
133+
SELECT live_items, dead_items, page_size, hasho_prevblkno, hasho_nextblkno,
134+
hasho_bucket, hasho_flag, hasho_page_id FROM
135+
hash_page_stats(get_raw_page('test_hash_a_idx', 4));
118136
-[ RECORD 1 ]---+-----------
119137
live_items | 0
120138
dead_items | 0
121139
page_size | 8192
122-
free_size | 8148
123140
hasho_prevblkno | 4294967295
124141
hasho_nextblkno | 4294967295
125142
hasho_bucket | 3
126143
hasho_flag | 2
127144
hasho_page_id | 65408
128145

129-
SELECT * FROM hash_page_stats(get_raw_page('test_hash_a_idx', 5));
146+
SELECT live_items, dead_items, page_size, hasho_prevblkno, hasho_nextblkno,
147+
hasho_bucket, hasho_flag, hasho_page_id FROM
148+
hash_page_stats(get_raw_page('test_hash_a_idx', 5));
130149
ERROR: page is not a hash bucket or overflow page
131150
SELECT * FROM hash_page_items(get_raw_page('test_hash_a_idx', 0));
132151
ERROR: page is not a hash bucket or overflow page

contrib/pageinspect/sql/hash.sql

Lines changed: 43 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,53 @@ SELECT * FROM hash_bitmap_info('test_hash_a_idx', 4);
2121
SELECT * FROM hash_bitmap_info('test_hash_a_idx', 5);
2222

2323

24+
SELECT magic, version, ntuples, bsize, bmsize, bmshift, maxbucket, highmask,
25+
lowmask, ovflpoint, firstfree, nmaps, procid, spares, mapp FROM
26+
hash_metapage_info(get_raw_page('test_hash_a_idx', 0));
2427

25-
SELECT * FROM hash_metapage_info(get_raw_page('test_hash_a_idx', 0));
26-
SELECT * FROM hash_metapage_info(get_raw_page('test_hash_a_idx', 1));
27-
SELECT * FROM hash_metapage_info(get_raw_page('test_hash_a_idx', 2));
28-
SELECT * FROM hash_metapage_info(get_raw_page('test_hash_a_idx', 3));
29-
SELECT * FROM hash_metapage_info(get_raw_page('test_hash_a_idx', 4));
30-
SELECT * FROM hash_metapage_info(get_raw_page('test_hash_a_idx', 5));
28+
SELECT magic, version, ntuples, bsize, bmsize, bmshift, maxbucket, highmask,
29+
lowmask, ovflpoint, firstfree, nmaps, procid, spares, mapp FROM
30+
hash_metapage_info(get_raw_page('test_hash_a_idx', 1));
3131

32+
SELECT magic, version, ntuples, bsize, bmsize, bmshift, maxbucket, highmask,
33+
lowmask, ovflpoint, firstfree, nmaps, procid, spares, mapp FROM
34+
hash_metapage_info(get_raw_page('test_hash_a_idx', 2));
3235

33-
SELECT * FROM hash_page_stats(get_raw_page('test_hash_a_idx', 0));
34-
SELECT * FROM hash_page_stats(get_raw_page('test_hash_a_idx', 1));
35-
SELECT * FROM hash_page_stats(get_raw_page('test_hash_a_idx', 2));
36-
SELECT * FROM hash_page_stats(get_raw_page('test_hash_a_idx', 3));
37-
SELECT * FROM hash_page_stats(get_raw_page('test_hash_a_idx', 4));
38-
SELECT * FROM hash_page_stats(get_raw_page('test_hash_a_idx', 5));
36+
SELECT magic, version, ntuples, bsize, bmsize, bmshift, maxbucket, highmask,
37+
lowmask, ovflpoint, firstfree, nmaps, procid, spares, mapp FROM
38+
hash_metapage_info(get_raw_page('test_hash_a_idx', 3));
3939

40+
SELECT magic, version, ntuples, bsize, bmsize, bmshift, maxbucket, highmask,
41+
lowmask, ovflpoint, firstfree, nmaps, procid, spares, mapp FROM
42+
hash_metapage_info(get_raw_page('test_hash_a_idx', 4));
43+
44+
SELECT magic, version, ntuples, bsize, bmsize, bmshift, maxbucket, highmask,
45+
lowmask, ovflpoint, firstfree, nmaps, procid, spares, mapp FROM
46+
hash_metapage_info(get_raw_page('test_hash_a_idx', 5));
47+
48+
SELECT live_items, dead_items, page_size, hasho_prevblkno, hasho_nextblkno,
49+
hasho_bucket, hasho_flag, hasho_page_id FROM
50+
hash_page_stats(get_raw_page('test_hash_a_idx', 0));
51+
52+
SELECT live_items, dead_items, page_size, hasho_prevblkno, hasho_nextblkno,
53+
hasho_bucket, hasho_flag, hasho_page_id FROM
54+
hash_page_stats(get_raw_page('test_hash_a_idx', 1));
55+
56+
SELECT live_items, dead_items, page_size, hasho_prevblkno, hasho_nextblkno,
57+
hasho_bucket, hasho_flag, hasho_page_id FROM
58+
hash_page_stats(get_raw_page('test_hash_a_idx', 2));
59+
60+
SELECT live_items, dead_items, page_size, hasho_prevblkno, hasho_nextblkno,
61+
hasho_bucket, hasho_flag, hasho_page_id FROM
62+
hash_page_stats(get_raw_page('test_hash_a_idx', 3));
63+
64+
SELECT live_items, dead_items, page_size, hasho_prevblkno, hasho_nextblkno,
65+
hasho_bucket, hasho_flag, hasho_page_id FROM
66+
hash_page_stats(get_raw_page('test_hash_a_idx', 4));
67+
68+
SELECT live_items, dead_items, page_size, hasho_prevblkno, hasho_nextblkno,
69+
hasho_bucket, hasho_flag, hasho_page_id FROM
70+
hash_page_stats(get_raw_page('test_hash_a_idx', 5));
4071

4172
SELECT * FROM hash_page_items(get_raw_page('test_hash_a_idx', 0));
4273
SELECT * FROM hash_page_items(get_raw_page('test_hash_a_idx', 1));

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy