forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commitc24a908
committed
Remove dubious micro-optimization in ckpt_buforder_comparator().
It seems incorrect to assume that the list of CkptSortItems can nevercontain duplicate page numbers: concurrent activity could result in somepage getting dropped from a low-numbered buffer and later loaded into ahigh-numbered buffer while BufferSync is scanning the buffer pool.If that happened, the comparator would give self-inconsistent results,potentially confusing qsort(). Saving one comparison step is not worthpossibly getting the sort wrong.So far as I can tell, nothing would actually go wrong given our currentimplementation of qsort(). It might get a bit slower than expectedif there were a large number of duplicates of one value, but that'ssurely a probability-epsilon case. Still, the comment is wrong,and if we ever switched to another sort implementation it might beless forgiving.In passing, avoid casting away const-ness of the argument pointers;I've not seen any compiler complaints from that, but it seems likelythat some compilers would not like it.Back-patch to 9.6 where this code came in, just in case I've underestimatedthe possible consequences.Discussion:https://postgr.es/m/18437.1515607610@sss.pgh.pa.us1 parent0126838 commitc24a908
1 file changed
+7
-5
lines changedLines changed: 7 additions & 5 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
4020 | 4020 |
| |
4021 | 4021 |
| |
4022 | 4022 |
| |
4023 |
| - | |
4024 |
| - | |
| 4023 | + | |
| 4024 | + | |
4025 | 4025 |
| |
4026 | 4026 |
| |
4027 | 4027 |
| |
| |||
4130 | 4130 |
| |
4131 | 4131 |
| |
4132 | 4132 |
| |
4133 |
| - | |
4134 |
| - | |
| 4133 | + | |
| 4134 | + | |
4135 | 4135 |
| |
4136 | 4136 |
| |
4137 | 4137 |
| |
| |||
4151 | 4151 |
| |
4152 | 4152 |
| |
4153 | 4153 |
| |
4154 |
| - | |
| 4154 | + | |
4155 | 4155 |
| |
| 4156 | + | |
| 4157 | + | |
4156 | 4158 |
| |
4157 | 4159 |
| |
4158 | 4160 |
| |
|
0 commit comments
Comments
(0)