Re: index prefetching

From: Tomas Vondra <tomas(at)vondra(dot)me>
To: Peter Geoghegan <pg(at)bowt(dot)ie>
Cc: Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Melanie Plageman <melanieplageman(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Georgios <gkokolatos(at)protonmail(dot)com>, Konstantin Knizhnik <knizhnik(at)garret(dot)ru>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>
Subject: Re: index prefetching
Date: 2025-08-13 17:01:36
Message-ID: 35dbfe55-551b-4671-88c4-dc3c2abbc274@vondra.me
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 8/13/25 18:36, Peter Geoghegan wrote:
> On Wed, Aug 13, 2025 at 8:15 AM Tomas Vondra <tomas(at)vondra(dot)me> wrote:
>> 1) created a second table with an "inverse pattern" that's decreasing:
>>
>> create table t2 (like t) with (fillfactor = 20);
>> insert into t2 select -a, b from t;
>> create index idx2 on t2 (a);
>> alter index idx2 set (deduplicate_items = false);
>> reindex index idx2;
>>
>> The idea is that
>>
>> SELECT * FROM t WHERE (a BETWEEN x AND y) ORDER BY a ASC
>>
>> is the same "block pattern" as
>>
>> SELECT * FROM t2 WHERE (a BETWEEN -y AND -x) ORDER BY a DESC
>
> A quick look at "idx2" using pageinspect seems to show heap block numbers that
> are significantly less in-order than those from the original "idx" index,
> though. While the original "idx" has block numbers that are *almost* in perfect
> order (I do see the odd index tuple that has a non-consecutive TID, possibly
> just due to the influence of the heap FSM), "idx2" seems to have leaf pages that
> each have heap blocks that are somewhat "shuffled" within each page.
>
> While the average total number of heap blocks seen with "idx2" might not be very
> much higher than "idx", it is nevertheless true that the heap TIDs appear in a
> less consistent order. So AFAICT we have no principled reason to expect the
> "runs" seen on "idx2" to be anything like "idx" (maybe the performance gap is a
> real problem, since the physical attributes of each index aren't hugely
> different, but even then the "runs" stats don't seem all that uninformative).
>
> I'll show what I mean by "shuffled" via a comparison of 2 random leaf pages from
> each index. Here's what block 5555 from "idx2" looks like according to
> bt_page_items (it shows a certain amount of "localized shuffling"):
>
> ┌────────────┬───────────────┬───────────────┬─────────────┐
> │ itemoffset │ ctid │ data │ htid │
> ├────────────┼───────────────┼───────────────┼─────────────┤
> │ 1 │ (379861,4097) │ (a)=(-249285) │ (379861,7) │
> │ 2 │ (379880,13) │ (a)=(-249297) │ (379880,13) │
> │ 3 │ (379880,14) │ (a)=(-249297) │ (379880,14) │
> │ 4 │ (379880,15) │ (a)=(-249297) │ (379880,15) │
> │ 5 │ (379880,16) │ (a)=(-249297) │ (379880,16) │
> │ 6 │ (379880,17) │ (a)=(-249297) │ (379880,17) │
> │ 7 │ (379880,18) │ (a)=(-249297) │ (379880,18) │
> │ 8 │ (379880,19) │ (a)=(-249297) │ (379880,19) │
> │ 9 │ (379880,20) │ (a)=(-249297) │ (379880,20) │
> │ 10 │ (379880,21) │ (a)=(-249297) │ (379880,21) │
> │ 11 │ (379881,2) │ (a)=(-249297) │ (379881,2) │
> │ 12 │ (379881,3) │ (a)=(-249297) │ (379881,3) │
> │ 13 │ (379881,4) │ (a)=(-249297) │ (379881,4) │
> │ 14 │ (379878,2) │ (a)=(-249296) │ (379878,2) │
> │ 15 │ (379878,3) │ (a)=(-249296) │ (379878,3) │
> │ 16 │ (379878,5) │ (a)=(-249296) │ (379878,5) │
> │ 17 │ (379878,6) │ (a)=(-249296) │ (379878,6) │
> │ 18 │ (379878,7) │ (a)=(-249296) │ (379878,7) │
> │ 19 │ (379878,8) │ (a)=(-249296) │ (379878,8) │
> │ 20 │ (379878,9) │ (a)=(-249296) │ (379878,9) │
> │ 21 │ (379878,10) │ (a)=(-249296) │ (379878,10) │
> │ 22 │ (379878,11) │ (a)=(-249296) │ (379878,11) │
> │ 23 │ (379878,12) │ (a)=(-249296) │ (379878,12) │
> │ 24 │ (379878,13) │ (a)=(-249296) │ (379878,13) │
> │ 25 │ (379878,14) │ (a)=(-249296) │ (379878,14) │
> │ 26 │ (379878,15) │ (a)=(-249296) │ (379878,15) │
> │ 27 │ (379878,16) │ (a)=(-249296) │ (379878,16) │
> │ 28 │ (379878,17) │ (a)=(-249296) │ (379878,17) │
> │ 29 │ (379878,18) │ (a)=(-249296) │ (379878,18) │
> │ 30 │ (379878,19) │ (a)=(-249296) │ (379878,19) │
> │ 31 │ (379878,20) │ (a)=(-249296) │ (379878,20) │
> │ 32 │ (379878,21) │ (a)=(-249296) │ (379878,21) │
> │ 33 │ (379879,1) │ (a)=(-249296) │ (379879,1) │
> │ 34 │ (379879,2) │ (a)=(-249296) │ (379879,2) │
> │ 35 │ (379879,3) │ (a)=(-249296) │ (379879,3) │
> │ 36 │ (379879,4) │ (a)=(-249296) │ (379879,4) │
> │ 37 │ (379879,5) │ (a)=(-249296) │ (379879,5) │
> │ 38 │ (379879,6) │ (a)=(-249296) │ (379879,6) │
> │ 39 │ (379879,7) │ (a)=(-249296) │ (379879,7) │
> │ 40 │ (379879,8) │ (a)=(-249296) │ (379879,8) │
> │ 41 │ (379879,9) │ (a)=(-249296) │ (379879,9) │
> │ 42 │ (379879,10) │ (a)=(-249296) │ (379879,10) │
> │ 43 │ (379879,12) │ (a)=(-249296) │ (379879,12) │
> │ 44 │ (379879,13) │ (a)=(-249296) │ (379879,13) │
> │ 45 │ (379879,14) │ (a)=(-249296) │ (379879,14) │
> │ 46 │ (379876,10) │ (a)=(-249295) │ (379876,10) │
> │ 47 │ (379876,12) │ (a)=(-249295) │ (379876,12) │
> │ 48 │ (379876,14) │ (a)=(-249295) │ (379876,14) │
> │ 49 │ (379876,16) │ (a)=(-249295) │ (379876,16) │
> │ 50 │ (379876,17) │ (a)=(-249295) │ (379876,17) │
> │ 51 │ (379876,18) │ (a)=(-249295) │ (379876,18) │
> │ 52 │ (379876,19) │ (a)=(-249295) │ (379876,19) │
> │ 53 │ (379876,20) │ (a)=(-249295) │ (379876,20) │
> │ 54 │ (379876,21) │ (a)=(-249295) │ (379876,21) │
> │ 55 │ (379877,1) │ (a)=(-249295) │ (379877,1) │
> │ 56 │ (379877,2) │ (a)=(-249295) │ (379877,2) │
> │ 57 │ (379877,3) │ (a)=(-249295) │ (379877,3) │
> │ 58 │ (379877,4) │ (a)=(-249295) │ (379877,4) │
> │ 59 │ (379877,5) │ (a)=(-249295) │ (379877,5) │
> │ 60 │ (379877,6) │ (a)=(-249295) │ (379877,6) │
> │ 61 │ (379877,7) │ (a)=(-249295) │ (379877,7) │
> │ 62 │ (379877,8) │ (a)=(-249295) │ (379877,8) │
> │ 63 │ (379877,9) │ (a)=(-249295) │ (379877,9) │
> │ 64 │ (379877,10) │ (a)=(-249295) │ (379877,10) │
> │ 65 │ (379877,11) │ (a)=(-249295) │ (379877,11) │
> │ 66 │ (379877,12) │ (a)=(-249295) │ (379877,12) │
> │ 67 │ (379877,13) │ (a)=(-249295) │ (379877,13) │
> │ 68 │ (379877,14) │ (a)=(-249295) │ (379877,14) │
> │ 69 │ (379877,15) │ (a)=(-249295) │ (379877,15) │
> │ 70 │ (379877,16) │ (a)=(-249295) │ (379877,16) │
> │ 71 │ (379877,17) │ (a)=(-249295) │ (379877,17) │
> │ 72 │ (379877,18) │ (a)=(-249295) │ (379877,18) │
> │ 73 │ (379877,19) │ (a)=(-249295) │ (379877,19) │
> │ 74 │ (379877,20) │ (a)=(-249295) │ (379877,20) │
> │ 75 │ (379877,21) │ (a)=(-249295) │ (379877,21) │
> │ 76 │ (379878,1) │ (a)=(-249295) │ (379878,1) │
> │ 77 │ (379878,4) │ (a)=(-249295) │ (379878,4) │
> │ 78 │ (379874,20) │ (a)=(-249294) │ (379874,20) │
> │ 79 │ (379875,2) │ (a)=(-249294) │ (379875,2) │
> │ 80 │ (379875,3) │ (a)=(-249294) │ (379875,3) │
> │ 81 │ (379875,5) │ (a)=(-249294) │ (379875,5) │
> │ 82 │ (379875,6) │ (a)=(-249294) │ (379875,6) │
> │ 83 │ (379875,7) │ (a)=(-249294) │ (379875,7) │
> │ 84 │ (379875,8) │ (a)=(-249294) │ (379875,8) │
> │ 85 │ (379875,9) │ (a)=(-249294) │ (379875,9) │
> │ 86 │ (379875,10) │ (a)=(-249294) │ (379875,10) │
> │ 87 │ (379875,11) │ (a)=(-249294) │ (379875,11) │
> │ 88 │ (379875,12) │ (a)=(-249294) │ (379875,12) │
> │ 89 │ (379875,13) │ (a)=(-249294) │ (379875,13) │
> │ 90 │ (379875,14) │ (a)=(-249294) │ (379875,14) │
> │ 91 │ (379875,15) │ (a)=(-249294) │ (379875,15) │
> │ 92 │ (379875,16) │ (a)=(-249294) │ (379875,16) │
> │ 93 │ (379875,17) │ (a)=(-249294) │ (379875,17) │
> │ 94 │ (379875,18) │ (a)=(-249294) │ (379875,18) │
> │ 95 │ (379875,19) │ (a)=(-249294) │ (379875,19) │
> │ 96 │ (379875,20) │ (a)=(-249294) │ (379875,20) │
> │ 97 │ (379875,21) │ (a)=(-249294) │ (379875,21) │
> │ 98 │ (379876,1) │ (a)=(-249294) │ (379876,1) │
> │ 99 │ (379876,2) │ (a)=(-249294) │ (379876,2) │
> │ 100 │ (379876,3) │ (a)=(-249294) │ (379876,3) │
> │ 101 │ (379876,4) │ (a)=(-249294) │ (379876,4) │
> │ 102 │ (379876,5) │ (a)=(-249294) │ (379876,5) │
> │ 103 │ (379876,6) │ (a)=(-249294) │ (379876,6) │
> │ 104 │ (379876,7) │ (a)=(-249294) │ (379876,7) │
> │ 105 │ (379876,8) │ (a)=(-249294) │ (379876,8) │
> │ 106 │ (379876,9) │ (a)=(-249294) │ (379876,9) │
> │ 107 │ (379876,11) │ (a)=(-249294) │ (379876,11) │
> │ 108 │ (379876,13) │ (a)=(-249294) │ (379876,13) │
> │ 109 │ (379876,15) │ (a)=(-249294) │ (379876,15) │
> │ 110 │ (379873,11) │ (a)=(-249293) │ (379873,11) │
> │ 111 │ (379873,13) │ (a)=(-249293) │ (379873,13) │
> │ 112 │ (379873,14) │ (a)=(-249293) │ (379873,14) │
> │ 113 │ (379873,15) │ (a)=(-249293) │ (379873,15) │
> │ 114 │ (379873,16) │ (a)=(-249293) │ (379873,16) │
> │ 115 │ (379873,17) │ (a)=(-249293) │ (379873,17) │
> │ 116 │ (379873,18) │ (a)=(-249293) │ (379873,18) │
> │ 117 │ (379873,19) │ (a)=(-249293) │ (379873,19) │
> │ 118 │ (379873,20) │ (a)=(-249293) │ (379873,20) │
> │ 119 │ (379873,21) │ (a)=(-249293) │ (379873,21) │
> │ 120 │ (379874,1) │ (a)=(-249293) │ (379874,1) │
> │ 121 │ (379874,2) │ (a)=(-249293) │ (379874,2) │
> │ 122 │ (379874,3) │ (a)=(-249293) │ (379874,3) │
> │ 123 │ (379874,4) │ (a)=(-249293) │ (379874,4) │
> │ 124 │ (379874,5) │ (a)=(-249293) │ (379874,5) │
> │ 125 │ (379874,6) │ (a)=(-249293) │ (379874,6) │
> │ 126 │ (379874,7) │ (a)=(-249293) │ (379874,7) │
> │ 127 │ (379874,8) │ (a)=(-249293) │ (379874,8) │
> │ 128 │ (379874,9) │ (a)=(-249293) │ (379874,9) │
> │ 129 │ (379874,10) │ (a)=(-249293) │ (379874,10) │
> │ 130 │ (379874,11) │ (a)=(-249293) │ (379874,11) │
> │ 131 │ (379874,12) │ (a)=(-249293) │ (379874,12) │
> │ 132 │ (379874,13) │ (a)=(-249293) │ (379874,13) │
> │ 133 │ (379874,14) │ (a)=(-249293) │ (379874,14) │
> │ 134 │ (379874,15) │ (a)=(-249293) │ (379874,15) │
> │ 135 │ (379874,16) │ (a)=(-249293) │ (379874,16) │
> │ 136 │ (379874,17) │ (a)=(-249293) │ (379874,17) │
> │ 137 │ (379874,18) │ (a)=(-249293) │ (379874,18) │
> │ 138 │ (379874,19) │ (a)=(-249293) │ (379874,19) │
> │ 139 │ (379874,21) │ (a)=(-249293) │ (379874,21) │
> │ 140 │ (379875,1) │ (a)=(-249293) │ (379875,1) │
> │ 141 │ (379875,4) │ (a)=(-249293) │ (379875,4) │
> │ 142 │ (379871,21) │ (a)=(-249292) │ (379871,21) │
> │ 143 │ (379872,2) │ (a)=(-249292) │ (379872,2) │
> │ 144 │ (379872,3) │ (a)=(-249292) │ (379872,3) │
> │ 145 │ (379872,4) │ (a)=(-249292) │ (379872,4) │
> │ 146 │ (379872,5) │ (a)=(-249292) │ (379872,5) │
> │ 147 │ (379872,6) │ (a)=(-249292) │ (379872,6) │
> │ 148 │ (379872,7) │ (a)=(-249292) │ (379872,7) │
> │ 149 │ (379872,8) │ (a)=(-249292) │ (379872,8) │
> │ 150 │ (379872,9) │ (a)=(-249292) │ (379872,9) │
> │ 151 │ (379872,10) │ (a)=(-249292) │ (379872,10) │
> │ 152 │ (379872,11) │ (a)=(-249292) │ (379872,11) │
> │ 153 │ (379872,12) │ (a)=(-249292) │ (379872,12) │
> │ 154 │ (379872,13) │ (a)=(-249292) │ (379872,13) │
> │ 155 │ (379872,14) │ (a)=(-249292) │ (379872,14) │
> │ 156 │ (379872,15) │ (a)=(-249292) │ (379872,15) │
> │ 157 │ (379872,16) │ (a)=(-249292) │ (379872,16) │
> │ 158 │ (379872,17) │ (a)=(-249292) │ (379872,17) │
> │ 159 │ (379872,18) │ (a)=(-249292) │ (379872,18) │
> │ 160 │ (379872,19) │ (a)=(-249292) │ (379872,19) │
> │ 161 │ (379872,20) │ (a)=(-249292) │ (379872,20) │
> │ 162 │ (379872,21) │ (a)=(-249292) │ (379872,21) │
> │ 163 │ (379873,1) │ (a)=(-249292) │ (379873,1) │
> │ 164 │ (379873,2) │ (a)=(-249292) │ (379873,2) │
> │ 165 │ (379873,3) │ (a)=(-249292) │ (379873,3) │
> │ 166 │ (379873,4) │ (a)=(-249292) │ (379873,4) │
> │ 167 │ (379873,5) │ (a)=(-249292) │ (379873,5) │
> │ 168 │ (379873,6) │ (a)=(-249292) │ (379873,6) │
> │ 169 │ (379873,7) │ (a)=(-249292) │ (379873,7) │
> │ 170 │ (379873,8) │ (a)=(-249292) │ (379873,8) │
> │ 171 │ (379873,9) │ (a)=(-249292) │ (379873,9) │
> │ 172 │ (379873,10) │ (a)=(-249292) │ (379873,10) │
> │ 173 │ (379873,12) │ (a)=(-249292) │ (379873,12) │
> │ 174 │ (379870,9) │ (a)=(-249291) │ (379870,9) │
> │ 175 │ (379870,11) │ (a)=(-249291) │ (379870,11) │
> │ 176 │ (379870,12) │ (a)=(-249291) │ (379870,12) │
> │ 177 │ (379870,14) │ (a)=(-249291) │ (379870,14) │
> │ 178 │ (379870,15) │ (a)=(-249291) │ (379870,15) │
> │ 179 │ (379870,16) │ (a)=(-249291) │ (379870,16) │
> │ 180 │ (379870,17) │ (a)=(-249291) │ (379870,17) │
> │ 181 │ (379870,18) │ (a)=(-249291) │ (379870,18) │
> │ 182 │ (379870,19) │ (a)=(-249291) │ (379870,19) │
> │ 183 │ (379870,20) │ (a)=(-249291) │ (379870,20) │
> │ 184 │ (379870,21) │ (a)=(-249291) │ (379870,21) │
> │ 185 │ (379871,1) │ (a)=(-249291) │ (379871,1) │
> │ 186 │ (379871,2) │ (a)=(-249291) │ (379871,2) │
> │ 187 │ (379871,3) │ (a)=(-249291) │ (379871,3) │
> │ 188 │ (379871,4) │ (a)=(-249291) │ (379871,4) │
> │ 189 │ (379871,5) │ (a)=(-249291) │ (379871,5) │
> │ 190 │ (379871,6) │ (a)=(-249291) │ (379871,6) │
> │ 191 │ (379871,7) │ (a)=(-249291) │ (379871,7) │
> │ 192 │ (379871,8) │ (a)=(-249291) │ (379871,8) │
> │ 193 │ (379871,9) │ (a)=(-249291) │ (379871,9) │
> │ 194 │ (379871,10) │ (a)=(-249291) │ (379871,10) │
> │ 195 │ (379871,11) │ (a)=(-249291) │ (379871,11) │
> │ 196 │ (379871,12) │ (a)=(-249291) │ (379871,12) │
> │ 197 │ (379871,13) │ (a)=(-249291) │ (379871,13) │
> │ 198 │ (379871,14) │ (a)=(-249291) │ (379871,14) │
> │ 199 │ (379871,15) │ (a)=(-249291) │ (379871,15) │
> │ 200 │ (379871,16) │ (a)=(-249291) │ (379871,16) │
> │ 201 │ (379871,17) │ (a)=(-249291) │ (379871,17) │
> │ 202 │ (379871,18) │ (a)=(-249291) │ (379871,18) │
> │ 203 │ (379871,19) │ (a)=(-249291) │ (379871,19) │
> │ 204 │ (379871,20) │ (a)=(-249291) │ (379871,20) │
> │ 205 │ (379872,1) │ (a)=(-249291) │ (379872,1) │
> │ 206 │ (379868,20) │ (a)=(-249290) │ (379868,20) │
> │ 207 │ (379868,21) │ (a)=(-249290) │ (379868,21) │
> │ 208 │ (379869,1) │ (a)=(-249290) │ (379869,1) │
> │ 209 │ (379869,3) │ (a)=(-249290) │ (379869,3) │
> │ 210 │ (379869,4) │ (a)=(-249290) │ (379869,4) │
> │ 211 │ (379869,5) │ (a)=(-249290) │ (379869,5) │
> │ 212 │ (379869,6) │ (a)=(-249290) │ (379869,6) │
> │ 213 │ (379869,7) │ (a)=(-249290) │ (379869,7) │
> │ 214 │ (379869,8) │ (a)=(-249290) │ (379869,8) │
> │ 215 │ (379869,9) │ (a)=(-249290) │ (379869,9) │
> │ 216 │ (379869,10) │ (a)=(-249290) │ (379869,10) │
> │ 217 │ (379869,11) │ (a)=(-249290) │ (379869,11) │
> │ 218 │ (379869,12) │ (a)=(-249290) │ (379869,12) │
> │ 219 │ (379869,13) │ (a)=(-249290) │ (379869,13) │
> │ 220 │ (379869,14) │ (a)=(-249290) │ (379869,14) │
> │ 221 │ (379869,15) │ (a)=(-249290) │ (379869,15) │
> │ 222 │ (379869,16) │ (a)=(-249290) │ (379869,16) │
> │ 223 │ (379869,17) │ (a)=(-249290) │ (379869,17) │
> │ 224 │ (379869,18) │ (a)=(-249290) │ (379869,18) │
> │ 225 │ (379869,19) │ (a)=(-249290) │ (379869,19) │
> │ 226 │ (379869,20) │ (a)=(-249290) │ (379869,20) │
> │ 227 │ (379869,21) │ (a)=(-249290) │ (379869,21) │
> │ 228 │ (379870,1) │ (a)=(-249290) │ (379870,1) │
> │ 229 │ (379870,2) │ (a)=(-249290) │ (379870,2) │
> │ 230 │ (379870,3) │ (a)=(-249290) │ (379870,3) │
> │ 231 │ (379870,4) │ (a)=(-249290) │ (379870,4) │
> │ 232 │ (379870,5) │ (a)=(-249290) │ (379870,5) │
> │ 233 │ (379870,6) │ (a)=(-249290) │ (379870,6) │
> │ 234 │ (379870,7) │ (a)=(-249290) │ (379870,7) │
> │ 235 │ (379870,8) │ (a)=(-249290) │ (379870,8) │
> │ 236 │ (379870,10) │ (a)=(-249290) │ (379870,10) │
> │ 237 │ (379870,13) │ (a)=(-249290) │ (379870,13) │
> │ 238 │ (379867,10) │ (a)=(-249289) │ (379867,10) │
> │ 239 │ (379867,11) │ (a)=(-249289) │ (379867,11) │
> │ 240 │ (379867,12) │ (a)=(-249289) │ (379867,12) │
> │ 241 │ (379867,13) │ (a)=(-249289) │ (379867,13) │
> │ 242 │ (379867,14) │ (a)=(-249289) │ (379867,14) │
> │ 243 │ (379867,15) │ (a)=(-249289) │ (379867,15) │
> │ 244 │ (379867,16) │ (a)=(-249289) │ (379867,16) │
> │ 245 │ (379867,17) │ (a)=(-249289) │ (379867,17) │
> │ 246 │ (379867,18) │ (a)=(-249289) │ (379867,18) │
> │ 247 │ (379867,19) │ (a)=(-249289) │ (379867,19) │
> │ 248 │ (379867,20) │ (a)=(-249289) │ (379867,20) │
> │ 249 │ (379867,21) │ (a)=(-249289) │ (379867,21) │
> │ 250 │ (379868,1) │ (a)=(-249289) │ (379868,1) │
> │ 251 │ (379868,2) │ (a)=(-249289) │ (379868,2) │
> │ 252 │ (379868,3) │ (a)=(-249289) │ (379868,3) │
> │ 253 │ (379868,4) │ (a)=(-249289) │ (379868,4) │
> │ 254 │ (379868,5) │ (a)=(-249289) │ (379868,5) │
> │ 255 │ (379868,6) │ (a)=(-249289) │ (379868,6) │
> │ 256 │ (379868,7) │ (a)=(-249289) │ (379868,7) │
> │ 257 │ (379868,8) │ (a)=(-249289) │ (379868,8) │
> │ 258 │ (379868,9) │ (a)=(-249289) │ (379868,9) │
> │ 259 │ (379868,10) │ (a)=(-249289) │ (379868,10) │
> │ 260 │ (379868,11) │ (a)=(-249289) │ (379868,11) │
> │ 261 │ (379868,12) │ (a)=(-249289) │ (379868,12) │
> │ 262 │ (379868,13) │ (a)=(-249289) │ (379868,13) │
> │ 263 │ (379868,14) │ (a)=(-249289) │ (379868,14) │
> │ 264 │ (379868,15) │ (a)=(-249289) │ (379868,15) │
> │ 265 │ (379868,16) │ (a)=(-249289) │ (379868,16) │
> │ 266 │ (379868,17) │ (a)=(-249289) │ (379868,17) │
> │ 267 │ (379868,18) │ (a)=(-249289) │ (379868,18) │
> │ 268 │ (379868,19) │ (a)=(-249289) │ (379868,19) │
> │ 269 │ (379869,2) │ (a)=(-249289) │ (379869,2) │
> │ 270 │ (379865,19) │ (a)=(-249288) │ (379865,19) │
> │ 271 │ (379865,20) │ (a)=(-249288) │ (379865,20) │
> │ 272 │ (379865,21) │ (a)=(-249288) │ (379865,21) │
> │ 273 │ (379866,2) │ (a)=(-249288) │ (379866,2) │
> │ 274 │ (379866,3) │ (a)=(-249288) │ (379866,3) │
> │ 275 │ (379866,4) │ (a)=(-249288) │ (379866,4) │
> │ 276 │ (379866,5) │ (a)=(-249288) │ (379866,5) │
> │ 277 │ (379866,6) │ (a)=(-249288) │ (379866,6) │
> │ 278 │ (379866,7) │ (a)=(-249288) │ (379866,7) │
> │ 279 │ (379866,8) │ (a)=(-249288) │ (379866,8) │
> │ 280 │ (379866,9) │ (a)=(-249288) │ (379866,9) │
> │ 281 │ (379866,10) │ (a)=(-249288) │ (379866,10) │
> │ 282 │ (379866,11) │ (a)=(-249288) │ (379866,11) │
> │ 283 │ (379866,12) │ (a)=(-249288) │ (379866,12) │
> │ 284 │ (379866,13) │ (a)=(-249288) │ (379866,13) │
> │ 285 │ (379866,14) │ (a)=(-249288) │ (379866,14) │
> │ 286 │ (379866,15) │ (a)=(-249288) │ (379866,15) │
> │ 287 │ (379866,16) │ (a)=(-249288) │ (379866,16) │
> │ 288 │ (379866,17) │ (a)=(-249288) │ (379866,17) │
> │ 289 │ (379866,18) │ (a)=(-249288) │ (379866,18) │
> │ 290 │ (379866,19) │ (a)=(-249288) │ (379866,19) │
> │ 291 │ (379866,20) │ (a)=(-249288) │ (379866,20) │
> │ 292 │ (379866,21) │ (a)=(-249288) │ (379866,21) │
> │ 293 │ (379867,1) │ (a)=(-249288) │ (379867,1) │
> │ 294 │ (379867,2) │ (a)=(-249288) │ (379867,2) │
> │ 295 │ (379867,3) │ (a)=(-249288) │ (379867,3) │
> │ 296 │ (379867,4) │ (a)=(-249288) │ (379867,4) │
> │ 297 │ (379867,5) │ (a)=(-249288) │ (379867,5) │
> │ 298 │ (379867,6) │ (a)=(-249288) │ (379867,6) │
> │ 299 │ (379867,7) │ (a)=(-249288) │ (379867,7) │
> │ 300 │ (379867,8) │ (a)=(-249288) │ (379867,8) │
> │ 301 │ (379867,9) │ (a)=(-249288) │ (379867,9) │
> │ 302 │ (379864,9) │ (a)=(-249287) │ (379864,9) │
> │ 303 │ (379864,10) │ (a)=(-249287) │ (379864,10) │
> │ 304 │ (379864,11) │ (a)=(-249287) │ (379864,11) │
> │ 305 │ (379864,12) │ (a)=(-249287) │ (379864,12) │
> │ 306 │ (379864,13) │ (a)=(-249287) │ (379864,13) │
> │ 307 │ (379864,14) │ (a)=(-249287) │ (379864,14) │
> │ 308 │ (379864,15) │ (a)=(-249287) │ (379864,15) │
> │ 309 │ (379864,16) │ (a)=(-249287) │ (379864,16) │
> │ 310 │ (379864,17) │ (a)=(-249287) │ (379864,17) │
> │ 311 │ (379864,18) │ (a)=(-249287) │ (379864,18) │
> │ 312 │ (379864,19) │ (a)=(-249287) │ (379864,19) │
> │ 313 │ (379864,20) │ (a)=(-249287) │ (379864,20) │
> │ 314 │ (379864,21) │ (a)=(-249287) │ (379864,21) │
> │ 315 │ (379865,1) │ (a)=(-249287) │ (379865,1) │
> │ 316 │ (379865,2) │ (a)=(-249287) │ (379865,2) │
> │ 317 │ (379865,3) │ (a)=(-249287) │ (379865,3) │
> │ 318 │ (379865,4) │ (a)=(-249287) │ (379865,4) │
> │ 319 │ (379865,5) │ (a)=(-249287) │ (379865,5) │
> │ 320 │ (379865,6) │ (a)=(-249287) │ (379865,6) │
> │ 321 │ (379865,7) │ (a)=(-249287) │ (379865,7) │
> │ 322 │ (379865,8) │ (a)=(-249287) │ (379865,8) │
> │ 323 │ (379865,9) │ (a)=(-249287) │ (379865,9) │
> │ 324 │ (379865,10) │ (a)=(-249287) │ (379865,10) │
> │ 325 │ (379865,11) │ (a)=(-249287) │ (379865,11) │
> │ 326 │ (379865,12) │ (a)=(-249287) │ (379865,12) │
> │ 327 │ (379865,13) │ (a)=(-249287) │ (379865,13) │
> │ 328 │ (379865,14) │ (a)=(-249287) │ (379865,14) │
> │ 329 │ (379865,15) │ (a)=(-249287) │ (379865,15) │
> │ 330 │ (379865,16) │ (a)=(-249287) │ (379865,16) │
> │ 331 │ (379865,17) │ (a)=(-249287) │ (379865,17) │
> │ 332 │ (379865,18) │ (a)=(-249287) │ (379865,18) │
> │ 333 │ (379866,1) │ (a)=(-249287) │ (379866,1) │
> │ 334 │ (379862,16) │ (a)=(-249286) │ (379862,16) │
> │ 335 │ (379862,17) │ (a)=(-249286) │ (379862,17) │
> │ 336 │ (379862,20) │ (a)=(-249286) │ (379862,20) │
> │ 337 │ (379863,1) │ (a)=(-249286) │ (379863,1) │
> │ 338 │ (379863,2) │ (a)=(-249286) │ (379863,2) │
> │ 339 │ (379863,3) │ (a)=(-249286) │ (379863,3) │
> │ 340 │ (379863,4) │ (a)=(-249286) │ (379863,4) │
> │ 341 │ (379863,5) │ (a)=(-249286) │ (379863,5) │
> │ 342 │ (379863,6) │ (a)=(-249286) │ (379863,6) │
> │ 343 │ (379863,7) │ (a)=(-249286) │ (379863,7) │
> │ 344 │ (379863,8) │ (a)=(-249286) │ (379863,8) │
> │ 345 │ (379863,9) │ (a)=(-249286) │ (379863,9) │
> │ 346 │ (379863,10) │ (a)=(-249286) │ (379863,10) │
> │ 347 │ (379863,11) │ (a)=(-249286) │ (379863,11) │
> │ 348 │ (379863,12) │ (a)=(-249286) │ (379863,12) │
> │ 349 │ (379863,13) │ (a)=(-249286) │ (379863,13) │
> │ 350 │ (379863,14) │ (a)=(-249286) │ (379863,14) │
> │ 351 │ (379863,15) │ (a)=(-249286) │ (379863,15) │
> │ 352 │ (379863,16) │ (a)=(-249286) │ (379863,16) │
> │ 353 │ (379863,17) │ (a)=(-249286) │ (379863,17) │
> │ 354 │ (379863,18) │ (a)=(-249286) │ (379863,18) │
> │ 355 │ (379863,19) │ (a)=(-249286) │ (379863,19) │
> │ 356 │ (379863,20) │ (a)=(-249286) │ (379863,20) │
> │ 357 │ (379863,21) │ (a)=(-249286) │ (379863,21) │
> │ 358 │ (379864,1) │ (a)=(-249286) │ (379864,1) │
> │ 359 │ (379864,2) │ (a)=(-249286) │ (379864,2) │
> │ 360 │ (379864,3) │ (a)=(-249286) │ (379864,3) │
> │ 361 │ (379864,4) │ (a)=(-249286) │ (379864,4) │
> │ 362 │ (379864,5) │ (a)=(-249286) │ (379864,5) │
> │ 363 │ (379864,6) │ (a)=(-249286) │ (379864,6) │
> │ 364 │ (379864,7) │ (a)=(-249286) │ (379864,7) │
> │ 365 │ (379864,8) │ (a)=(-249286) │ (379864,8) │
> │ 366 │ (379861,6) │ (a)=(-249285) │ (379861,6) │
> │ 367 │ (379861,7) │ (a)=(-249285) │ (379861,7) │
> └────────────┴───────────────┴───────────────┴─────────────┘
> (367 rows)
>
> And here's what block 5555 from "idx" looks like (note that the fact that I'm
> using the same index block number as before has no particular significance):
>
> ────────────┬──────────────┬─────────────┬────────────┐
> │ itemoffset │ ctid │ data │ htid │
> ├────────────┼──────────────┼─────────────┼────────────┤
> │ 1 │ (96327,4097) │ (a)=(63216) │ (96327,15) │
> │ 2 │ (96310,7) │ (a)=(63204) │ (96310,7) │
> │ 3 │ (96310,8) │ (a)=(63204) │ (96310,8) │
> │ 4 │ (96310,9) │ (a)=(63204) │ (96310,9) │
> │ 5 │ (96310,10) │ (a)=(63204) │ (96310,10) │
> │ 6 │ (96310,11) │ (a)=(63204) │ (96310,11) │
> │ 7 │ (96310,12) │ (a)=(63204) │ (96310,12) │
> │ 8 │ (96310,13) │ (a)=(63204) │ (96310,13) │
> │ 9 │ (96310,14) │ (a)=(63204) │ (96310,14) │
> │ 10 │ (96310,15) │ (a)=(63204) │ (96310,15) │
> │ 11 │ (96310,16) │ (a)=(63204) │ (96310,16) │
> │ 12 │ (96310,17) │ (a)=(63204) │ (96310,17) │
> │ 13 │ (96310,18) │ (a)=(63204) │ (96310,18) │
> │ 14 │ (96310,19) │ (a)=(63205) │ (96310,19) │
> │ 15 │ (96310,20) │ (a)=(63205) │ (96310,20) │
> │ 16 │ (96310,21) │ (a)=(63205) │ (96310,21) │
> │ 17 │ (96311,1) │ (a)=(63205) │ (96311,1) │
> │ 18 │ (96311,2) │ (a)=(63205) │ (96311,2) │
> │ 19 │ (96311,3) │ (a)=(63205) │ (96311,3) │
> │ 20 │ (96311,4) │ (a)=(63205) │ (96311,4) │
> │ 21 │ (96311,5) │ (a)=(63205) │ (96311,5) │
> │ 22 │ (96311,6) │ (a)=(63205) │ (96311,6) │
> │ 23 │ (96311,7) │ (a)=(63205) │ (96311,7) │
> │ 24 │ (96311,8) │ (a)=(63205) │ (96311,8) │
> │ 25 │ (96311,9) │ (a)=(63205) │ (96311,9) │
> │ 26 │ (96311,10) │ (a)=(63205) │ (96311,10) │
> │ 27 │ (96311,11) │ (a)=(63205) │ (96311,11) │
> │ 28 │ (96311,12) │ (a)=(63205) │ (96311,12) │
> │ 29 │ (96311,13) │ (a)=(63205) │ (96311,13) │
> │ 30 │ (96311,14) │ (a)=(63205) │ (96311,14) │
> │ 31 │ (96311,15) │ (a)=(63205) │ (96311,15) │
> │ 32 │ (96311,16) │ (a)=(63205) │ (96311,16) │
> │ 33 │ (96311,17) │ (a)=(63205) │ (96311,17) │
> │ 34 │ (96311,18) │ (a)=(63205) │ (96311,18) │
> │ 35 │ (96311,19) │ (a)=(63205) │ (96311,19) │
> │ 36 │ (96311,20) │ (a)=(63205) │ (96311,20) │
> │ 37 │ (96311,21) │ (a)=(63205) │ (96311,21) │
> │ 38 │ (96312,1) │ (a)=(63205) │ (96312,1) │
> │ 39 │ (96312,2) │ (a)=(63205) │ (96312,2) │
> │ 40 │ (96312,3) │ (a)=(63205) │ (96312,3) │
> │ 41 │ (96312,4) │ (a)=(63205) │ (96312,4) │
> │ 42 │ (96312,5) │ (a)=(63205) │ (96312,5) │
> │ 43 │ (96312,6) │ (a)=(63205) │ (96312,6) │
> │ 44 │ (96312,7) │ (a)=(63205) │ (96312,7) │
> │ 45 │ (96312,9) │ (a)=(63205) │ (96312,9) │
> │ 46 │ (96312,8) │ (a)=(63206) │ (96312,8) │
> │ 47 │ (96312,10) │ (a)=(63206) │ (96312,10) │
> │ 48 │ (96312,11) │ (a)=(63206) │ (96312,11) │
> │ 49 │ (96312,12) │ (a)=(63206) │ (96312,12) │
> │ 50 │ (96312,13) │ (a)=(63206) │ (96312,13) │
> │ 51 │ (96312,14) │ (a)=(63206) │ (96312,14) │
> │ 52 │ (96312,15) │ (a)=(63206) │ (96312,15) │
> │ 53 │ (96312,16) │ (a)=(63206) │ (96312,16) │
> │ 54 │ (96312,17) │ (a)=(63206) │ (96312,17) │
> │ 55 │ (96312,18) │ (a)=(63206) │ (96312,18) │
> │ 56 │ (96312,19) │ (a)=(63206) │ (96312,19) │
> │ 57 │ (96312,20) │ (a)=(63206) │ (96312,20) │
> │ 58 │ (96312,21) │ (a)=(63206) │ (96312,21) │
> │ 59 │ (96313,1) │ (a)=(63206) │ (96313,1) │
> │ 60 │ (96313,2) │ (a)=(63206) │ (96313,2) │
> │ 61 │ (96313,3) │ (a)=(63206) │ (96313,3) │
> │ 62 │ (96313,4) │ (a)=(63206) │ (96313,4) │
> │ 63 │ (96313,5) │ (a)=(63206) │ (96313,5) │
> │ 64 │ (96313,6) │ (a)=(63206) │ (96313,6) │
> │ 65 │ (96313,7) │ (a)=(63206) │ (96313,7) │
> │ 66 │ (96313,8) │ (a)=(63206) │ (96313,8) │
> │ 67 │ (96313,9) │ (a)=(63206) │ (96313,9) │
> │ 68 │ (96313,10) │ (a)=(63206) │ (96313,10) │
> │ 69 │ (96313,11) │ (a)=(63206) │ (96313,11) │
> │ 70 │ (96313,12) │ (a)=(63206) │ (96313,12) │
> │ 71 │ (96313,13) │ (a)=(63206) │ (96313,13) │
> │ 72 │ (96313,14) │ (a)=(63206) │ (96313,14) │
> │ 73 │ (96313,15) │ (a)=(63206) │ (96313,15) │
> │ 74 │ (96313,16) │ (a)=(63206) │ (96313,16) │
> │ 75 │ (96313,17) │ (a)=(63206) │ (96313,17) │
> │ 76 │ (96313,18) │ (a)=(63206) │ (96313,18) │
> │ 77 │ (96313,20) │ (a)=(63206) │ (96313,20) │
> │ 78 │ (96313,19) │ (a)=(63207) │ (96313,19) │
> │ 79 │ (96313,21) │ (a)=(63207) │ (96313,21) │
> │ 80 │ (96314,1) │ (a)=(63207) │ (96314,1) │
> │ 81 │ (96314,2) │ (a)=(63207) │ (96314,2) │
> │ 82 │ (96314,3) │ (a)=(63207) │ (96314,3) │
> │ 83 │ (96314,4) │ (a)=(63207) │ (96314,4) │
> │ 84 │ (96314,5) │ (a)=(63207) │ (96314,5) │
> │ 85 │ (96314,6) │ (a)=(63207) │ (96314,6) │
> │ 86 │ (96314,7) │ (a)=(63207) │ (96314,7) │
> │ 87 │ (96314,8) │ (a)=(63207) │ (96314,8) │
> │ 88 │ (96314,9) │ (a)=(63207) │ (96314,9) │
> │ 89 │ (96314,10) │ (a)=(63207) │ (96314,10) │
> │ 90 │ (96314,11) │ (a)=(63207) │ (96314,11) │
> │ 91 │ (96314,12) │ (a)=(63207) │ (96314,12) │
> │ 92 │ (96314,13) │ (a)=(63207) │ (96314,13) │
> │ 93 │ (96314,14) │ (a)=(63207) │ (96314,14) │
> │ 94 │ (96314,15) │ (a)=(63207) │ (96314,15) │
> │ 95 │ (96314,16) │ (a)=(63207) │ (96314,16) │
> │ 96 │ (96314,17) │ (a)=(63207) │ (96314,17) │
> │ 97 │ (96314,18) │ (a)=(63207) │ (96314,18) │
> │ 98 │ (96314,19) │ (a)=(63207) │ (96314,19) │
> │ 99 │ (96314,20) │ (a)=(63207) │ (96314,20) │
> │ 100 │ (96314,21) │ (a)=(63207) │ (96314,21) │
> │ 101 │ (96315,1) │ (a)=(63207) │ (96315,1) │
> │ 102 │ (96315,2) │ (a)=(63207) │ (96315,2) │
> │ 103 │ (96315,3) │ (a)=(63207) │ (96315,3) │
> │ 104 │ (96315,4) │ (a)=(63207) │ (96315,4) │
> │ 105 │ (96315,5) │ (a)=(63207) │ (96315,5) │
> │ 106 │ (96315,6) │ (a)=(63207) │ (96315,6) │
> │ 107 │ (96315,7) │ (a)=(63207) │ (96315,7) │
> │ 108 │ (96315,8) │ (a)=(63207) │ (96315,8) │
> │ 109 │ (96315,12) │ (a)=(63207) │ (96315,12) │
> │ 110 │ (96315,9) │ (a)=(63208) │ (96315,9) │
> │ 111 │ (96315,10) │ (a)=(63208) │ (96315,10) │
> │ 112 │ (96315,11) │ (a)=(63208) │ (96315,11) │
> │ 113 │ (96315,13) │ (a)=(63208) │ (96315,13) │
> │ 114 │ (96315,14) │ (a)=(63208) │ (96315,14) │
> │ 115 │ (96315,15) │ (a)=(63208) │ (96315,15) │
> │ 116 │ (96315,16) │ (a)=(63208) │ (96315,16) │
> │ 117 │ (96315,17) │ (a)=(63208) │ (96315,17) │
> │ 118 │ (96315,18) │ (a)=(63208) │ (96315,18) │
> │ 119 │ (96315,19) │ (a)=(63208) │ (96315,19) │
> │ 120 │ (96315,20) │ (a)=(63208) │ (96315,20) │
> │ 121 │ (96315,21) │ (a)=(63208) │ (96315,21) │
> │ 122 │ (96316,1) │ (a)=(63208) │ (96316,1) │
> │ 123 │ (96316,2) │ (a)=(63208) │ (96316,2) │
> │ 124 │ (96316,3) │ (a)=(63208) │ (96316,3) │
> │ 125 │ (96316,4) │ (a)=(63208) │ (96316,4) │
> │ 126 │ (96316,5) │ (a)=(63208) │ (96316,5) │
> │ 127 │ (96316,6) │ (a)=(63208) │ (96316,6) │
> │ 128 │ (96316,7) │ (a)=(63208) │ (96316,7) │
> │ 129 │ (96316,8) │ (a)=(63208) │ (96316,8) │
> │ 130 │ (96316,9) │ (a)=(63208) │ (96316,9) │
> │ 131 │ (96316,10) │ (a)=(63208) │ (96316,10) │
> │ 132 │ (96316,11) │ (a)=(63208) │ (96316,11) │
> │ 133 │ (96316,12) │ (a)=(63208) │ (96316,12) │
> │ 134 │ (96316,13) │ (a)=(63208) │ (96316,13) │
> │ 135 │ (96316,14) │ (a)=(63208) │ (96316,14) │
> │ 136 │ (96316,15) │ (a)=(63208) │ (96316,15) │
> │ 137 │ (96316,16) │ (a)=(63208) │ (96316,16) │
> │ 138 │ (96316,17) │ (a)=(63208) │ (96316,17) │
> │ 139 │ (96316,18) │ (a)=(63208) │ (96316,18) │
> │ 140 │ (96316,19) │ (a)=(63208) │ (96316,19) │
> │ 141 │ (96316,20) │ (a)=(63208) │ (96316,20) │
> │ 142 │ (96316,21) │ (a)=(63209) │ (96316,21) │
> │ 143 │ (96317,1) │ (a)=(63209) │ (96317,1) │
> │ 144 │ (96317,2) │ (a)=(63209) │ (96317,2) │
> │ 145 │ (96317,3) │ (a)=(63209) │ (96317,3) │
> │ 146 │ (96317,4) │ (a)=(63209) │ (96317,4) │
> │ 147 │ (96317,5) │ (a)=(63209) │ (96317,5) │
> │ 148 │ (96317,6) │ (a)=(63209) │ (96317,6) │
> │ 149 │ (96317,7) │ (a)=(63209) │ (96317,7) │
> │ 150 │ (96317,8) │ (a)=(63209) │ (96317,8) │
> │ 151 │ (96317,9) │ (a)=(63209) │ (96317,9) │
> │ 152 │ (96317,10) │ (a)=(63209) │ (96317,10) │
> │ 153 │ (96317,11) │ (a)=(63209) │ (96317,11) │
> │ 154 │ (96317,12) │ (a)=(63209) │ (96317,12) │
> │ 155 │ (96317,13) │ (a)=(63209) │ (96317,13) │
> │ 156 │ (96317,14) │ (a)=(63209) │ (96317,14) │
> │ 157 │ (96317,15) │ (a)=(63209) │ (96317,15) │
> │ 158 │ (96317,16) │ (a)=(63209) │ (96317,16) │
> │ 159 │ (96317,17) │ (a)=(63209) │ (96317,17) │
> │ 160 │ (96317,18) │ (a)=(63209) │ (96317,18) │
> │ 161 │ (96317,19) │ (a)=(63209) │ (96317,19) │
> │ 162 │ (96317,20) │ (a)=(63209) │ (96317,20) │
> │ 163 │ (96317,21) │ (a)=(63209) │ (96317,21) │
> │ 164 │ (96318,1) │ (a)=(63209) │ (96318,1) │
> │ 165 │ (96318,2) │ (a)=(63209) │ (96318,2) │
> │ 166 │ (96318,3) │ (a)=(63209) │ (96318,3) │
> │ 167 │ (96318,4) │ (a)=(63209) │ (96318,4) │
> │ 168 │ (96318,5) │ (a)=(63209) │ (96318,5) │
> │ 169 │ (96318,6) │ (a)=(63209) │ (96318,6) │
> │ 170 │ (96318,7) │ (a)=(63209) │ (96318,7) │
> │ 171 │ (96318,8) │ (a)=(63209) │ (96318,8) │
> │ 172 │ (96318,9) │ (a)=(63209) │ (96318,9) │
> │ 173 │ (96318,10) │ (a)=(63209) │ (96318,10) │
> │ 174 │ (96318,11) │ (a)=(63210) │ (96318,11) │
> │ 175 │ (96318,12) │ (a)=(63210) │ (96318,12) │
> │ 176 │ (96318,13) │ (a)=(63210) │ (96318,13) │
> │ 177 │ (96318,14) │ (a)=(63210) │ (96318,14) │
> │ 178 │ (96318,15) │ (a)=(63210) │ (96318,15) │
> │ 179 │ (96318,16) │ (a)=(63210) │ (96318,16) │
> │ 180 │ (96318,17) │ (a)=(63210) │ (96318,17) │
> │ 181 │ (96318,18) │ (a)=(63210) │ (96318,18) │
> │ 182 │ (96318,19) │ (a)=(63210) │ (96318,19) │
> │ 183 │ (96318,20) │ (a)=(63210) │ (96318,20) │
> │ 184 │ (96318,21) │ (a)=(63210) │ (96318,21) │
> │ 185 │ (96319,1) │ (a)=(63210) │ (96319,1) │
> │ 186 │ (96319,2) │ (a)=(63210) │ (96319,2) │
> │ 187 │ (96319,3) │ (a)=(63210) │ (96319,3) │
> │ 188 │ (96319,4) │ (a)=(63210) │ (96319,4) │
> │ 189 │ (96319,5) │ (a)=(63210) │ (96319,5) │
> │ 190 │ (96319,6) │ (a)=(63210) │ (96319,6) │
> │ 191 │ (96319,7) │ (a)=(63210) │ (96319,7) │
> │ 192 │ (96319,8) │ (a)=(63210) │ (96319,8) │
> │ 193 │ (96319,9) │ (a)=(63210) │ (96319,9) │
> │ 194 │ (96319,10) │ (a)=(63210) │ (96319,10) │
> │ 195 │ (96319,11) │ (a)=(63210) │ (96319,11) │
> │ 196 │ (96319,12) │ (a)=(63210) │ (96319,12) │
> │ 197 │ (96319,13) │ (a)=(63210) │ (96319,13) │
> │ 198 │ (96319,14) │ (a)=(63210) │ (96319,14) │
> │ 199 │ (96319,15) │ (a)=(63210) │ (96319,15) │
> │ 200 │ (96319,16) │ (a)=(63210) │ (96319,16) │
> │ 201 │ (96319,17) │ (a)=(63210) │ (96319,17) │
> │ 202 │ (96319,18) │ (a)=(63210) │ (96319,18) │
> │ 203 │ (96319,19) │ (a)=(63210) │ (96319,19) │
> │ 204 │ (96319,20) │ (a)=(63210) │ (96319,20) │
> │ 205 │ (96320,1) │ (a)=(63210) │ (96320,1) │
> │ 206 │ (96319,21) │ (a)=(63211) │ (96319,21) │
> │ 207 │ (96320,2) │ (a)=(63211) │ (96320,2) │
> │ 208 │ (96320,3) │ (a)=(63211) │ (96320,3) │
> │ 209 │ (96320,4) │ (a)=(63211) │ (96320,4) │
> │ 210 │ (96320,5) │ (a)=(63211) │ (96320,5) │
> │ 211 │ (96320,6) │ (a)=(63211) │ (96320,6) │
> │ 212 │ (96320,7) │ (a)=(63211) │ (96320,7) │
> │ 213 │ (96320,8) │ (a)=(63211) │ (96320,8) │
> │ 214 │ (96320,9) │ (a)=(63211) │ (96320,9) │
> │ 215 │ (96320,10) │ (a)=(63211) │ (96320,10) │
> │ 216 │ (96320,11) │ (a)=(63211) │ (96320,11) │
> │ 217 │ (96320,12) │ (a)=(63211) │ (96320,12) │
> │ 218 │ (96320,13) │ (a)=(63211) │ (96320,13) │
> │ 219 │ (96320,14) │ (a)=(63211) │ (96320,14) │
> │ 220 │ (96320,15) │ (a)=(63211) │ (96320,15) │
> │ 221 │ (96320,16) │ (a)=(63211) │ (96320,16) │
> │ 222 │ (96320,17) │ (a)=(63211) │ (96320,17) │
> │ 223 │ (96320,18) │ (a)=(63211) │ (96320,18) │
> │ 224 │ (96320,19) │ (a)=(63211) │ (96320,19) │
> │ 225 │ (96320,20) │ (a)=(63211) │ (96320,20) │
> │ 226 │ (96320,21) │ (a)=(63211) │ (96320,21) │
> │ 227 │ (96321,1) │ (a)=(63211) │ (96321,1) │
> │ 228 │ (96321,2) │ (a)=(63211) │ (96321,2) │
> │ 229 │ (96321,3) │ (a)=(63211) │ (96321,3) │
> │ 230 │ (96321,4) │ (a)=(63211) │ (96321,4) │
> │ 231 │ (96321,5) │ (a)=(63211) │ (96321,5) │
> │ 232 │ (96321,6) │ (a)=(63211) │ (96321,6) │
> │ 233 │ (96321,7) │ (a)=(63211) │ (96321,7) │
> │ 234 │ (96321,8) │ (a)=(63211) │ (96321,8) │
> │ 235 │ (96321,9) │ (a)=(63211) │ (96321,9) │
> │ 236 │ (96321,10) │ (a)=(63211) │ (96321,10) │
> │ 237 │ (96321,11) │ (a)=(63211) │ (96321,11) │
> │ 238 │ (96321,12) │ (a)=(63212) │ (96321,12) │
> │ 239 │ (96321,13) │ (a)=(63212) │ (96321,13) │
> │ 240 │ (96321,14) │ (a)=(63212) │ (96321,14) │
> │ 241 │ (96321,15) │ (a)=(63212) │ (96321,15) │
> │ 242 │ (96321,16) │ (a)=(63212) │ (96321,16) │
> │ 243 │ (96321,17) │ (a)=(63212) │ (96321,17) │
> │ 244 │ (96321,18) │ (a)=(63212) │ (96321,18) │
> │ 245 │ (96321,19) │ (a)=(63212) │ (96321,19) │
> │ 246 │ (96321,20) │ (a)=(63212) │ (96321,20) │
> │ 247 │ (96321,21) │ (a)=(63212) │ (96321,21) │
> │ 248 │ (96322,1) │ (a)=(63212) │ (96322,1) │
> │ 249 │ (96322,2) │ (a)=(63212) │ (96322,2) │
> │ 250 │ (96322,3) │ (a)=(63212) │ (96322,3) │
> │ 251 │ (96322,4) │ (a)=(63212) │ (96322,4) │
> │ 252 │ (96322,5) │ (a)=(63212) │ (96322,5) │
> │ 253 │ (96322,6) │ (a)=(63212) │ (96322,6) │
> │ 254 │ (96322,7) │ (a)=(63212) │ (96322,7) │
> │ 255 │ (96322,8) │ (a)=(63212) │ (96322,8) │
> │ 256 │ (96322,9) │ (a)=(63212) │ (96322,9) │
> │ 257 │ (96322,10) │ (a)=(63212) │ (96322,10) │
> │ 258 │ (96322,11) │ (a)=(63212) │ (96322,11) │
> │ 259 │ (96322,12) │ (a)=(63212) │ (96322,12) │
> │ 260 │ (96322,13) │ (a)=(63212) │ (96322,13) │
> │ 261 │ (96322,14) │ (a)=(63212) │ (96322,14) │
> │ 262 │ (96322,15) │ (a)=(63212) │ (96322,15) │
> │ 263 │ (96322,16) │ (a)=(63212) │ (96322,16) │
> │ 264 │ (96322,17) │ (a)=(63212) │ (96322,17) │
> │ 265 │ (96322,18) │ (a)=(63212) │ (96322,18) │
> │ 266 │ (96322,19) │ (a)=(63212) │ (96322,19) │
> │ 267 │ (96322,20) │ (a)=(63212) │ (96322,20) │
> │ 268 │ (96322,21) │ (a)=(63212) │ (96322,21) │
> │ 269 │ (96323,3) │ (a)=(63212) │ (96323,3) │
> │ 270 │ (96323,1) │ (a)=(63213) │ (96323,1) │
> │ 271 │ (96323,2) │ (a)=(63213) │ (96323,2) │
> │ 272 │ (96323,4) │ (a)=(63213) │ (96323,4) │
> │ 273 │ (96323,5) │ (a)=(63213) │ (96323,5) │
> │ 274 │ (96323,6) │ (a)=(63213) │ (96323,6) │
> │ 275 │ (96323,7) │ (a)=(63213) │ (96323,7) │
> │ 276 │ (96323,8) │ (a)=(63213) │ (96323,8) │
> │ 277 │ (96323,9) │ (a)=(63213) │ (96323,9) │
> │ 278 │ (96323,10) │ (a)=(63213) │ (96323,10) │
> │ 279 │ (96323,11) │ (a)=(63213) │ (96323,11) │
> │ 280 │ (96323,12) │ (a)=(63213) │ (96323,12) │
> │ 281 │ (96323,13) │ (a)=(63213) │ (96323,13) │
> │ 282 │ (96323,14) │ (a)=(63213) │ (96323,14) │
> │ 283 │ (96323,15) │ (a)=(63213) │ (96323,15) │
> │ 284 │ (96323,16) │ (a)=(63213) │ (96323,16) │
> │ 285 │ (96323,17) │ (a)=(63213) │ (96323,17) │
> │ 286 │ (96323,18) │ (a)=(63213) │ (96323,18) │
> │ 287 │ (96323,19) │ (a)=(63213) │ (96323,19) │
> │ 288 │ (96323,20) │ (a)=(63213) │ (96323,20) │
> │ 289 │ (96323,21) │ (a)=(63213) │ (96323,21) │
> │ 290 │ (96324,1) │ (a)=(63213) │ (96324,1) │
> │ 291 │ (96324,2) │ (a)=(63213) │ (96324,2) │
> │ 292 │ (96324,3) │ (a)=(63213) │ (96324,3) │
> │ 293 │ (96324,4) │ (a)=(63213) │ (96324,4) │
> │ 294 │ (96324,5) │ (a)=(63213) │ (96324,5) │
> │ 295 │ (96324,6) │ (a)=(63213) │ (96324,6) │
> │ 296 │ (96324,7) │ (a)=(63213) │ (96324,7) │
> │ 297 │ (96324,8) │ (a)=(63213) │ (96324,8) │
> │ 298 │ (96324,9) │ (a)=(63213) │ (96324,9) │
> │ 299 │ (96324,11) │ (a)=(63213) │ (96324,11) │
> │ 300 │ (96324,12) │ (a)=(63213) │ (96324,12) │
> │ 301 │ (96324,13) │ (a)=(63213) │ (96324,13) │
> │ 302 │ (96324,10) │ (a)=(63214) │ (96324,10) │
> │ 303 │ (96324,14) │ (a)=(63214) │ (96324,14) │
> │ 304 │ (96324,15) │ (a)=(63214) │ (96324,15) │
> │ 305 │ (96324,16) │ (a)=(63214) │ (96324,16) │
> │ 306 │ (96324,17) │ (a)=(63214) │ (96324,17) │
> │ 307 │ (96324,18) │ (a)=(63214) │ (96324,18) │
> │ 308 │ (96324,19) │ (a)=(63214) │ (96324,19) │
> │ 309 │ (96324,20) │ (a)=(63214) │ (96324,20) │
> │ 310 │ (96324,21) │ (a)=(63214) │ (96324,21) │
> │ 311 │ (96325,1) │ (a)=(63214) │ (96325,1) │
> │ 312 │ (96325,2) │ (a)=(63214) │ (96325,2) │
> │ 313 │ (96325,3) │ (a)=(63214) │ (96325,3) │
> │ 314 │ (96325,4) │ (a)=(63214) │ (96325,4) │
> │ 315 │ (96325,5) │ (a)=(63214) │ (96325,5) │
> │ 316 │ (96325,6) │ (a)=(63214) │ (96325,6) │
> │ 317 │ (96325,7) │ (a)=(63214) │ (96325,7) │
> │ 318 │ (96325,8) │ (a)=(63214) │ (96325,8) │
> │ 319 │ (96325,9) │ (a)=(63214) │ (96325,9) │
> │ 320 │ (96325,10) │ (a)=(63214) │ (96325,10) │
> │ 321 │ (96325,11) │ (a)=(63214) │ (96325,11) │
> │ 322 │ (96325,12) │ (a)=(63214) │ (96325,12) │
> │ 323 │ (96325,13) │ (a)=(63214) │ (96325,13) │
> │ 324 │ (96325,14) │ (a)=(63214) │ (96325,14) │
> │ 325 │ (96325,15) │ (a)=(63214) │ (96325,15) │
> │ 326 │ (96325,16) │ (a)=(63214) │ (96325,16) │
> │ 327 │ (96325,17) │ (a)=(63214) │ (96325,17) │
> │ 328 │ (96325,18) │ (a)=(63214) │ (96325,18) │
> │ 329 │ (96325,19) │ (a)=(63214) │ (96325,19) │
> │ 330 │ (96325,20) │ (a)=(63214) │ (96325,20) │
> │ 331 │ (96325,21) │ (a)=(63214) │ (96325,21) │
> │ 332 │ (96326,1) │ (a)=(63214) │ (96326,1) │
> │ 333 │ (96326,3) │ (a)=(63214) │ (96326,3) │
> │ 334 │ (96326,2) │ (a)=(63215) │ (96326,2) │
> │ 335 │ (96326,4) │ (a)=(63215) │ (96326,4) │
> │ 336 │ (96326,5) │ (a)=(63215) │ (96326,5) │
> │ 337 │ (96326,6) │ (a)=(63215) │ (96326,6) │
> │ 338 │ (96326,7) │ (a)=(63215) │ (96326,7) │
> │ 339 │ (96326,8) │ (a)=(63215) │ (96326,8) │
> │ 340 │ (96326,9) │ (a)=(63215) │ (96326,9) │
> │ 341 │ (96326,10) │ (a)=(63215) │ (96326,10) │
> │ 342 │ (96326,11) │ (a)=(63215) │ (96326,11) │
> │ 343 │ (96326,12) │ (a)=(63215) │ (96326,12) │
> │ 344 │ (96326,13) │ (a)=(63215) │ (96326,13) │
> │ 345 │ (96326,14) │ (a)=(63215) │ (96326,14) │
> │ 346 │ (96326,15) │ (a)=(63215) │ (96326,15) │
> │ 347 │ (96326,16) │ (a)=(63215) │ (96326,16) │
> │ 348 │ (96326,17) │ (a)=(63215) │ (96326,17) │
> │ 349 │ (96326,18) │ (a)=(63215) │ (96326,18) │
> │ 350 │ (96326,19) │ (a)=(63215) │ (96326,19) │
> │ 351 │ (96326,20) │ (a)=(63215) │ (96326,20) │
> │ 352 │ (96326,21) │ (a)=(63215) │ (96326,21) │
> │ 353 │ (96327,1) │ (a)=(63215) │ (96327,1) │
> │ 354 │ (96327,2) │ (a)=(63215) │ (96327,2) │
> │ 355 │ (96327,3) │ (a)=(63215) │ (96327,3) │
> │ 356 │ (96327,4) │ (a)=(63215) │ (96327,4) │
> │ 357 │ (96327,5) │ (a)=(63215) │ (96327,5) │
> │ 358 │ (96327,6) │ (a)=(63215) │ (96327,6) │
> │ 359 │ (96327,7) │ (a)=(63215) │ (96327,7) │
> │ 360 │ (96327,8) │ (a)=(63215) │ (96327,8) │
> │ 361 │ (96327,9) │ (a)=(63215) │ (96327,9) │
> │ 362 │ (96327,10) │ (a)=(63215) │ (96327,10) │
> │ 363 │ (96327,11) │ (a)=(63215) │ (96327,11) │
> │ 364 │ (96327,12) │ (a)=(63215) │ (96327,12) │
> │ 365 │ (96327,14) │ (a)=(63215) │ (96327,14) │
> │ 366 │ (96327,13) │ (a)=(63216) │ (96327,13) │
> │ 367 │ (96327,15) │ (a)=(63216) │ (96327,15) │
> └────────────┴──────────────┴─────────────┴────────────┘
> (367 rows)
>
> I only notice one tiny discontinuity in this "unshuffled" "idx" page: the index
> tuple at offset 205 uses the heap TID (96320,1), whereas the index tuple right
> after that (at offset 206) uses the heap TID (96319,21) (before we get to a
> large run of heap TIDs that use heap block number 96320 once more).
>
> As I touched on already, this effect can be seen even with perfectly correlated
> inserts. The effect is caused by the FSM having a tiny bit of space left on one
> heap page -- not enough space to fit an incoming heap tuple, but still enough to
> fit a slightly smaller heap tuple that is inserted shortly thereafter. You end
> up with exactly one index tuple whose heap TID is slightly out-of-order, though
> only every once in a long while.
>

This seems rather bizarre, considering the two tables are exactly the
same, except that in t2 the first column is negative, and the rows are
fixed-length. Even heap_page_items says the tables are exactly the same.

So why would the index get so different like this?

regards

--
Tomas Vondra

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Pavel Stehule 2025-08-13 19:24:09 Re: proposal: schema variables
Previous Message Masahiko Sawada 2025-08-13 16:49:46 Re: Dropping publication breaks logical replication