forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit212fab9
committed
Relax transactional restrictions on ALTER TYPE ... ADD VALUE (redux).
Originally committed as15bc038 (plus some follow-ups), this wasreverted in28e0727 due to a problem discovered in parallelworkers. This new version corrects that problem by sending thelist of uncommitted enum values to parallel workers.Here follows the original commit message describing the change:To prevent possibly breaking indexes on enum columns, we must keepuncommitted enum values from getting stored in tables, unless wecan be sure that any such column is new in the current transaction.Formerly, we enforced this by disallowing ALTER TYPE ... ADD VALUEfrom being executed at all in a transaction block, unless the targetenum type had been created in the current transaction. This patchremoves that restriction, and instead insists that an uncommitted enumvalue can't be referenced unless it belongs to an enum type createdin the same transaction as the value. Per discussion, this should bea bit less onerous. It does require each function that could possiblyreturn a new enum value to SQL operations to check this restriction,but there aren't so many of those that this seems unmaintainable.Author: Andrew Dunstan and Tom Lane, with parallel query fix by Thomas MunroReviewed-by: Tom LaneDiscussion:https://postgr.es/m/CAEepm%3D0Ei7g6PaNTbcmAh9tCRahQrk%3Dr5ZWLD-jr7hXweYX3yg%40mail.gmail.comDiscussion:https://postgr.es/m/4075.1459088427%40sss.pgh.pa.us1 parent7767aad commit212fab9
File tree
12 files changed
+367
-50
lines changed- doc/src/sgml/ref
- src
- backend
- access/transam
- catalog
- commands
- tcop
- utils
- adt
- include
- catalog
- commands
- test/regress
- expected
- sql
12 files changed
+367
-50
lines changedLines changed: 3 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
290 | 290 |
| |
291 | 291 |
| |
292 | 292 |
| |
293 |
| - | |
294 |
| - | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
295 | 296 |
| |
296 | 297 |
| |
297 | 298 |
| |
|
Lines changed: 19 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
19 | 19 |
| |
20 | 20 |
| |
21 | 21 |
| |
| 22 | + | |
22 | 23 |
| |
23 | 24 |
| |
24 | 25 |
| |
| |||
71 | 72 |
| |
72 | 73 |
| |
73 | 74 |
| |
| 75 | + | |
74 | 76 |
| |
75 | 77 |
| |
76 | 78 |
| |
| |||
210 | 212 |
| |
211 | 213 |
| |
212 | 214 |
| |
| 215 | + | |
213 | 216 |
| |
214 | 217 |
| |
215 | 218 |
| |
| |||
263 | 266 |
| |
264 | 267 |
| |
265 | 268 |
| |
| 269 | + | |
| 270 | + | |
266 | 271 |
| |
267 |
| - | |
| 272 | + | |
268 | 273 |
| |
269 | 274 |
| |
270 | 275 |
| |
| |||
340 | 345 |
| |
341 | 346 |
| |
342 | 347 |
| |
| 348 | + | |
343 | 349 |
| |
344 | 350 |
| |
345 | 351 |
| |
| |||
389 | 395 |
| |
390 | 396 |
| |
391 | 397 |
| |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
392 | 404 |
| |
393 | 405 |
| |
394 | 406 |
| |
| |||
1222 | 1234 |
| |
1223 | 1235 |
| |
1224 | 1236 |
| |
| 1237 | + | |
1225 | 1238 |
| |
1226 | 1239 |
| |
1227 | 1240 |
| |
| |||
1408 | 1421 |
| |
1409 | 1422 |
| |
1410 | 1423 |
| |
| 1424 | + | |
| 1425 | + | |
| 1426 | + | |
| 1427 | + | |
| 1428 | + | |
1411 | 1429 |
| |
1412 | 1430 |
| |
1413 | 1431 |
| |
|
Lines changed: 4 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
31 | 31 |
| |
32 | 32 |
| |
33 | 33 |
| |
| 34 | + | |
34 | 35 |
| |
35 | 36 |
| |
36 | 37 |
| |
| |||
2135 | 2136 |
| |
2136 | 2137 |
| |
2137 | 2138 |
| |
| 2139 | + | |
2138 | 2140 |
| |
2139 | 2141 |
| |
2140 | 2142 |
| |
| |||
2413 | 2415 |
| |
2414 | 2416 |
| |
2415 | 2417 |
| |
| 2418 | + | |
2416 | 2419 |
| |
2417 | 2420 |
| |
2418 | 2421 |
| |
| |||
2615 | 2618 |
| |
2616 | 2619 |
| |
2617 | 2620 |
| |
| 2621 | + | |
2618 | 2622 |
| |
2619 | 2623 |
| |
2620 | 2624 |
| |
|
Lines changed: 139 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
28 | 28 |
| |
29 | 29 |
| |
30 | 30 |
| |
| 31 | + | |
| 32 | + | |
31 | 33 |
| |
32 | 34 |
| |
33 | 35 |
| |
34 | 36 |
| |
35 | 37 |
| |
36 | 38 |
| |
37 | 39 |
| |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
38 | 51 |
| |
39 | 52 |
| |
40 | 53 |
| |
| |||
168 | 181 |
| |
169 | 182 |
| |
170 | 183 |
| |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
171 | 201 |
| |
172 | 202 |
| |
173 | 203 |
| |
| |||
460 | 490 |
| |
461 | 491 |
| |
462 | 492 |
| |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
463 | 500 |
| |
464 | 501 |
| |
465 | 502 |
| |
| |||
547 | 584 |
| |
548 | 585 |
| |
549 | 586 |
| |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
550 | 620 |
| |
551 | 621 |
| |
552 | 622 |
| |
| |||
620 | 690 |
| |
621 | 691 |
| |
622 | 692 |
| |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + |
Lines changed: 4 additions & 25 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1270 | 1270 |
| |
1271 | 1271 |
| |
1272 | 1272 |
| |
1273 |
| - | |
| 1273 | + | |
1274 | 1274 |
| |
1275 | 1275 |
| |
1276 |
| - | |
| 1276 | + | |
1277 | 1277 |
| |
1278 | 1278 |
| |
1279 | 1279 |
| |
| |||
1291 | 1291 |
| |
1292 | 1292 |
| |
1293 | 1293 |
| |
| 1294 | + | |
| 1295 | + | |
1294 | 1296 |
| |
1295 | 1297 |
| |
1296 | 1298 |
| |
| |||
1299 | 1301 |
| |
1300 | 1302 |
| |
1301 | 1303 |
| |
1302 |
| - | |
1303 |
| - | |
1304 |
| - | |
1305 |
| - | |
1306 |
| - | |
1307 |
| - | |
1308 |
| - | |
1309 |
| - | |
1310 |
| - | |
1311 |
| - | |
1312 |
| - | |
1313 |
| - | |
1314 |
| - | |
1315 |
| - | |
1316 |
| - | |
1317 |
| - | |
1318 |
| - | |
1319 |
| - | |
1320 |
| - | |
1321 |
| - | |
1322 |
| - | |
1323 | 1304 |
| |
1324 | 1305 |
| |
1325 | 1306 |
| |
| |||
1329 | 1310 |
| |
1330 | 1311 |
| |
1331 | 1312 |
| |
1332 |
| - | |
1333 |
| - | |
1334 | 1313 |
| |
1335 | 1314 |
| |
1336 | 1315 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1439 | 1439 |
| |
1440 | 1440 |
| |
1441 | 1441 |
| |
1442 |
| - | |
| 1442 | + | |
1443 | 1443 |
| |
1444 | 1444 |
| |
1445 | 1445 |
| |
|
0 commit comments
Comments
(0)