forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit35b99a1
committed
Prevent pgstats from getting confused when relkind of a relation changes
When the relkind of a relache entry changes, because a table is converted intoa view, pgstats can get confused in 15+, leading to crashes or assertionfailures.For HEAD, Tom fixed this inb23cd18, by removing support for converting atable to a view, removing the source of the inconsistency. This commit justadds an assertion that a relcache entry's relkind does not change, just incase we end up with another case of that in the future. As there's no cases ofchanging relkind anymore, we can't add a test that that's handled correctly.For 15, fix the problem by not maintaining the association with the old pgstatentry when the relkind changes during a relcache invalidation processing. Inthat case the pgstat entry needs to be unlinked first, to avoidPgStat_TableStatus->relation getting out of sync. Also add a test reproducingthe issues.No known problem exists in 11-14, so just add the test there.Reported-by: vignesh C <vignesh21@gmail.com>Author: Andres Freund <andres@anarazel.de>Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>Discussion:https://postgr.es/m/CALDaNm2yXz+zOtv7y5zBd5WKT8O0Ld3YxikuU3dcyCvxF7gypA@mail.gmail.comDiscussion:https://postgr.es/m/CALDaNm3oZA-8Wbps2Jd1g5_Gjrr-x3YWrJPek-mF5Asrrvz2Dg@mail.gmail.comBackpatch: 15-1 parentf98c4fb commit35b99a1
2 files changed
+48
-1
lines changedLines changed: 25 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1776 | 1776 |
| |
1777 | 1777 |
| |
1778 | 1778 |
| |
| 1779 | + | |
| 1780 | + | |
| 1781 | + | |
| 1782 | + | |
| 1783 | + | |
| 1784 | + | |
| 1785 | + | |
| 1786 | + | |
| 1787 | + | |
| 1788 | + | |
| 1789 | + | |
| 1790 | + | |
| 1791 | + | |
| 1792 | + | |
| 1793 | + | |
| 1794 | + | |
| 1795 | + | |
| 1796 | + | |
| 1797 | + | |
| 1798 | + | |
| 1799 | + | |
| 1800 | + | |
| 1801 | + | |
1779 | 1802 |
| |
1780 | 1803 |
| |
1781 | 1804 |
| |
| |||
1807 | 1830 |
| |
1808 | 1831 |
| |
1809 | 1832 |
| |
1810 |
| - | |
| 1833 | + | |
1811 | 1834 |
| |
1812 | 1835 |
| |
1813 | 1836 |
| |
| |||
1872 | 1895 |
| |
1873 | 1896 |
| |
1874 | 1897 |
| |
| 1898 | + |
Lines changed: 23 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
608 | 608 |
| |
609 | 609 |
| |
610 | 610 |
| |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
611 | 634 |
| |
612 | 635 |
| |
613 | 636 |
|
0 commit comments
Comments
(0)