Commit 3d79013
committed
Make ALTER SEQUENCE, including RESTART, fully transactional.
Previously the changes to the "data" part of the sequence, i.e. the
one containing the current value, were not transactional, whereas the
definition, including minimum and maximum value were. That leads to
odd behaviour if a schema change is rolled back, with the potential
that out-of-bound sequence values can be returned.
To avoid the issue create a new relfilenode fork whenever ALTER
SEQUENCE is executed, similar to how TRUNCATE ... RESTART IDENTITY
already is already handled.
This commit also makes ALTER SEQUENCE RESTART transactional, as it
seems to be too confusing to have some forms of ALTER SEQUENCE behave
transactionally, some forms not. This way setval() and nextval() are
not transactional, but DDL is, which seems to make sense.
This commit also rolls back parts of the changes made in 3d092fe
and f8dc198 as they're now not needed anymore.
Author: Andres Freund
Discussion: https://postgr.es/m/20170522154227.nvafbsm62sjpbxvd@alap3.anarazel.de
Backpatch: Bug is in master/v10 only1 parent e9a3c04 commit 3d79013
File tree
4 files changed
+65
-122
lines changed- doc/src/sgml/ref
- src
- backend/commands
- test/isolation
- expected
- specs
4 files changed
+65
-122
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
171 | 171 | | |
172 | 172 | | |
173 | 173 | | |
174 | | - | |
| 174 | + | |
175 | 175 | | |
176 | 176 | | |
177 | 177 | | |
| |||
182 | 182 | | |
183 | 183 | | |
184 | 184 | | |
185 | | - | |
186 | | - | |
187 | | - | |
188 | | - | |
189 | | - | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
190 | 190 | | |
191 | 191 | | |
192 | 192 | | |
| |||
307 | 307 | | |
308 | 308 | | |
309 | 309 | | |
310 | | - | |
311 | | - | |
| 310 | + | |
312 | 311 | | |
313 | 312 | | |
314 | 313 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
98 | 98 | | |
99 | 99 | | |
100 | 100 | | |
101 | | - | |
102 | 101 | | |
103 | 102 | | |
104 | 103 | | |
105 | | - | |
106 | 104 | | |
107 | 105 | | |
108 | 106 | | |
| |||
117 | 115 | | |
118 | 116 | | |
119 | 117 | | |
120 | | - | |
121 | 118 | | |
122 | 119 | | |
123 | 120 | | |
| |||
156 | 153 | | |
157 | 154 | | |
158 | 155 | | |
159 | | - | |
| 156 | + | |
160 | 157 | | |
161 | 158 | | |
162 | 159 | | |
| |||
417 | 414 | | |
418 | 415 | | |
419 | 416 | | |
420 | | - | |
| 417 | + | |
421 | 418 | | |
422 | | - | |
423 | | - | |
424 | | - | |
| 419 | + | |
425 | 420 | | |
426 | 421 | | |
427 | 422 | | |
428 | | - | |
| 423 | + | |
| 424 | + | |
429 | 425 | | |
430 | 426 | | |
431 | 427 | | |
432 | | - | |
| 428 | + | |
433 | 429 | | |
434 | 430 | | |
435 | 431 | | |
| |||
447 | 443 | | |
448 | 444 | | |
449 | 445 | | |
450 | | - | |
451 | | - | |
452 | | - | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
453 | 449 | | |
454 | 450 | | |
455 | 451 | | |
456 | | - | |
| 452 | + | |
457 | 453 | | |
458 | 454 | | |
459 | | - | |
| 455 | + | |
460 | 456 | | |
461 | | - | |
462 | | - | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
463 | 462 | | |
464 | 463 | | |
465 | | - | |
| 464 | + | |
| 465 | + | |
466 | 466 | | |
467 | 467 | | |
468 | 468 | | |
| |||
472 | 472 | | |
473 | 473 | | |
474 | 474 | | |
475 | | - | |
476 | | - | |
477 | | - | |
478 | | - | |
479 | | - | |
480 | | - | |
481 | | - | |
482 | | - | |
483 | | - | |
484 | | - | |
485 | | - | |
486 | | - | |
487 | | - | |
488 | | - | |
489 | | - | |
490 | | - | |
491 | | - | |
492 | | - | |
493 | | - | |
494 | | - | |
495 | | - | |
496 | | - | |
497 | | - | |
498 | | - | |
499 | | - | |
500 | | - | |
501 | | - | |
502 | | - | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
503 | 483 | | |
504 | | - | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
505 | 488 | | |
506 | 489 | | |
507 | 490 | | |
| |||
511 | 494 | | |
512 | 495 | | |
513 | 496 | | |
514 | | - | |
515 | | - | |
516 | | - | |
| 497 | + | |
517 | 498 | | |
| 499 | + | |
518 | 500 | | |
519 | 501 | | |
520 | 502 | | |
| |||
1219 | 1201 | | |
1220 | 1202 | | |
1221 | 1203 | | |
1222 | | - | |
1223 | | - | |
1224 | | - | |
1225 | | - | |
1226 | | - | |
1227 | | - | |
1228 | | - | |
1229 | | - | |
1230 | | - | |
1231 | | - | |
1232 | | - | |
1233 | | - | |
1234 | | - | |
1235 | | - | |
1236 | | - | |
1237 | | - | |
1238 | | - | |
1239 | | - | |
1240 | | - | |
1241 | | - | |
1242 | | - | |
1243 | | - | |
1244 | | - | |
1245 | | - | |
1246 | 1204 | | |
1247 | 1205 | | |
1248 | 1206 | | |
| |||
1258 | 1216 | | |
1259 | 1217 | | |
1260 | 1218 | | |
1261 | | - | |
1262 | 1219 | | |
1263 | 1220 | | |
1264 | 1221 | | |
| |||
1378 | 1335 | | |
1379 | 1336 | | |
1380 | 1337 | | |
1381 | | - | |
1382 | | - | |
1383 | 1338 | | |
1384 | 1339 | | |
1385 | 1340 | | |
| |||
1420 | 1375 | | |
1421 | 1376 | | |
1422 | 1377 | | |
1423 | | - | |
1424 | 1378 | | |
1425 | 1379 | | |
1426 | 1380 | | |
1427 | 1381 | | |
1428 | | - | |
1429 | 1382 | | |
1430 | 1383 | | |
1431 | 1384 | | |
1432 | 1385 | | |
1433 | 1386 | | |
1434 | 1387 | | |
1435 | | - | |
1436 | 1388 | | |
1437 | 1389 | | |
1438 | 1390 | | |
| |||
1442 | 1394 | | |
1443 | 1395 | | |
1444 | 1396 | | |
1445 | | - | |
1446 | 1397 | | |
1447 | 1398 | | |
1448 | 1399 | | |
1449 | 1400 | | |
1450 | 1401 | | |
1451 | 1402 | | |
1452 | | - | |
1453 | 1403 | | |
1454 | 1404 | | |
1455 | 1405 | | |
1456 | 1406 | | |
1457 | 1407 | | |
1458 | 1408 | | |
1459 | | - | |
1460 | 1409 | | |
1461 | 1410 | | |
1462 | 1411 | | |
1463 | 1412 | | |
1464 | 1413 | | |
1465 | 1414 | | |
1466 | | - | |
1467 | 1415 | | |
1468 | 1416 | | |
1469 | 1417 | | |
| |||
1480 | 1428 | | |
1481 | 1429 | | |
1482 | 1430 | | |
1483 | | - | |
1484 | 1431 | | |
1485 | 1432 | | |
1486 | 1433 | | |
| |||
1502 | 1449 | | |
1503 | 1450 | | |
1504 | 1451 | | |
1505 | | - | |
1506 | 1452 | | |
1507 | 1453 | | |
1508 | 1454 | | |
| |||
1519 | 1465 | | |
1520 | 1466 | | |
1521 | 1467 | | |
1522 | | - | |
1523 | 1468 | | |
1524 | 1469 | | |
1525 | 1470 | | |
| |||
1555 | 1500 | | |
1556 | 1501 | | |
1557 | 1502 | | |
1558 | | - | |
1559 | 1503 | | |
1560 | 1504 | | |
1561 | 1505 | | |
1562 | 1506 | | |
1563 | 1507 | | |
1564 | 1508 | | |
1565 | 1509 | | |
1566 | | - | |
1567 | 1510 | | |
1568 | 1511 | | |
1569 | 1512 | | |
| |||
1638 | 1581 | | |
1639 | 1582 | | |
1640 | 1583 | | |
1641 | | - | |
1642 | 1584 | | |
1643 | 1585 | | |
1644 | 1586 | | |
| |||
1654 | 1596 | | |
1655 | 1597 | | |
1656 | 1598 | | |
1657 | | - | |
1658 | 1599 | | |
1659 | 1600 | | |
1660 | 1601 | | |
| |||
0 commit comments