- Notifications
You must be signed in to change notification settings - Fork28
Commit2f17844
committed
Allow UPDATE to move rows between partitions.
When an UPDATE causes a row to no longer match the partitionconstraint, try to move it to a different partition where it doesmatch the partition constraint. In essence, the UPDATE is split intoa DELETE from the old partition and an INSERT into the new one. Thiscan lead to surprising behavior in concurrency scenarios becauseEvalPlanQual rechecks won't work as they normally did; the knownproblems are documented. (There is a pending patch to improve thesituation further, but it needs more review.)Amit Khandekar, reviewed and tested by Amit Langote, David Rowley,Rajkumar Raghuwanshi, Dilip Kumar, Amul Sul, Thomas Munro, ÁlvaroHerrera, Amit Kapila, and me. A few final revisions by me.Discussion:http://postgr.es/m/CAJ3gD9do9o2ccQ7j7+tSgiE1REY65XRiMb=yJO3u3QhyP8EEPQ@mail.gmail.com1 parent7f17fd6 commit2f17844
File tree
27 files changed
+1957
-274
lines changed- contrib/file_fdw
- input
- output
- doc/src/sgml
- ref
- src
- backend
- commands
- executor
- nodes
- optimizer
- path
- plan
- prep
- util
- include
- executor
- nodes
- optimizer
- test/regress
- expected
- sql
- tools/pgindent
27 files changed
+1957
-274
lines changedLines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
178 | 178 |
| |
179 | 179 |
| |
180 | 180 |
| |
| 181 | + | |
181 | 182 |
| |
182 | 183 |
| |
183 | 184 |
| |
|
Lines changed: 2 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
344 | 344 |
| |
345 | 345 |
| |
346 | 346 |
| |
| 347 | + | |
| 348 | + | |
347 | 349 |
| |
348 | 350 |
| |
349 | 351 |
| |
|
Lines changed: 21 additions & 3 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
3005 | 3005 |
| |
3006 | 3006 |
| |
3007 | 3007 |
| |
| 3008 | + | |
| 3009 | + | |
| 3010 | + | |
| 3011 | + | |
| 3012 | + | |
3008 | 3013 |
| |
3009 | 3014 |
| |
3010 | 3015 |
| |
| |||
3302 | 3307 |
| |
3303 | 3308 |
| |
3304 | 3309 |
| |
3305 |
| - | |
3306 |
| - | |
3307 |
| - | |
| 3310 | + | |
| 3311 | + | |
| 3312 | + | |
| 3313 | + | |
| 3314 | + | |
| 3315 | + | |
| 3316 | + | |
| 3317 | + | |
| 3318 | + | |
| 3319 | + | |
| 3320 | + | |
| 3321 | + | |
| 3322 | + | |
| 3323 | + | |
| 3324 | + | |
| 3325 | + | |
3308 | 3326 |
| |
3309 | 3327 |
| |
3310 | 3328 |
| |
|
Lines changed: 9 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
282 | 282 |
| |
283 | 283 |
| |
284 | 284 |
| |
285 |
| - | |
286 |
| - | |
287 |
| - | |
288 |
| - | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
289 | 294 |
| |
290 | 295 |
| |
291 | 296 |
| |
|
Lines changed: 23 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
153 | 153 |
| |
154 | 154 |
| |
155 | 155 |
| |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
156 | 179 |
| |
157 | 180 |
| |
158 | 181 |
| |
|
Lines changed: 7 additions & 33 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
170 | 170 |
| |
171 | 171 |
| |
172 | 172 |
| |
173 |
| - | |
174 | 173 |
| |
175 | 174 |
| |
176 | 175 |
| |
| |||
2481 | 2480 |
| |
2482 | 2481 |
| |
2483 | 2482 |
| |
2484 |
| - | |
2485 |
| - | |
2486 |
| - | |
2487 |
| - | |
2488 |
| - | |
2489 |
| - | |
2490 |
| - | |
2491 |
| - | |
2492 |
| - | |
2493 |
| - | |
2494 |
| - | |
2495 |
| - | |
2496 |
| - | |
| 2483 | + | |
2497 | 2484 |
| |
2498 | 2485 |
| |
2499 | 2486 |
| |
| |||
2587 | 2574 |
| |
2588 | 2575 |
| |
2589 | 2576 |
| |
2590 |
| - | |
2591 | 2577 |
| |
2592 | 2578 |
| |
2593 | 2579 |
| |
| |||
2651 | 2637 |
| |
2652 | 2638 |
| |
2653 | 2639 |
| |
2654 |
| - | |
| 2640 | + | |
| 2641 | + | |
2655 | 2642 |
| |
2656 | 2643 |
| |
2657 | 2644 |
| |
| |||
2668 | 2655 |
| |
2669 | 2656 |
| |
2670 | 2657 |
| |
2671 |
| - | |
2672 |
| - | |
2673 |
| - | |
2674 |
| - | |
2675 |
| - | |
2676 |
| - | |
2677 |
| - | |
2678 |
| - | |
2679 |
| - | |
2680 |
| - | |
2681 |
| - | |
2682 |
| - | |
2683 |
| - | |
2684 |
| - | |
2685 |
| - | |
2686 |
| - | |
2687 |
| - | |
| 2658 | + | |
| 2659 | + | |
| 2660 | + | |
| 2661 | + | |
2688 | 2662 |
| |
2689 | 2663 |
| |
2690 | 2664 |
| |
|
Lines changed: 41 additions & 11 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2854 | 2854 |
| |
2855 | 2855 |
| |
2856 | 2856 |
| |
2857 |
| - | |
2858 |
| - | |
| 2857 | + | |
| 2858 | + | |
| 2859 | + | |
| 2860 | + | |
| 2861 | + | |
| 2862 | + | |
| 2863 | + | |
2859 | 2864 |
| |
2860 | 2865 |
| |
2861 | 2866 |
| |
| |||
5414 | 5419 |
| |
5415 | 5420 |
| |
5416 | 5421 |
| |
5417 |
| - | |
| 5422 | + | |
| 5423 | + | |
| 5424 | + | |
| 5425 | + | |
| 5426 | + | |
| 5427 | + | |
5418 | 5428 |
| |
5419 | 5429 |
| |
5420 | 5430 |
| |
| |||
5463 | 5473 |
| |
5464 | 5474 |
| |
5465 | 5475 |
| |
5466 |
| - | |
5467 |
| - | |
| 5476 | + | |
| 5477 | + | |
| 5478 | + | |
| 5479 | + | |
| 5480 | + | |
| 5481 | + | |
| 5482 | + | |
| 5483 | + | |
| 5484 | + | |
| 5485 | + | |
| 5486 | + | |
| 5487 | + | |
| 5488 | + | |
| 5489 | + | |
| 5490 | + | |
| 5491 | + | |
5468 | 5492 |
| |
5469 | 5493 |
| |
5470 | 5494 |
| |
5471 |
| - | |
5472 | 5495 |
| |
5473 | 5496 |
| |
5474 | 5497 |
| |
| |||
5481 | 5504 |
| |
5482 | 5505 |
| |
5483 | 5506 |
| |
5484 |
| - | |
5485 |
| - | |
| 5507 | + | |
| 5508 | + | |
| 5509 | + | |
5486 | 5510 |
| |
5487 | 5511 |
| |
5488 | 5512 |
| |
5489 |
| - | |
5490 | 5513 |
| |
5491 | 5514 |
| |
5492 | 5515 |
| |
| |||
5502 | 5525 |
| |
5503 | 5526 |
| |
5504 | 5527 |
| |
5505 |
| - | |
| 5528 | + | |
| 5529 | + | |
| 5530 | + | |
| 5531 | + | |
| 5532 | + | |
| 5533 | + | |
| 5534 | + | |
5506 | 5535 |
| |
5507 | 5536 |
| |
5508 | 5537 |
| |
5509 |
| - | |
| 5538 | + | |
| 5539 | + | |
5510 | 5540 |
| |
5511 | 5541 |
| |
5512 | 5542 |
| |
|
0 commit comments
Comments
(0)