Re: Compressed TOAST Slicing

Paul Ramsey <pramsey@cleverelephant.ca>

From: Paul Ramsey <pramsey@cleverelephant.ca>
To: Andres Freund <andres@anarazel.de>
Cc: Michael Paquier <michael@paquier.xyz>, Regina Obe <r@pcorp.us>, pgsql-hackers@lists.postgresql.org
Date: 2019-03-12T18:08:15Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Add support for partial TOAST decompression

  2. Remove remaining hard-wired OID references in the initial catalog data.

  3. Rephrase references to "time qualification".


> On Mar 12, 2019, at 9:45 AM, Paul Ramsey <pramsey@cleverelephant.ca> wrote:
> 
> 
> 
>> On Mar 12, 2019, at 9:13 AM, Andres Freund <andres@anarazel.de> wrote:
>> 
>> On 2019-03-12 14:42:14 +0900, Michael Paquier 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).
>> 
>> I don't think that should stop us from breaking the API. You've got to
>> do quite low level stuff to need pglz directly, in which case such an
>> API change should be the least of your problems between major versions.
> 
> I was going to say that the function is only used twice in the code base, but I see it’s now used four times. So maybe leave the old signature in place and add the new one for my purposes after all. Though with only four internal calls, I am guessing Michael is more concerned about external users than with internal ones?

So…
- two signatures?
- old signature but reduced error checking?
- elephant?

P