forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit15ce775
committed
Prevent BEFORE triggers from violating partitioning constraints.
Since tuple-routing implicitly checks the partitioning constraintsat least for the levels of the partitioning hierarchy it traverses,there's normally no need to revalidate the partitioning constraintafter performing tuple routing. However, if there's a BEFORE triggeron the target partition, it could modify the tuple, causing thepartitioning constraint to be violated. Catch that case.Also, instead of checking the root table's partition constraint aftertuple-routing, check it beforehand. Otherwise, the rules for whenthe partitioning constraint gets checked get too complicated, becauseyou sometimes have to check part of the constraint but not all of it.This effectively reverts commit39162b2in favor of a different approach altogether.Report by me. Initial debugging by Jeevan Ladhe. Patch by AmitLangote, reviewed by me.Discussion:http://postgr.es/m/CA+Tgmoa9DTgeVOqopieV8d1QRpddmP65aCdxyjdYDoEO5pS5KA@mail.gmail.com1 parente6c33d5 commit15ce775
File tree
5 files changed
+128
-75
lines changed- src
- backend
- commands
- executor
- test/regress
- expected
- sql
5 files changed
+128
-75
lines changedLines changed: 17 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2640 | 2640 |
| |
2641 | 2641 |
| |
2642 | 2642 |
| |
| 2643 | + | |
| 2644 | + | |
| 2645 | + | |
| 2646 | + | |
| 2647 | + | |
| 2648 | + | |
| 2649 | + | |
| 2650 | + | |
| 2651 | + | |
| 2652 | + | |
| 2653 | + | |
| 2654 | + | |
| 2655 | + | |
| 2656 | + | |
| 2657 | + | |
| 2658 | + | |
2643 | 2659 |
| |
2644 |
| - | |
2645 |
| - | |
| 2660 | + | |
2646 | 2661 |
| |
2647 | 2662 |
| |
2648 | 2663 |
| |
|
Lines changed: 68 additions & 70 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
103 | 103 |
| |
104 | 104 |
| |
105 | 105 |
| |
| 106 | + | |
| 107 | + | |
106 | 108 |
| |
107 | 109 |
| |
108 | 110 |
| |
| |||
1339 | 1341 |
| |
1340 | 1342 |
| |
1341 | 1343 |
| |
1342 |
| - | |
1343 |
| - | |
1344 |
| - | |
1345 |
| - | |
1346 |
| - | |
1347 |
| - | |
1348 |
| - | |
| 1344 | + | |
| 1345 | + | |
| 1346 | + | |
| 1347 | + | |
| 1348 | + | |
| 1349 | + | |
| 1350 | + | |
| 1351 | + | |
| 1352 | + | |
| 1353 | + | |
| 1354 | + | |
1349 | 1355 |
| |
1350 |
| - | |
1351 |
| - | |
1352 |
| - | |
1353 |
| - | |
1354 |
| - | |
1355 |
| - | |
1356 |
| - | |
1357 |
| - | |
1358 |
| - | |
1359 |
| - | |
1360 |
| - | |
1361 |
| - | |
1362 |
| - | |
1363 |
| - | |
1364 |
| - | |
1365 |
| - | |
1366 |
| - | |
1367 |
| - | |
1368 |
| - | |
1369 |
| - | |
| 1356 | + | |
1370 | 1357 |
| |
1371 | 1358 |
| |
1372 | 1359 |
| |
| |||
1835 | 1822 |
| |
1836 | 1823 |
| |
1837 | 1824 |
| |
1838 |
| - | |
1839 |
| - | |
1840 | 1825 |
| |
1841 |
| - | |
| 1826 | + | |
1842 | 1827 |
| |
1843 | 1828 |
| |
1844 | 1829 |
| |
| 1830 | + | |
| 1831 | + | |
| 1832 | + | |
| 1833 | + | |
| 1834 | + | |
1845 | 1835 |
| |
1846 | 1836 |
| |
1847 | 1837 |
| |
| |||
1869 | 1859 |
| |
1870 | 1860 |
| |
1871 | 1861 |
| |
1872 |
| - | |
| 1862 | + | |
| 1863 | + | |
| 1864 | + | |
| 1865 | + | |
| 1866 | + | |
| 1867 | + | |
| 1868 | + | |
| 1869 | + | |
| 1870 | + | |
| 1871 | + | |
| 1872 | + | |
| 1873 | + | |
| 1874 | + | |
| 1875 | + | |
| 1876 | + | |
| 1877 | + | |
| 1878 | + | |
| 1879 | + | |
| 1880 | + | |
| 1881 | + | |
| 1882 | + | |
| 1883 | + | |
| 1884 | + | |
| 1885 | + | |
| 1886 | + | |
| 1887 | + | |
| 1888 | + | |
| 1889 | + | |
| 1890 | + | |
| 1891 | + | |
| 1892 | + | |
| 1893 | + | |
| 1894 | + | |
| 1895 | + | |
| 1896 | + | |
| 1897 | + | |
| 1898 | + | |
| 1899 | + | |
1873 | 1900 |
| |
1874 | 1901 |
| |
1875 | 1902 |
| |
| |||
1997 | 2024 |
| |
1998 | 2025 |
| |
1999 | 2026 |
| |
2000 |
| - | |
2001 |
| - | |
2002 |
| - | |
2003 |
| - | |
2004 |
| - | |
2005 |
| - | |
2006 |
| - | |
2007 |
| - | |
2008 |
| - | |
2009 |
| - | |
2010 |
| - | |
2011 |
| - | |
2012 |
| - | |
2013 |
| - | |
2014 |
| - | |
2015 |
| - | |
2016 |
| - | |
2017 |
| - | |
2018 |
| - | |
2019 |
| - | |
2020 |
| - | |
2021 |
| - | |
2022 |
| - | |
2023 |
| - | |
2024 |
| - | |
2025 |
| - | |
2026 |
| - | |
2027 |
| - | |
2028 |
| - | |
2029 |
| - | |
2030 |
| - | |
2031 |
| - | |
2032 |
| - | |
2033 |
| - | |
2034 |
| - | |
2035 |
| - | |
2036 |
| - | |
2037 |
| - | |
2038 |
| - | |
| 2027 | + | |
| 2028 | + | |
2039 | 2029 |
| |
2040 | 2030 |
| |
| 2031 | + | |
2041 | 2032 |
| |
2042 | 2033 |
| |
2043 | 2034 |
| |
| |||
3317 | 3308 |
| |
3318 | 3309 |
| |
3319 | 3310 |
| |
| 3311 | + | |
| 3312 | + | |
| 3313 | + | |
| 3314 | + | |
| 3315 | + | |
| 3316 | + | |
| 3317 | + | |
3320 | 3318 |
| |
3321 | 3319 |
| |
3322 | 3320 |
| |
|
Lines changed: 19 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
414 | 414 |
| |
415 | 415 |
| |
416 | 416 |
| |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
417 | 427 |
| |
418 | 428 |
| |
419 | 429 |
| |
| |||
431 | 441 |
| |
432 | 442 |
| |
433 | 443 |
| |
434 |
| - | |
| 444 | + | |
| 445 | + | |
435 | 446 |
| |
436 |
| - | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
437 | 454 |
| |
438 | 455 |
| |
439 | 456 |
| |
|
Lines changed: 14 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
379 | 379 |
| |
380 | 380 |
| |
381 | 381 |
| |
382 |
| - | |
| 382 | + | |
383 | 383 |
| |
384 | 384 |
| |
385 | 385 |
| |
| |||
495 | 495 |
| |
496 | 496 |
| |
497 | 497 |
| |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + |
Lines changed: 10 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
332 | 332 |
| |
333 | 333 |
| |
334 | 334 |
| |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + |
0 commit comments
Comments
(0)