mirror of
https://github.com/postgres/postgres.git
synced 2025-07-23 03:21:12 +03:00
Clarify comment for worst-case allocation in quote_literal_cstr()
palloc() is invoked with a specific formula for its allocation size in quote_literal_cstr(). This wastes some memory, but the size is large enough to cover even the worst-case scenarios. No explanations were given about the reasons behind these numbers. This commit adds more documentation about all that. Author: Steve Chavez <steve@supabase.io> Discussion: https://postgr.es/m/CAGRrpzZ9bToRWS+fAnjxDJrxwZN1QcJ-y1Pn2yg=Hst6rydLtw@mail.gmail.com
This commit is contained in:
@ -108,7 +108,12 @@ quote_literal_cstr(const char *rawstr)
|
||||
|
||||
len = strlen(rawstr);
|
||||
/* We make a worst-case result area; wasting a little space is OK */
|
||||
result = palloc(len * 2 + 3 + 1);
|
||||
result = palloc(
|
||||
(len * 2) /* doubling for every character if each one is
|
||||
* a quote */
|
||||
+ 3 /* two outer quotes + possibly 'E' if needed */
|
||||
+ 1 /* null terminator */
|
||||
);
|
||||
|
||||
newlen = quote_literal_internal(result, rawstr, len);
|
||||
result[newlen] = '\0';
|
||||
|
Reference in New Issue
Block a user