Commit c203d6c
committed
Allow HOT updates for some expression indexes
If the value of an index expression is unchanged after UPDATE,
allow HOT updates where previously we disallowed them, giving
a significant performance boost in those cases.
Particularly useful for indexes such as JSON->>field where the
JSON value changes but the indexed value does not.
Submitted as "surjective indexes" patch, now enabled by use
of new "recheck_on_update" parameter.
Author: Konstantin Knizhnik
Reviewer: Simon Riggs, with much wordsmithing and some cleanup1 parent 1944cdc commit c203d6c
File tree
13 files changed
+395
-22
lines changed- doc/src/sgml/ref
- src
- backend
- access
- common
- heap
- catalog
- utils/cache
- bin/psql
- include
- access
- utils
- test/regress
- expected
- sql
13 files changed
+395
-22
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
309 | 309 | | |
310 | 310 | | |
311 | 311 | | |
312 | | - | |
313 | | - | |
| 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 | + | |
314 | 347 | | |
315 | 348 | | |
316 | 349 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
129 | 129 | | |
130 | 130 | | |
131 | 131 | | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
132 | 141 | | |
133 | 142 | | |
134 | 143 | | |
| |||
1310 | 1319 | | |
1311 | 1320 | | |
1312 | 1321 | | |
1313 | | - | |
| 1322 | + | |
1314 | 1323 | | |
1315 | 1324 | | |
1316 | 1325 | | |
| |||
1466 | 1475 | | |
1467 | 1476 | | |
1468 | 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 | + | |
1469 | 1512 | | |
1470 | 1513 | | |
1471 | 1514 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
| 59 | + | |
59 | 60 | | |
60 | 61 | | |
61 | 62 | | |
| |||
74 | 75 | | |
75 | 76 | | |
76 | 77 | | |
77 | | - | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
78 | 81 | | |
79 | 82 | | |
80 | 83 | | |
| |||
126 | 129 | | |
127 | 130 | | |
128 | 131 | | |
| 132 | + | |
129 | 133 | | |
130 | 134 | | |
131 | 135 | | |
| |||
3508 | 3512 | | |
3509 | 3513 | | |
3510 | 3514 | | |
| 3515 | + | |
3511 | 3516 | | |
3512 | 3517 | | |
3513 | 3518 | | |
| |||
3571 | 3576 | | |
3572 | 3577 | | |
3573 | 3578 | | |
3574 | | - | |
| 3579 | + | |
| 3580 | + | |
3575 | 3581 | | |
3576 | 3582 | | |
3577 | 3583 | | |
3578 | | - | |
3579 | | - | |
3580 | 3584 | | |
3581 | 3585 | | |
3582 | 3586 | | |
| |||
3596 | 3600 | | |
3597 | 3601 | | |
3598 | 3602 | | |
| 3603 | + | |
3599 | 3604 | | |
3600 | 3605 | | |
3601 | 3606 | | |
| |||
3894 | 3899 | | |
3895 | 3900 | | |
3896 | 3901 | | |
| 3902 | + | |
3897 | 3903 | | |
3898 | 3904 | | |
3899 | 3905 | | |
| |||
4201 | 4207 | | |
4202 | 4208 | | |
4203 | 4209 | | |
4204 | | - | |
4205 | | - | |
| 4210 | + | |
| 4211 | + | |
| 4212 | + | |
| 4213 | + | |
4206 | 4214 | | |
4207 | | - | |
| 4215 | + | |
| 4216 | + | |
| 4217 | + | |
| 4218 | + | |
| 4219 | + | |
4208 | 4220 | | |
| 4221 | + | |
4209 | 4222 | | |
4210 | 4223 | | |
4211 | 4224 | | |
| |||
4367 | 4380 | | |
4368 | 4381 | | |
4369 | 4382 | | |
| 4383 | + | |
4370 | 4384 | | |
4371 | 4385 | | |
4372 | 4386 | | |
| |||
4453 | 4467 | | |
4454 | 4468 | | |
4455 | 4469 | | |
| 4470 | + | |
| 4471 | + | |
| 4472 | + | |
| 4473 | + | |
| 4474 | + | |
| 4475 | + | |
| 4476 | + | |
| 4477 | + | |
| 4478 | + | |
| 4479 | + | |
| 4480 | + | |
| 4481 | + | |
| 4482 | + | |
| 4483 | + | |
| 4484 | + | |
| 4485 | + | |
| 4486 | + | |
| 4487 | + | |
| 4488 | + | |
| 4489 | + | |
| 4490 | + | |
| 4491 | + | |
| 4492 | + | |
| 4493 | + | |
| 4494 | + | |
| 4495 | + | |
| 4496 | + | |
| 4497 | + | |
| 4498 | + | |
| 4499 | + | |
| 4500 | + | |
| 4501 | + | |
| 4502 | + | |
| 4503 | + | |
| 4504 | + | |
| 4505 | + | |
| 4506 | + | |
| 4507 | + | |
| 4508 | + | |
| 4509 | + | |
| 4510 | + | |
| 4511 | + | |
| 4512 | + | |
| 4513 | + | |
| 4514 | + | |
| 4515 | + | |
| 4516 | + | |
| 4517 | + | |
| 4518 | + | |
| 4519 | + | |
| 4520 | + | |
| 4521 | + | |
| 4522 | + | |
| 4523 | + | |
| 4524 | + | |
| 4525 | + | |
| 4526 | + | |
| 4527 | + | |
| 4528 | + | |
| 4529 | + | |
| 4530 | + | |
| 4531 | + | |
| 4532 | + | |
| 4533 | + | |
| 4534 | + | |
| 4535 | + | |
| 4536 | + | |
| 4537 | + | |
| 4538 | + | |
| 4539 | + | |
| 4540 | + | |
| 4541 | + | |
| 4542 | + | |
| 4543 | + | |
| 4544 | + | |
| 4545 | + | |
| 4546 | + | |
4456 | 4547 | | |
4457 | 4548 | | |
4458 | 4549 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| 29 | + | |
29 | 30 | | |
30 | 31 | | |
31 | 32 | | |
| |||
3863 | 3864 | | |
3864 | 3865 | | |
3865 | 3866 | | |
3866 | | - | |
| 3867 | + | |
3867 | 3868 | | |
3868 | 3869 | | |
3869 | 3870 | | |
| |||
0 commit comments