Commit 589bb81
committed
Fix setrefs.c code for adjusting partPruneInfos
We were transferring partPruneInfos from PlannerInfo into PlannerGlobal
wrong, essentially relying on all of them being transferred, and
adjusting their list indexes based on that. But apparently it's
possible that some of them are skipped, so that strategy leads to a
corrupted execution tree. Instead, adjust each Append/MergeAppend's
partpruneinfo index as we copy from one list to the other, which seems
safer anyway. This requires adjusting the RT offset of the RTE
referenced in each partPruneInfo ahead of actually adjusting the RTE
itself, which seems a bit too ad-hoc.
This problem was introduced by commit ec38694. However, it may be
that we no longer require the change introduced there, so perhaps we
should revert both the present commit and that one.
Problem noticed by sqlsmith.
Author: Amit Langote <amitlangote09@gmail.com
Discussion: https://postgr.es/m/CA+HiwqG6tbc2oadsbyyy24b2AL295XHQgyLRWghmA7u_SL1K8A@mail.gmail.com1 parent f9054b7 commit 589bb81
1 file changed
+52
-31
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
350 | 350 | | |
351 | 351 | | |
352 | 352 | | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
353 | 376 | | |
354 | 377 | | |
355 | 378 | | |
| |||
378 | 401 | | |
379 | 402 | | |
380 | 403 | | |
381 | | - | |
382 | | - | |
383 | | - | |
384 | | - | |
385 | | - | |
386 | | - | |
387 | | - | |
388 | | - | |
389 | | - | |
390 | | - | |
391 | | - | |
392 | | - | |
393 | | - | |
394 | | - | |
395 | | - | |
396 | | - | |
397 | | - | |
398 | | - | |
399 | | - | |
400 | | - | |
401 | | - | |
402 | | - | |
403 | | - | |
404 | | - | |
405 | | - | |
406 | 404 | | |
407 | 405 | | |
408 | 406 | | |
| |||
1718 | 1716 | | |
1719 | 1717 | | |
1720 | 1718 | | |
| 1719 | + | |
| 1720 | + | |
| 1721 | + | |
| 1722 | + | |
| 1723 | + | |
| 1724 | + | |
| 1725 | + | |
| 1726 | + | |
| 1727 | + | |
| 1728 | + | |
| 1729 | + | |
| 1730 | + | |
| 1731 | + | |
| 1732 | + | |
| 1733 | + | |
| 1734 | + | |
| 1735 | + | |
| 1736 | + | |
| 1737 | + | |
| 1738 | + | |
| 1739 | + | |
| 1740 | + | |
| 1741 | + | |
1721 | 1742 | | |
1722 | 1743 | | |
1723 | 1744 | | |
| |||
1771 | 1792 | | |
1772 | 1793 | | |
1773 | 1794 | | |
1774 | | - | |
1775 | | - | |
| 1795 | + | |
1776 | 1796 | | |
1777 | 1797 | | |
1778 | | - | |
| 1798 | + | |
| 1799 | + | |
1779 | 1800 | | |
1780 | 1801 | | |
1781 | 1802 | | |
| |||
1838 | 1859 | | |
1839 | 1860 | | |
1840 | 1861 | | |
1841 | | - | |
1842 | | - | |
| 1862 | + | |
1843 | 1863 | | |
1844 | 1864 | | |
1845 | | - | |
| 1865 | + | |
| 1866 | + | |
1846 | 1867 | | |
1847 | 1868 | | |
1848 | 1869 | | |
| |||
0 commit comments