forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commitc649fa2
committed
Add RETURNING support to MERGE.
This allows a RETURNING clause to be appended to a MERGE query, toreturn values based on each row inserted, updated, or deleted. As withplain INSERT, UPDATE, and DELETE commands, the returned values arebased on the new contents of the target table for INSERT and UPDATEactions, and on its old contents for DELETE actions. Values from thesource relation may also be returned.As with INSERT/UPDATE/DELETE, the output of MERGE ... RETURNING may beused as the source relation for other operations such as WITH queriesand COPY commands.Additionally, a special function merge_action() is provided, whichreturns 'INSERT', 'UPDATE', or 'DELETE', depending on the actionexecuted for each row. The merge_action() function can be usedanywhere in the RETURNING list, including in arbitrary expressions andsubqueries, but it is an error to use it anywhere outside of a MERGEquery's RETURNING list.Dean Rasheed, reviewed by Isaac Morland, Vik Fearing, Alvaro Herrera,Gurjeet Singh, Jian He, Jeff Davis, Merlin Moncure, Peter Eisentraut,and Wolfgang Walther.Discussion:http://postgr.es/m/CAEZATCWePEGQR5LBn-vD6SfeLZafzEm2Qy_L_Oky2=qw2w3Pzg@mail.gmail.com1 parent6a004f1 commitc649fa2
File tree
61 files changed
+1198
-216
lines changed- doc/src/sgml
- ref
- src
- backend
- commands
- executor
- jit/llvm
- nodes
- optimizer
- plan
- util
- parser
- rewrite
- tcop
- utils/adt
- bin/psql
- include
- catalog
- executor
- nodes
- optimizer
- parser
- pl
- plpgsql/src
- tcl
- test/regress
- expected
- sql
- tools/pgindent
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
61 files changed
+1198
-216
lines changedLines changed: 21 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
283 | 283 |
| |
284 | 284 |
| |
285 | 285 |
| |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
286 | 291 |
| |
287 | 292 |
| |
288 | 293 |
| |
289 |
| - | |
| 294 | + | |
290 | 295 |
| |
291 | 296 |
| |
292 | 297 |
| |
| |||
339 | 344 |
| |
340 | 345 |
| |
341 | 346 |
| |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
342 | 362 |
| |
343 | 363 |
| |
344 | 364 |
| |
|
Lines changed: 79 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
22421 | 22421 |
| |
22422 | 22422 |
| |
22423 | 22423 |
| |
| 22424 | + | |
| 22425 | + | |
| 22426 | + | |
| 22427 | + | |
| 22428 | + | |
| 22429 | + | |
| 22430 | + | |
| 22431 | + | |
| 22432 | + | |
| 22433 | + | |
| 22434 | + | |
| 22435 | + | |
| 22436 | + | |
| 22437 | + | |
| 22438 | + | |
| 22439 | + | |
| 22440 | + | |
| 22441 | + | |
| 22442 | + | |
| 22443 | + | |
| 22444 | + | |
| 22445 | + | |
| 22446 | + | |
| 22447 | + | |
| 22448 | + | |
| 22449 | + | |
| 22450 | + | |
| 22451 | + | |
| 22452 | + | |
| 22453 | + | |
| 22454 | + | |
| 22455 | + | |
| 22456 | + | |
| 22457 | + | |
| 22458 | + | |
| 22459 | + | |
| 22460 | + | |
| 22461 | + | |
| 22462 | + | |
| 22463 | + | |
| 22464 | + | |
| 22465 | + | |
| 22466 | + | |
| 22467 | + | |
| 22468 | + | |
| 22469 | + | |
| 22470 | + | |
| 22471 | + | |
| 22472 | + | |
| 22473 | + | |
| 22474 | + | |
| 22475 | + | |
| 22476 | + | |
| 22477 | + | |
| 22478 | + | |
| 22479 | + | |
| 22480 | + | |
| 22481 | + | |
| 22482 | + | |
| 22483 | + | |
| 22484 | + | |
| 22485 | + | |
| 22486 | + | |
| 22487 | + | |
| 22488 | + | |
| 22489 | + | |
| 22490 | + | |
| 22491 | + | |
| 22492 | + | |
| 22493 | + | |
| 22494 | + | |
| 22495 | + | |
| 22496 | + | |
| 22497 | + | |
| 22498 | + | |
| 22499 | + | |
| 22500 | + | |
| 22501 | + | |
| 22502 | + | |
22424 | 22503 |
| |
22425 | 22504 |
| |
22426 | 22505 |
| |
|
Lines changed: 3 additions & 3 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1442 | 1442 |
| |
1443 | 1443 |
| |
1444 | 1444 |
| |
1445 |
| - | |
1446 |
| - | |
1447 |
| - | |
| 1445 | + | |
| 1446 | + | |
| 1447 | + | |
1448 | 1448 |
| |
1449 | 1449 |
| |
1450 | 1450 |
| |
|
Lines changed: 9 additions & 7 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1043 | 1043 |
| |
1044 | 1044 |
| |
1045 | 1045 |
| |
1046 |
| - | |
1047 |
| - | |
| 1046 | + | |
| 1047 | + | |
1048 | 1048 |
| |
1049 | 1049 |
| |
1050 | 1050 |
| |
| |||
1172 | 1172 |
| |
1173 | 1173 |
| |
1174 | 1174 |
| |
| 1175 | + | |
1175 | 1176 |
| |
1176 | 1177 |
| |
1177 | 1178 |
| |
| |||
1182 | 1183 |
| |
1183 | 1184 |
| |
1184 | 1185 |
| |
1185 |
| - | |
1186 |
| - | |
| 1186 | + | |
| 1187 | + | |
1187 | 1188 |
| |
1188 | 1189 |
| |
1189 | 1190 |
| |
| |||
1259 | 1260 |
| |
1260 | 1261 |
| |
1261 | 1262 |
| |
1262 |
| - | |
| 1263 | + | |
1263 | 1264 |
| |
1264 | 1265 |
| |
1265 | 1266 |
| |
| |||
2657 | 2658 |
| |
2658 | 2659 |
| |
2659 | 2660 |
| |
2660 |
| - | |
2661 |
| - | |
| 2661 | + | |
| 2662 | + | |
| 2663 | + | |
2662 | 2664 |
| |
2663 | 2665 |
| |
2664 | 2666 |
| |
|
Lines changed: 5 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2063 | 2063 |
| |
2064 | 2064 |
| |
2065 | 2065 |
| |
2066 |
| - | |
| 2066 | + | |
| 2067 | + | |
2067 | 2068 |
| |
2068 |
| - | |
| 2069 | + | |
2069 | 2070 |
| |
2070 | 2071 |
| |
2071 | 2072 |
| |
| |||
2599 | 2600 |
| |
2600 | 2601 |
| |
2601 | 2602 |
| |
2602 |
| - | |
2603 |
| - | |
| 2603 | + | |
| 2604 | + | |
2604 | 2605 |
| |
2605 | 2606 |
| |
2606 | 2607 |
| |
|
Lines changed: 11 additions & 8 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
130 | 130 |
| |
131 | 131 |
| |
132 | 132 |
| |
133 |
| - | |
134 |
| - | |
135 |
| - | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
136 | 138 |
| |
137 | 139 |
| |
138 |
| - | |
139 |
| - | |
140 |
| - | |
141 |
| - | |
142 |
| - | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
143 | 146 |
| |
144 | 147 |
| |
145 | 148 |
| |
|
Lines changed: 57 additions & 11 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
25 | 25 |
| |
26 | 26 |
| |
27 | 27 |
| |
| 28 | + | |
28 | 29 |
| |
29 | 30 |
| |
30 | 31 |
| |
| |||
96 | 97 |
| |
97 | 98 |
| |
98 | 99 |
| |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
99 | 112 |
| |
100 | 113 |
| |
101 | 114 |
| |
| |||
442 | 455 |
| |
443 | 456 |
| |
444 | 457 |
| |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
445 | 488 |
| |
446 | 489 |
| |
447 | 490 |
| |
| |||
460 | 503 |
| |
461 | 504 |
| |
462 | 505 |
| |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
463 | 513 |
| |
464 | 514 |
| |
465 | 515 |
| |
| |||
579 | 629 |
| |
580 | 630 |
| |
581 | 631 |
| |
582 |
| - | |
583 |
| - | |
584 |
| - | |
585 |
| - | |
586 |
| - | |
587 |
| - | |
588 |
| - | |
589 | 632 |
| |
590 | 633 |
| |
591 | 634 |
| |
| |||
638 | 681 |
| |
639 | 682 |
| |
640 | 683 |
| |
641 |
| - | |
| 684 | + | |
| 685 | + | |
642 | 686 |
| |
643 | 687 |
| |
644 | 688 |
| |
| |||
648 | 692 |
| |
649 | 693 |
| |
650 | 694 |
| |
651 |
| - | |
| 695 | + | |
| 696 | + | |
652 | 697 |
| |
653 | 698 |
| |
654 | 699 |
| |
| |||
663 | 708 |
| |
664 | 709 |
| |
665 | 710 |
| |
666 |
| - | |
667 |
| - | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
668 | 714 |
| |
669 | 715 |
| |
670 | 716 |
|
Lines changed: 6 additions & 5 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
74 | 74 |
| |
75 | 75 |
| |
76 | 76 |
| |
77 |
| - | |
| 77 | + | |
78 | 78 |
| |
79 | 79 |
| |
80 | 80 |
| |
| |||
230 | 230 |
| |
231 | 231 |
| |
232 | 232 |
| |
233 |
| - | |
234 |
| - | |
| 233 | + | |
| 234 | + | |
235 | 235 |
| |
236 |
| - | |
| 236 | + | |
237 | 237 |
| |
238 | 238 |
| |
239 | 239 |
| |
| |||
2184 | 2184 |
| |
2185 | 2185 |
| |
2186 | 2186 |
| |
2187 |
| - | |
| 2187 | + | |
| 2188 | + | |
2188 | 2189 |
| |
2189 | 2190 |
| |
2190 | 2191 |
| |
|
0 commit comments
Comments
(0)