forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commite3faddf
committed
Fix state reversal after partition tuple routing
We make some changes to ModifyTableState and the EState it uses wheneverwe route tuples to partitions; but we weren't restoring properly in allcases, possibly causing crashes when partitions with different tupledescriptors are targeted by tuples inserted in the same command.Refactor some code, creating ExecPrepareTupleRouting, to encapsulate theneeded state changing logic, and have it invoked one level above itscurrent place (ie. put it in ExecModifyTable instead of ExecInsert);this makes it all more readable.Add a test case to exercise this.We don't support having views as partitions; and since only views canhave INSTEAD OF triggers, there is no point in testing for INSTEAD OFwhen processing insertions into a partitioned table. Remove code thatappears to support this (but which is actually never relevant.)In passing, fix location of some very confusing comments inModifyTableState.Reported-by: Amit LangoteAuthor: Etsuro Fujita, Amit LangoteDiscussion: https://postgr/es/m/0473bf5c-57b1-f1f7-3d58-455c2230bc5f@lab.ntt.co.jp1 parentff30116 commite3faddf
File tree
5 files changed
+189
-113
lines changed- src
- backend
- commands
- executor
- include/nodes
- test/regress
- expected
- sql
5 files changed
+189
-113
lines changedLines changed: 10 additions & 10 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2656 | 2656 |
| |
2657 | 2657 |
| |
2658 | 2658 |
| |
2659 |
| - | |
2660 |
| - | |
| 2659 | + | |
2661 | 2660 |
| |
2662 | 2661 |
| |
2663 |
| - | |
2664 |
| - | |
2665 |
| - | |
| 2662 | + | |
| 2663 | + | |
| 2664 | + | |
2666 | 2665 |
| |
2667 | 2666 |
| |
2668 | 2667 |
| |
| |||
2803 | 2802 |
| |
2804 | 2803 |
| |
2805 | 2804 |
| |
| 2805 | + | |
2806 | 2806 |
| |
2807 |
| - | |
2808 |
| - | |
2809 |
| - | |
2810 |
| - | |
2811 |
| - | |
| 2807 | + | |
| 2808 | + | |
| 2809 | + | |
| 2810 | + | |
| 2811 | + | |
2812 | 2812 |
| |
2813 | 2813 |
| |
2814 | 2814 |
| |
|
Lines changed: 117 additions & 99 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
62 | 62 |
| |
63 | 63 |
| |
64 | 64 |
| |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
65 | 69 |
| |
66 | 70 |
| |
67 | 71 |
| |
| |||
259 | 263 |
| |
260 | 264 |
| |
261 | 265 |
| |
262 |
| - | |
263 | 266 |
| |
264 | 267 |
| |
265 | 268 |
| |
| |||
275 | 278 |
| |
276 | 279 |
| |
277 | 280 |
| |
278 |
| - | |
279 |
| - | |
280 |
| - | |
281 |
| - | |
282 |
| - | |
283 |
| - | |
284 |
| - | |
285 |
| - | |
286 |
| - | |
287 |
| - | |
288 |
| - | |
289 |
| - | |
290 |
| - | |
291 |
| - | |
292 |
| - | |
293 |
| - | |
294 |
| - | |
295 |
| - | |
296 |
| - | |
297 |
| - | |
298 |
| - | |
299 |
| - | |
300 |
| - | |
301 |
| - | |
302 |
| - | |
303 |
| - | |
304 |
| - | |
305 |
| - | |
306 |
| - | |
307 |
| - | |
308 |
| - | |
309 |
| - | |
310 |
| - | |
311 |
| - | |
312 |
| - | |
313 |
| - | |
314 |
| - | |
315 |
| - | |
316 |
| - | |
317 |
| - | |
318 |
| - | |
319 |
| - | |
320 |
| - | |
321 |
| - | |
322 |
| - | |
323 |
| - | |
324 |
| - | |
325 |
| - | |
326 |
| - | |
327 |
| - | |
328 |
| - | |
329 |
| - | |
330 |
| - | |
331 |
| - | |
332 |
| - | |
333 |
| - | |
334 |
| - | |
335 |
| - | |
336 |
| - | |
337 |
| - | |
338 |
| - | |
339 |
| - | |
340 |
| - | |
341 |
| - | |
342 |
| - | |
343 |
| - | |
344 |
| - | |
345 |
| - | |
346 |
| - | |
347 |
| - | |
348 |
| - | |
349 |
| - | |
350 |
| - | |
351 |
| - | |
352 |
| - | |
353 |
| - | |
354 |
| - | |
355 |
| - | |
356 |
| - | |
357 |
| - | |
358 |
| - | |
359 |
| - | |
360 |
| - | |
361 |
| - | |
362 |
| - | |
363 |
| - | |
364 |
| - | |
365 |
| - | |
366 |
| - | |
367 |
| - | |
368 |
| - | |
369 |
| - | |
370 |
| - | |
371 |
| - | |
372 | 281 |
| |
373 | 282 |
| |
374 | 283 |
| |
| |||
477 | 386 |
| |
478 | 387 |
| |
479 | 388 |
| |
480 |
| - | |
| 389 | + | |
481 | 390 |
| |
482 | 391 |
| |
483 | 392 |
| |
| |||
645 | 554 |
| |
646 | 555 |
| |
647 | 556 |
| |
648 |
| - | |
649 |
| - | |
650 |
| - | |
651 | 557 |
| |
652 | 558 |
| |
653 | 559 |
| |
| |||
1545 | 1451 |
| |
1546 | 1452 |
| |
1547 | 1453 |
| |
| 1454 | + | |
| 1455 | + | |
| 1456 | + | |
| 1457 | + | |
| 1458 | + | |
| 1459 | + | |
| 1460 | + | |
| 1461 | + | |
| 1462 | + | |
| 1463 | + | |
| 1464 | + | |
| 1465 | + | |
| 1466 | + | |
| 1467 | + | |
| 1468 | + | |
| 1469 | + | |
| 1470 | + | |
| 1471 | + | |
| 1472 | + | |
| 1473 | + | |
| 1474 | + | |
| 1475 | + | |
| 1476 | + | |
| 1477 | + | |
| 1478 | + | |
| 1479 | + | |
| 1480 | + | |
| 1481 | + | |
| 1482 | + | |
| 1483 | + | |
| 1484 | + | |
| 1485 | + | |
| 1486 | + | |
| 1487 | + | |
| 1488 | + | |
| 1489 | + | |
| 1490 | + | |
| 1491 | + | |
| 1492 | + | |
| 1493 | + | |
| 1494 | + | |
| 1495 | + | |
| 1496 | + | |
| 1497 | + | |
| 1498 | + | |
| 1499 | + | |
| 1500 | + | |
| 1501 | + | |
| 1502 | + | |
| 1503 | + | |
| 1504 | + | |
| 1505 | + | |
| 1506 | + | |
| 1507 | + | |
| 1508 | + | |
| 1509 | + | |
| 1510 | + | |
| 1511 | + | |
| 1512 | + | |
| 1513 | + | |
| 1514 | + | |
| 1515 | + | |
| 1516 | + | |
| 1517 | + | |
| 1518 | + | |
| 1519 | + | |
| 1520 | + | |
| 1521 | + | |
| 1522 | + | |
| 1523 | + | |
| 1524 | + | |
| 1525 | + | |
| 1526 | + | |
| 1527 | + | |
| 1528 | + | |
| 1529 | + | |
| 1530 | + | |
| 1531 | + | |
| 1532 | + | |
| 1533 | + | |
| 1534 | + | |
| 1535 | + | |
| 1536 | + | |
| 1537 | + | |
| 1538 | + | |
| 1539 | + | |
| 1540 | + | |
| 1541 | + | |
| 1542 | + | |
| 1543 | + | |
| 1544 | + | |
| 1545 | + | |
| 1546 | + | |
| 1547 | + | |
| 1548 | + | |
| 1549 | + | |
| 1550 | + | |
| 1551 | + | |
| 1552 | + | |
| 1553 | + | |
| 1554 | + | |
| 1555 | + | |
| 1556 | + | |
| 1557 | + | |
| 1558 | + | |
1548 | 1559 |
| |
1549 | 1560 |
| |
1550 | 1561 |
| |
| |||
1763 | 1774 |
| |
1764 | 1775 |
| |
1765 | 1776 |
| |
| 1777 | + | |
| 1778 | + | |
| 1779 | + | |
| 1780 | + | |
1766 | 1781 |
| |
1767 | 1782 |
| |
1768 | 1783 |
| |
| 1784 | + | |
| 1785 | + | |
| 1786 | + | |
1769 | 1787 |
| |
1770 | 1788 |
| |
1771 | 1789 |
| |
|
Lines changed: 13 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
981 | 981 |
| |
982 | 982 |
| |
983 | 983 |
| |
984 |
| - | |
| 984 | + | |
985 | 985 |
| |
| 986 | + | |
| 987 | + | |
| 988 | + | |
| 989 | + | |
| 990 | + | |
| 991 | + | |
986 | 992 |
| |
987 |
| - | |
| 993 | + | |
988 | 994 |
| |
989 |
| - | |
| 995 | + | |
| 996 | + | |
990 | 997 |
| |
991 |
| - | |
| 998 | + | |
| 999 | + | |
992 | 1000 |
| |
| 1001 | + | |
993 | 1002 |
| |
994 | 1003 |
| |
995 | 1004 |
| |
|
Lines changed: 26 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
554 | 554 |
| |
555 | 555 |
| |
556 | 556 |
| |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
557 | 583 |
| |
558 | 584 |
| |
559 | 585 |
| |
|
Lines changed: 23 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
378 | 378 |
| |
379 | 379 |
| |
380 | 380 |
| |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
381 | 404 |
| |
382 | 405 |
| |
383 | 406 |
| |
|
0 commit comments
Comments
(0)