Re: Potential ABI breakage in upcoming minor releases

Aleksander Alekseev <aleksander@timescale.com>

From: Aleksander Alekseev <aleksander@timescale.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Cc: Ants Aasma <ants.aasma@cybertec.at>, Noah Misch <noah@leadboat.com>, Pavan Deolasee <pavan.deolasee@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>
Date: 2024-11-14T15:53:01Z
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. Undo unintentional ABI break in struct ResultRelInfo.

  2. For inplace update durability, make heap_update() callers wait.

  3. Fix btmarkpos/btrestrpos array key wraparound bug.

  4. Fix calculation of which GENERATED columns need to be updated.

Hi,

> To add to this list, Christoph Berg confirmed that timescaledb test suite crashes. [1]

Yes changing ResultRelInfo most definetely breaks TimescaleDB. The
extension uses makeNode(ResultRelInfo) and this can't end-up well:

```
static inline Node *
newNode(size_t size, NodeTag tag)
{
    Node       *result;

    Assert(size >= sizeof(Node));    /* need the tag, at least */
    result = (Node *) palloc0(size);
    result->type = tag;

    return result;
}

#define makeNode(_type_)        ((_type_ *) newNode(sizeof(_type_),T_##_type_))
```

-- 
Best regards,
Aleksander Alekseev