From: | Paul Ramsey <pramsey(at)cleverelephant(dot)ca> |
---|---|
To: | Michael Paquier <michael(at)paquier(dot)xyz> |
Cc: | Regina Obe <r(at)pcorp(dot)us>, pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: Compressed TOAST Slicing |
Date: | 2019-03-12 14:40:43 |
Message-ID: | 83F90FE9-23C7-4819-8640-715B18D6ED33@cleverelephant.ca |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
> On Mar 11, 2019, at 10:42 PM, Michael Paquier <michael(at)paquier(dot)xyz> wrote:
>
> On Mon, Mar 11, 2019 at 08:38:56PM +0000, Regina Obe wrote:
>> I tested on windows mingw64 (as of a week ago) and confirmed the
>> patch applies cleanly and significantly faster for left, substr
>> tests than head.
>
> int32
> pglz_decompress(const char *source, int32 slen, char *dest,
> - int32 rawsize)
> + int32 rawsize, bool is_slice)
> The performance improvements are nice, but breaking a published API is
> less nice particularly since some work has been done to make pglz more
> plugabble (see 60838df9, guess how wrote that). Could it be possible
> to rework this part please? It's been some time since I touched this
> code, but it would be really nice if we don't have an extra parameter,
> and just not bypass the sanity checks at the end. Using a parameter
> to bypass those checks may cause problems for future callers of it.
The sanity check is just that both buffers are completely read they reach their respective ends. With a partial buffer on one side, that check just will definitionally not happen when slicing (it’s not possible to know a priori what location in the compressed buffer corresponds to a location in the uncompressed one). I can ensure the old API still holds for pglz_decompress() and add a new pglz_decompress_slice() that takes the parameter, is that sufficient?
P.
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2019-03-12 14:44:47 | Re: using index or check in ALTER TABLE SET NOT NULL |
Previous Message | Amit Langote | 2019-03-12 14:33:57 | Re: speeding up planning with partitions |