Re: Support json_errdetail in FRONTEND builds
От | Daniel Gustafsson |
---|---|
Тема | Re: Support json_errdetail in FRONTEND builds |
Дата | |
Msg-id | FF5BB399-9DFB-434B-8C18-FEEBC706EAA8@yesql.se обсуждение исходный текст |
Ответ на | Re: Support json_errdetail in FRONTEND builds (Michael Paquier <michael@paquier.xyz>) |
Ответы |
Re: Support json_errdetail in FRONTEND builds
|
Список | pgsql-hackers |
> On 14 Mar 2024, at 09:06, Michael Paquier <michael@paquier.xyz> wrote: > I think that it is cleaner to create the new API first, and then > rely on it, reversing the order of both patches I agree with this ordering. > (perhaps the extra destroyStringInfo in freeJsonLexContext() should > have been moved in 0001). I wouldn't worry about that, seems fine as is to me. > See the attached with few tweaks to 0001, previously 0002 @-@. > I'd still need to do a more serious lookup of 0002, previously 0001. A few small comments: - * +* Whitespace + /* don't allow destroys of read-only StringInfos */ + Assert(str->maxlen != 0); Considering that StringInfo.c don't own the memory here I think it's warranted to turn this assert into an elog() to avoid the risk of use-after-free bugs. + * The returned allocation is either static or owned by the JsonLexContext and + * should not be freed. The most important part of that comment is at the very end, to help readers I would reword this to just "The returned pointer should not be freed.", or at least put that part first. +#define token_error(lex, format) \ I'm not sure this buys much more than reduced LoC, the expansion isn't unreadable to the point that the format constraint encoded in the macro is worth it IMO. -- Daniel Gustafsson
В списке pgsql-hackers по дате отправления: