Re: [PATCH] clarify palloc comment on quote_literal_cstr
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: Steve Chavez <steve@supabase.io>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2025-04-06T21:49:02Z
Lists: pgsql-hackers
On Sun, Apr 06, 2025 at 12:37:24PM -0500, Steve Chavez wrote: > I found the numbers in `quote_literal_cstr` palloc quite magical. So I've > added a comment clarifying what they mean. The change is small: > > /* We make a worst-case result area; wasting a little space is OK */ > - result = palloc(len * 2 + 3 + 1); > + result = palloc( > + (len * 2) /* worst-case doubling for every character if > each one is a quote */ > + + 3 /* two outer quotes + possibly 'E' if needed */ > + + 1 /* null terminator */ > + ); Agreed that this is a good idea to have a better documentation here if someone decides to tweak this area in the future, rather than have them guess the numbers. Looking at what quote_literal_internal() does, it seems to me that you are right based on ESCAPE_STRING_SYNTAX, SQL_STR_DOUBLE(), and the extra backslashes added to the destination buffer. -- Michael
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Clarify comment for worst-case allocation in quote_literal_cstr()
- c36eda259130 18.0 landed