Commit 3819e05
committed
Read toast chunks in ascending order, looping if required
Toast chunks might be stored out-of-order in the table. We previously
ignored that and hoped for the best, but our toast.sql test actually
exhibits the problem on pre-14 servers where the 5th chunk of the last
test is small enough to fit into the first disk block.
Fix by looping over the table until all chunks have been read. A smarter
solution would require either toast index lookups or caching the chunks.
Close #20.
Author: Christoph Berg <[email protected]>
Debugging-By: Svetlana Derevyanko <[email protected]>1 parent 549383a commit 3819e05
File tree
5 files changed
+86
-40
lines changed- expected
5 files changed
+86
-40
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1364 | 1364 | | |
1365 | 1365 | | |
1366 | 1366 | | |
1367 | | - | |
| 1367 | + | |
| 1368 | + | |
| 1369 | + | |
1368 | 1370 | | |
1369 | 1371 | | |
1370 | 1372 | | |
1371 | 1373 | | |
1372 | 1374 | | |
1373 | 1375 | | |
1374 | 1376 | | |
| 1377 | + | |
| 1378 | + | |
1375 | 1379 | | |
1376 | 1380 | | |
| 1381 | + | |
1377 | 1382 | | |
1378 | 1383 | | |
1379 | 1384 | | |
| |||
1383 | 1388 | | |
1384 | 1389 | | |
1385 | 1390 | | |
1386 | | - | |
| 1391 | + | |
1387 | 1392 | | |
1388 | 1393 | | |
1389 | 1394 | | |
| |||
1399 | 1404 | | |
1400 | 1405 | | |
1401 | 1406 | | |
| 1407 | + | |
1402 | 1408 | | |
1403 | 1409 | | |
1404 | 1410 | | |
1405 | 1411 | | |
1406 | | - | |
| 1412 | + | |
1407 | 1413 | | |
1408 | | - | |
| 1414 | + | |
| 1415 | + | |
| 1416 | + | |
| 1417 | + | |
| 1418 | + | |
| 1419 | + | |
1409 | 1420 | | |
1410 | | - | |
| 1421 | + | |
1411 | 1422 | | |
1412 | | - | |
1413 | 1423 | | |
1414 | 1424 | | |
1415 | | - | |
1416 | | - | |
1417 | | - | |
1418 | | - | |
1419 | | - | |
1420 | | - | |
1421 | | - | |
1422 | | - | |
1423 | | - | |
1424 | | - | |
1425 | | - | |
1426 | | - | |
1427 | | - | |
1428 | | - | |
1429 | | - | |
1430 | | - | |
1431 | | - | |
1432 | | - | |
| 1425 | + | |
| 1426 | + | |
| 1427 | + | |
| 1428 | + | |
| 1429 | + | |
| 1430 | + | |
| 1431 | + | |
| 1432 | + | |
| 1433 | + | |
| 1434 | + | |
| 1435 | + | |
| 1436 | + | |
| 1437 | + | |
1433 | 1438 | | |
1434 | | - | |
| 1439 | + | |
| 1440 | + | |
| 1441 | + | |
1435 | 1442 | | |
1436 | 1443 | | |
1437 | | - | |
1438 | | - | |
| 1444 | + | |
| 1445 | + | |
1439 | 1446 | | |
1440 | 1447 | | |
1441 | | - | |
| 1448 | + | |
| 1449 | + | |
| 1450 | + | |
| 1451 | + | |
| 1452 | + | |
| 1453 | + | |
| 1454 | + | |
| 1455 | + | |
| 1456 | + | |
| 1457 | + | |
| 1458 | + | |
| 1459 | + | |
| 1460 | + | |
| 1461 | + | |
| 1462 | + | |
| 1463 | + | |
1442 | 1464 | | |
1443 | 1465 | | |
1444 | 1466 | | |
| |||
1516 | 1538 | | |
1517 | 1539 | | |
1518 | 1540 | | |
| 1541 | + | |
1519 | 1542 | | |
1520 | 1543 | | |
1521 | 1544 | | |
| |||
1561 | 1584 | | |
1562 | 1585 | | |
1563 | 1586 | | |
| 1587 | + | |
| 1588 | + | |
| 1589 | + | |
| 1590 | + | |
1564 | 1591 | | |
1565 | 1592 | | |
1566 | 1593 | | |
| |||
1587 | 1614 | | |
1588 | 1615 | | |
1589 | 1616 | | |
| 1617 | + | |
| 1618 | + | |
| 1619 | + | |
1590 | 1620 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
81 | | - | |
| 81 | + | |
82 | 82 | | |
83 | 83 | | |
84 | 84 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
123 | 123 | | |
124 | 124 | | |
125 | 125 | | |
| 126 | + | |
126 | 127 | | |
127 | 128 | | |
128 | 129 | | |
| |||
137 | 138 | | |
138 | 139 | | |
139 | 140 | | |
| 141 | + | |
140 | 142 | | |
141 | 143 | | |
142 | 144 | | |
| |||
1386 | 1388 | | |
1387 | 1389 | | |
1388 | 1390 | | |
| 1391 | + | |
1389 | 1392 | | |
1390 | 1393 | | |
1391 | 1394 | | |
| |||
1557 | 1560 | | |
1558 | 1561 | | |
1559 | 1562 | | |
1560 | | - | |
| 1563 | + | |
1561 | 1564 | | |
1562 | 1565 | | |
1563 | 1566 | | |
1564 | | - | |
1565 | | - | |
1566 | | - | |
| 1567 | + | |
| 1568 | + | |
| 1569 | + | |
| 1570 | + | |
| 1571 | + | |
| 1572 | + | |
| 1573 | + | |
| 1574 | + | |
| 1575 | + | |
1567 | 1576 | | |
1568 | 1577 | | |
1569 | 1578 | | |
| |||
2096 | 2105 | | |
2097 | 2106 | | |
2098 | 2107 | | |
| 2108 | + | |
2099 | 2109 | | |
2100 | 2110 | | |
2101 | 2111 | | |
| |||
2132 | 2142 | | |
2133 | 2143 | | |
2134 | 2144 | | |
| 2145 | + | |
2135 | 2146 | | |
2136 | 2147 | | |
2137 | 2148 | | |
| |||
2372 | 2383 | | |
2373 | 2384 | | |
2374 | 2385 | | |
| 2386 | + | |
2375 | 2387 | | |
2376 | | - | |
| 2388 | + | |
| 2389 | + | |
2377 | 2390 | | |
2378 | 2391 | | |
2379 | 2392 | | |
2380 | | - | |
2381 | 2393 | | |
2382 | 2394 | | |
2383 | 2395 | | |
| |||
2419 | 2431 | | |
2420 | 2432 | | |
2421 | 2433 | | |
2422 | | - | |
| 2434 | + | |
2423 | 2435 | | |
2424 | 2436 | | |
2425 | 2437 | | |
| |||
2445 | 2457 | | |
2446 | 2458 | | |
2447 | 2459 | | |
| 2460 | + | |
2448 | 2461 | | |
2449 | 2462 | | |
2450 | | - | |
| 2463 | + | |
2451 | 2464 | | |
2452 | 2465 | | |
2453 | 2466 | | |
| |||
2468 | 2481 | | |
2469 | 2482 | | |
2470 | 2483 | | |
2471 | | - | |
| 2484 | + | |
2472 | 2485 | | |
2473 | 2486 | | |
2474 | 2487 | | |
| |||
2583 | 2596 | | |
2584 | 2597 | | |
2585 | 2598 | | |
| 2599 | + | |
2586 | 2600 | | |
2587 | | - | |
| 2601 | + | |
| 2602 | + | |
2588 | 2603 | | |
2589 | 2604 | | |
2590 | 2605 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
154 | 154 | | |
155 | 155 | | |
156 | 156 | | |
157 | | - | |
| 157 | + | |
0 commit comments