- Notifications
You must be signed in to change notification settings - Fork4.9k
Commitb9ec812
committed
Remove HeapBitmapScan's skip_fetch optimization
The optimization does not take the removal of TIDs by a concurrent vacuum intoaccount. The concurrent vacuum can remove dead TIDs and make pages ALL_VISIBLEwhile those dead TIDs are referenced in the bitmap. This can lead to askip_fetch scan returning too many tuples.It likely would be possible to implement this optimization safely, but wedon't have the necessary infrastructure in place. Nor is it clear that it'sworth building that infrastructure, given how limited the skip_fetchoptimization is.In the backbranches we just disable the optimization by always passingneed_tuples=true to table_beginscan_bm(). We can't perform API/ABI changes inthe backbranches and we want to make the change as minimal as possible.Author: Matthias van de Meent <boekewurm+postgres@gmail.com>Reported-By: Konstantin Knizhnik <knizhnik@garret.ru>Discussion:https://postgr.es/m/CAEze2Wg3gXXZTr6_rwC+s4-o2ZVFB5F985uUSgJTsECx6AmGcQ@mail.gmail.comBackpatch-through: 131 parentdd34cbf commitb9ec812
1 file changed
+15
-0
lines changedLines changed: 15 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
742 | 742 |
| |
743 | 743 |
| |
744 | 744 |
| |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
745 | 759 |
| |
746 | 760 |
| |
747 | 761 |
| |
| |||
751 | 765 |
| |
752 | 766 |
| |
753 | 767 |
| |
| 768 | + | |
754 | 769 |
| |
755 | 770 |
| |
756 | 771 |
| |
|
0 commit comments
Comments
(0)