- Notifications
You must be signed in to change notification settings - Fork28
Commit3afd75e
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 parent2fd5809 commit3afd75e
1 file changed
+7
-5
lines changedLines changed: 7 additions & 5 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
4064 | 4064 |
| |
4065 | 4065 |
| |
4066 | 4066 |
| |
4067 |
| - | |
4068 |
| - | |
| 4067 | + | |
| 4068 | + | |
4069 | 4069 |
| |
4070 | 4070 |
| |
4071 | 4071 |
| |
| |||
4174 | 4174 |
| |
4175 | 4175 |
| |
4176 | 4176 |
| |
4177 |
| - | |
4178 |
| - | |
| 4177 | + | |
| 4178 | + | |
4179 | 4179 |
| |
4180 | 4180 |
| |
4181 | 4181 |
| |
| |||
4195 | 4195 |
| |
4196 | 4196 |
| |
4197 | 4197 |
| |
4198 |
| - | |
| 4198 | + | |
4199 | 4199 |
| |
| 4200 | + | |
| 4201 | + | |
4200 | 4202 |
| |
4201 | 4203 |
| |
4202 | 4204 |
| |
|
0 commit comments
Comments
(0)