Commit 4d0e994
committed
Add support for partial TOAST decompression
When asked for a slice of a TOAST entry, decompress enough to return the
slice instead of decompressing the entire object.
For use cases where the slice is at, or near, the beginning of the entry,
this avoids a lot of unnecessary decompression work.
This changes the signature of pglz_decompress() by adding a boolean to
indicate if it's ok for the call to finish before consuming all of the
source or destination buffers.
Author: Paul Ramsey
Reviewed-By: Rafia Sabih, Darafei Praliaskouski, Regina Obe
Discussion: https://postgr.es/m/CACowWR07EDm7Y4m2kbhN_jnys%3DBBf9A6768RyQdKm_%3DNpkcaWg%40mail.gmail.com1 parent d50d172 commit 4d0e994
File tree
5 files changed
+70
-36
lines changed- src
- backend
- access
- heap
- transam
- utils/adt
- common
- include/common
5 files changed
+70
-36
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
| 78 | + | |
78 | 79 | | |
79 | 80 | | |
80 | 81 | | |
| |||
301 | 302 | | |
302 | 303 | | |
303 | 304 | | |
304 | | - | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
305 | 310 | | |
306 | 311 | | |
307 | 312 | | |
| |||
2272 | 2277 | | |
2273 | 2278 | | |
2274 | 2279 | | |
2275 | | - | |
| 2280 | + | |
| 2281 | + | |
| 2282 | + | |
| 2283 | + | |
| 2284 | + | |
| 2285 | + | |
| 2286 | + | |
| 2287 | + | |
| 2288 | + | |
| 2289 | + | |
| 2290 | + | |
| 2291 | + | |
| 2292 | + | |
| 2293 | + | |
| 2294 | + | |
| 2295 | + | |
| 2296 | + | |
| 2297 | + | |
| 2298 | + | |
| 2299 | + | |
| 2300 | + | |
| 2301 | + | |
| 2302 | + | |
| 2303 | + | |
| 2304 | + | |
| 2305 | + | |
| 2306 | + | |
| 2307 | + | |
| 2308 | + | |
2276 | 2309 | | |
2277 | 2310 | | |
| 2311 | + | |
2278 | 2312 | | |
2279 | 2313 | | |
2280 | 2314 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1425 | 1425 | | |
1426 | 1426 | | |
1427 | 1427 | | |
1428 | | - | |
| 1428 | + | |
1429 | 1429 | | |
1430 | 1430 | | |
1431 | 1431 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1894 | 1894 | | |
1895 | 1895 | | |
1896 | 1896 | | |
1897 | | - | |
| 1897 | + | |
1898 | 1898 | | |
1899 | 1899 | | |
1900 | 1900 | | |
| |||
5346 | 5346 | | |
5347 | 5347 | | |
5348 | 5348 | | |
5349 | | - | |
5350 | | - | |
5351 | | - | |
5352 | | - | |
5353 | | - | |
| 5349 | + | |
5354 | 5350 | | |
5355 | 5351 | | |
5356 | | - | |
5357 | | - | |
| 5352 | + | |
| 5353 | + | |
| 5354 | + | |
| 5355 | + | |
| 5356 | + | |
5358 | 5357 | | |
5359 | | - | |
| 5358 | + | |
| 5359 | + | |
| 5360 | + | |
| 5361 | + | |
| 5362 | + | |
| 5363 | + | |
5360 | 5364 | | |
5361 | 5365 | | |
5362 | 5366 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
| 32 | + | |
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
47 | 53 | | |
48 | 54 | | |
49 | 55 | | |
| |||
674 | 680 | | |
675 | 681 | | |
676 | 682 | | |
677 | | - | |
678 | | - | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
679 | 686 | | |
680 | 687 | | |
681 | 688 | | |
682 | 689 | | |
683 | | - | |
| 690 | + | |
684 | 691 | | |
685 | 692 | | |
686 | 693 | | |
| |||
701 | 708 | | |
702 | 709 | | |
703 | 710 | | |
704 | | - | |
| 711 | + | |
705 | 712 | | |
| 713 | + | |
706 | 714 | | |
707 | 715 | | |
708 | 716 | | |
| |||
721 | 729 | | |
722 | 730 | | |
723 | 731 | | |
724 | | - | |
725 | | - | |
726 | | - | |
727 | | - | |
728 | | - | |
729 | | - | |
730 | | - | |
731 | | - | |
732 | | - | |
733 | | - | |
734 | | - | |
735 | | - | |
736 | | - | |
737 | 732 | | |
738 | 733 | | |
739 | 734 | | |
740 | 735 | | |
741 | 736 | | |
742 | 737 | | |
| 738 | + | |
743 | 739 | | |
744 | 740 | | |
745 | 741 | | |
| |||
752 | 748 | | |
753 | 749 | | |
754 | 750 | | |
755 | | - | |
756 | | - | |
757 | | - | |
758 | 751 | | |
759 | 752 | | |
760 | 753 | | |
| |||
767 | 760 | | |
768 | 761 | | |
769 | 762 | | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
770 | 766 | | |
771 | | - | |
| 767 | + | |
772 | 768 | | |
773 | 769 | | |
774 | 770 | | |
775 | 771 | | |
776 | 772 | | |
777 | | - | |
| 773 | + | |
778 | 774 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
89 | | - | |
| 89 | + | |
90 | 90 | | |
91 | 91 | | |
0 commit comments