Thread

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Fix key size of PrivateRefCountHash.

  2. Make backend local tracking of buffer pins memory efficient.

  3. Remove RelationGetBufferWithBuffer(), which is horribly confused about

  1. Fix PrivateRefCount hash table key size

    Bertrand Drouvot <bertranddrouvot.pg@gmail.com> — 2025-12-02T14:43:25Z

    Hi hackers,
    
    While working on [1], I noticed that there is a type mismatch when computing
    the key size for the PrivateRefCount hash table. Indeed, the first
    PrivateRefCountEntry member type is Buffer (int), so the keysize should be
    sizeof(Buffer) and not sizeof(int32).
    
    PFA attached a patch to fix it.
    
    It has been kind of automatically detected while working on [1], so I'm pretty
    confident there are no other type mismatches for hash table key size.
    
    Note that this is exactly the kind of issue that the macro proposed in [1] would
    avoid.
    
    [1]: https://www.postgresql.org/message-id/flat/aS2b3LoUypW1/Gdz%40ip-10-97-1-34.eu-west-3.compute.internal
    
    Regards,
    
    -- 
    Bertrand Drouvot
    PostgreSQL Contributors Team
    RDS Open Source Databases
    Amazon Web Services: https://aws.amazon.com
    
  2. Re: Fix PrivateRefCount hash table key size

    Nathan Bossart <nathandbossart@gmail.com> — 2025-12-04T16:29:24Z

    On Tue, Dec 02, 2025 at 02:43:25PM +0000, Bertrand Drouvot wrote:
    > -	hash_ctl.keysize = sizeof(int32);
    > +	hash_ctl.keysize = sizeof(Buffer);
    >  	hash_ctl.entrysize = sizeof(PrivateRefCountEntry);
    
    LGTM.  Appears to be a minor oversight in commit 4b4b680c3d, but it's of no
    consequence because Buffer has been a signed 32-bit integer since commit
    bdadc9bf1c.  Will go commit this.
    
    -- 
    nathan