- Notifications
You must be signed in to change notification settings - Fork4.9k
Commit5d6eac8
committed
pg_dump: Adjust reltuples from 0 to -1 for dumps of older versions.
Before v14, a reltuples value of 0 was ambiguous: it could eithermean the relation is empty, or it could mean that it hadn't yetbeen vacuumed or analyzed. (Commit3d351d9 taught v14 and newerto use -1 for the latter case.) This ambiguity allegedly can causethe planner to choose inefficient plans after restoring to v18 ornewer. To fix, let's just dump reltuples as -1 in that case. Thiswill cause some truly empty tables to be seen as not-yet-processed,but that seems unlikely to cause too much trouble in practice.Note that we could alternatively teach pg_restore_relation_stats()to translate reltuples based on the version argument, but sincethat function doesn't exist until v18, there's no particularadvantage to that approach. That is, there's no chance ofrestoring stats dumped from a pre-v14 server to another pre-v14server. Per discussion, the current policy is to fix pre-v18behavior differences during export and everything else duringimport.Commit9879105 fixed a similar problem for vacuumdb by removingthe check for reltuples != 0. Presumably we could reinstate thatcheck now, but I've chosen to leave it in place in case reltuplesisn't accurate. As before, processing some empty tables seemsrelatively harmless.Author: Hari Krishna Sunder <hari.db.pg@gmail.com>Reviewed-by: Jeff Davis <pgsql@j-davis.com>Reviewed-by: Corey Huinker <corey.huinker@gmail.com>Discussion:https://postgr.es/m/CAAeiqZ0o2p4SX5_xPcuAbbsmXjg6MJLNuPYSLUjC%3DWh-VeW64A%40mail.gmail.com1 parent1722d5e commit5d6eac8
1 file changed
+14
-1
lines changedLines changed: 14 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
10929 | 10929 |
| |
10930 | 10930 |
| |
10931 | 10931 |
| |
10932 |
| - | |
| 10932 | + | |
| 10933 | + | |
| 10934 | + | |
| 10935 | + | |
| 10936 | + | |
| 10937 | + | |
| 10938 | + | |
| 10939 | + | |
| 10940 | + | |
| 10941 | + | |
| 10942 | + | |
| 10943 | + | |
| 10944 | + | |
| 10945 | + | |
10933 | 10946 |
| |
10934 | 10947 |
| |
10935 | 10948 |
| |
|
0 commit comments
Comments
(0)