forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commitbb437f9
committed
Add TID Range Scans to support efficient scanning ranges of TIDs
This adds a new executor node named TID Range Scan. The query plannerwill generate paths for TID Range scans when quals are discovered on baserelations which search for ranges on the table's ctid column. Theseranges may be open at either end. For example, WHERE ctid >= '(10,0)';will return all tuples on page 10 and over.To support this, two new optional callback functions have been added totable AM. scan_set_tidrange is used to set the scan range to just thegiven range of TIDs. scan_getnextslot_tidrange fetches the next tuplein the given range.For AMs were scanning ranges of TIDs would not make sense, these functionscan be set to NULL in the TableAmRoutine. The query planner won'tgenerate TID Range Scan Paths in that case.Author: Edmund Horner, David RowleyReviewed-by: David Rowley, Tomas Vondra, Tom Lane, Andres Freund, Zhihong YuDiscussion:https://postgr.es/m/CAMyN-kB-nFTkF=VA_JPwFNo08S0d-Yk0F741S2B7LDmYAi8eyA@mail.gmail.com1 parentf4adc41 commitbb437f9
File tree
36 files changed
+1654
-22
lines changed- src
- backend
- access/heap
- commands
- executor
- nodes
- optimizer
- path
- plan
- util
- storage/page
- include
- access
- catalog
- executor
- nodes
- optimizer
- storage
- test/regress
- expected
- sql
36 files changed
+1654
-22
lines changedLines changed: 147 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1391 | 1391 |
| |
1392 | 1392 |
| |
1393 | 1393 |
| |
| 1394 | + | |
| 1395 | + | |
| 1396 | + | |
| 1397 | + | |
| 1398 | + | |
| 1399 | + | |
| 1400 | + | |
| 1401 | + | |
| 1402 | + | |
| 1403 | + | |
| 1404 | + | |
| 1405 | + | |
| 1406 | + | |
| 1407 | + | |
| 1408 | + | |
| 1409 | + | |
| 1410 | + | |
| 1411 | + | |
| 1412 | + | |
| 1413 | + | |
| 1414 | + | |
| 1415 | + | |
| 1416 | + | |
| 1417 | + | |
| 1418 | + | |
| 1419 | + | |
| 1420 | + | |
| 1421 | + | |
| 1422 | + | |
| 1423 | + | |
| 1424 | + | |
| 1425 | + | |
| 1426 | + | |
| 1427 | + | |
| 1428 | + | |
| 1429 | + | |
| 1430 | + | |
| 1431 | + | |
| 1432 | + | |
| 1433 | + | |
| 1434 | + | |
| 1435 | + | |
| 1436 | + | |
| 1437 | + | |
| 1438 | + | |
| 1439 | + | |
| 1440 | + | |
| 1441 | + | |
| 1442 | + | |
| 1443 | + | |
| 1444 | + | |
| 1445 | + | |
| 1446 | + | |
| 1447 | + | |
| 1448 | + | |
| 1449 | + | |
| 1450 | + | |
| 1451 | + | |
| 1452 | + | |
| 1453 | + | |
| 1454 | + | |
| 1455 | + | |
| 1456 | + | |
| 1457 | + | |
| 1458 | + | |
| 1459 | + | |
| 1460 | + | |
| 1461 | + | |
| 1462 | + | |
| 1463 | + | |
| 1464 | + | |
| 1465 | + | |
| 1466 | + | |
| 1467 | + | |
| 1468 | + | |
| 1469 | + | |
| 1470 | + | |
| 1471 | + | |
| 1472 | + | |
| 1473 | + | |
| 1474 | + | |
| 1475 | + | |
| 1476 | + | |
| 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 | + | |
| 1512 | + | |
| 1513 | + | |
| 1514 | + | |
| 1515 | + | |
| 1516 | + | |
| 1517 | + | |
| 1518 | + | |
| 1519 | + | |
| 1520 | + | |
| 1521 | + | |
| 1522 | + | |
| 1523 | + | |
| 1524 | + | |
| 1525 | + | |
| 1526 | + | |
| 1527 | + | |
| 1528 | + | |
| 1529 | + | |
| 1530 | + | |
| 1531 | + | |
| 1532 | + | |
| 1533 | + | |
| 1534 | + | |
| 1535 | + | |
| 1536 | + | |
| 1537 | + | |
| 1538 | + | |
| 1539 | + | |
| 1540 | + | |
1394 | 1541 |
| |
1395 | 1542 |
| |
1396 | 1543 |
| |
|
Lines changed: 3 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2542 | 2542 |
| |
2543 | 2543 |
| |
2544 | 2544 |
| |
| 2545 | + | |
| 2546 | + | |
| 2547 | + | |
2545 | 2548 |
| |
2546 | 2549 |
| |
2547 | 2550 |
| |
|
Lines changed: 23 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1057 | 1057 |
| |
1058 | 1058 |
| |
1059 | 1059 |
| |
| 1060 | + | |
1060 | 1061 |
| |
1061 | 1062 |
| |
1062 | 1063 |
| |
| |||
1223 | 1224 |
| |
1224 | 1225 |
| |
1225 | 1226 |
| |
| 1227 | + | |
| 1228 | + | |
| 1229 | + | |
1226 | 1230 |
| |
1227 | 1231 |
| |
1228 | 1232 |
| |
| |||
1417 | 1421 |
| |
1418 | 1422 |
| |
1419 | 1423 |
| |
| 1424 | + | |
1420 | 1425 |
| |
1421 | 1426 |
| |
1422 | 1427 |
| |
| |||
1871 | 1876 |
| |
1872 | 1877 |
| |
1873 | 1878 |
| |
| 1879 | + | |
| 1880 | + | |
| 1881 | + | |
| 1882 | + | |
| 1883 | + | |
| 1884 | + | |
| 1885 | + | |
| 1886 | + | |
| 1887 | + | |
| 1888 | + | |
| 1889 | + | |
| 1890 | + | |
| 1891 | + | |
| 1892 | + | |
| 1893 | + | |
| 1894 | + | |
| 1895 | + | |
1874 | 1896 |
| |
1875 | 1897 |
| |
1876 | 1898 |
| |
| |||
3558 | 3580 |
| |
3559 | 3581 |
| |
3560 | 3582 |
| |
| 3583 | + | |
3561 | 3584 |
| |
3562 | 3585 |
| |
3563 | 3586 |
| |
|
Lines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
67 | 67 |
| |
68 | 68 |
| |
69 | 69 |
| |
| 70 | + | |
70 | 71 |
| |
71 | 72 |
| |
72 | 73 |
| |
|
Lines changed: 6 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
51 | 51 |
| |
52 | 52 |
| |
53 | 53 |
| |
| 54 | + | |
54 | 55 |
| |
55 | 56 |
| |
56 | 57 |
| |
| |||
197 | 198 |
| |
198 | 199 |
| |
199 | 200 |
| |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
200 | 205 |
| |
201 | 206 |
| |
202 | 207 |
| |
| |||
562 | 567 |
| |
563 | 568 |
| |
564 | 569 |
| |
| 570 | + | |
565 | 571 |
| |
566 | 572 |
| |
567 | 573 |
| |
|
Lines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
336 | 336 |
| |
337 | 337 |
| |
338 | 338 |
| |
| 339 | + | |
339 | 340 |
| |
340 | 341 |
| |
341 | 342 |
| |
|
Lines changed: 10 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
109 | 109 |
| |
110 | 110 |
| |
111 | 111 |
| |
| 112 | + | |
112 | 113 |
| |
113 | 114 |
| |
114 | 115 |
| |
| |||
238 | 239 |
| |
239 | 240 |
| |
240 | 241 |
| |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
241 | 247 |
| |
242 | 248 |
| |
243 | 249 |
| |
| |||
637 | 643 |
| |
638 | 644 |
| |
639 | 645 |
| |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
640 | 650 |
| |
641 | 651 |
| |
642 | 652 |
| |
|
0 commit comments
Comments
(0)