Re: SQL:2023 JSON simplified accessor support
От | Chao Li |
---|---|
Тема | Re: SQL:2023 JSON simplified accessor support |
Дата | |
Msg-id | C367C0EB-3506-46B8-8EF8-7BDC5604FE0E@gmail.com обсуждение исходный текст |
Ответ на | Re: SQL:2023 JSON simplified accessor support (Chao Li <li.evan.chao@gmail.com>) |
Список | pgsql-hackers |
On Aug 27, 2025, at 15:26, Chao Li <li.evan.chao@gmail.com> wrote:diff --git a/src/include/parser/parse_node.h b/src/include/parser/parse_node.hindex f7d07c84542..58a4b9df157 100644--- a/src/include/parser/parse_node.h+++ b/src/include/parser/parse_node.h@@ -361,7 +361,7 @@ extern SubscriptingRef *transformContainerSubscripts(ParseState *pstate,Node *containerBase,Oid containerType,int32 containerTypMod,- List *indirection,+ List **indirection,bool isAssignment);Here we change “indirection” from * to **, I guess the reason is to indicate if the indirection list is fully processed. In case of fully processed, set it to NULL, then caller gets NULL via **.As “indirection” is of type “List *”, can we just set “indirection->length = 0”? I checked pg_list.h, there is not a function or macro to cleanup a list (free elements and reset length to 0). There is a “list_free(List *list)”, but it will free “list” itself as well. Maybe we can add a new function, say “list_reset(List *list)” or “list_cleanup(List *list)”. This way will keep the function interface unchanged, and less changes would be involved.
After revisiting the changes, I take back this comment. Given the nature that List are always used in pointer form, my comment would just make things much more complicated.
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/
HighGo Software Co., Ltd.
https://www.highgo.com/
В списке pgsql-hackers по дате отправления: