From: | Andrey Borodin <x4mmm(at)yandex-team(dot)ru> |
---|---|
To: | Binguo Bao <djydewang(at)gmail(dot)com> |
Cc: | Simon Riggs <simon(at)2ndquadrant(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Optimize partial TOAST decompression |
Date: | 2019-06-29 13:48:02 |
Message-ID: | DFBA504A-0E2E-4E9C-8C69-A3C308982A2A@yandex-team.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi!
Please, do not use top-posting, i.e. reply style where you quote whole message under your response. It makes reading of archives terse.
> 24 июня 2019 г., в 7:53, Binguo Bao <djydewang(at)gmail(dot)com> написал(а):
>
>> This is not correct: L bytes of compressed data do not always can be decoded into at least L bytes of data. At worst we have one control byte per 8 bytes of literal bytes. This means at most we need (L*9 + 8) / 8 bytes with current pglz format.
>
> Good catch! I've corrected the related code in the patch.
> ...
> <0001-Optimize-partial-TOAST-decompression-2.patch>
I've took a look into the code.
I think we should extract function for computation of max_compressed_size and put it somewhere along with pglz code. Just in case something will change something about pglz so that they would not forget about compression algorithm assumption.
Also I suggest just using 64 bit computation to avoid overflows. And I think it worth to check if max_compressed_size is whole data and use min of (max_compressed_size, uncompressed_data_size).
Also you declared needsize and max_compressed_size too far from use. But this will be solved by function extraction anyway.
Thanks!
Best regards, Andrey Borodin.
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2019-06-29 13:58:42 | Re: TM format can mix encodings in to_char() |
Previous Message | Julien Rouhaud | 2019-06-29 13:28:11 | Re: Avoid full GIN index scan when possible |