pgsql: Fix handling of nested JSON objects in json_populate_recordset a
От | Tom Lane |
---|---|
Тема | pgsql: Fix handling of nested JSON objects in json_populate_recordset a |
Дата | |
Msg-id | E1Wzeje-00066V-8p@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix handling of nested JSON objects in json_populate_recordset and friends. populate_recordset_object_start() improperly created a new hash table (overwriting the link to the existing one) if called at nest levels greater than one. This resulted in previous fields not appearing in the final output, as reported by Matti Hameister in bug #10728. In 9.4 the problem also affects json_to_recordset. This perhaps missed detection earlier because the default behavior is to throw an error for nested objects: you have to pass use_json_as_text = true to see the problem. In addition, fix query-lifespan leakage of the hashtable created by json_populate_record(). This is pretty much the same problem recently fixed in dblink: creating an intended-to-be-temporary context underneath the executor's per-tuple context isn't enough to make it go away at the end of the tuple cycle, because MemoryContextReset is not MemoryContextResetAndDeleteChildren. Michael Paquier and Tom Lane Branch ------ REL9_4_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/a331512dec25807c4c93e3d537ac7734ee901641 Modified Files -------------- src/backend/utils/adt/jsonfuncs.c | 28 ++++++++++++++++++++++------ src/test/regress/expected/json.out | 15 +++++++++++++++ src/test/regress/expected/json_1.out | 15 +++++++++++++++ src/test/regress/sql/json.sql | 6 ++++++ 4 files changed, 58 insertions(+), 6 deletions(-)
В списке pgsql-committers по дате отправления: