summaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/jsonfuncs.c
AgeCommit message (Collapse)Author
2014-06-24Fix handling of nested JSON objects in json_populate_recordset and friends.Tom Lane
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
2014-02-03In json code, clean up temp memory contexts after processing.Andrew Dunstan
Craig Ringer.
2013-08-09Message punctuation and pluralization fixesPeter Eisentraut
2013-08-07Message style improvementsPeter Eisentraut
2013-07-20Clean up new JSON API typedefsPeter Eisentraut
The new JSON API uses a bit of an unusual typedef scheme, where for example OkeysState is a pointer to okeysState. And that's not applied consistently either. Change that to the more usual PostgreSQL style where struct typedefs are upper case, and use pointers explicitly.
2013-05-29pgindent run for release 9.3Bruce Momjian
This is the first run of the Perl-based pgindent script. Also update pgindent instructions.
2013-04-15Correct handling of NULL arguments in json funcs.Andrew Dunstan
Per gripe from Tom Lane.
2013-04-04Fix off by one error in JSON extract path code.Andrew Dunstan
Bug report by David Wheeler, diagnosis assistance from Tom Lane.
2013-03-29Add new JSON processing functions and parser API.Andrew Dunstan
The JSON parser is converted into a recursive descent parser, and exposed for use by other modules such as extensions. The API provides hooks for all the significant parser event such as the beginning and end of objects and arrays, and providing functions to handle these hooks allows for fairly simple construction of a wide variety of JSON processing functions. A set of new basic processing functions and operators is also added, which use this API, including operations to extract array elements, object fields, get the length of arrays and the set of keys of a field, deconstruct an object into a set of key/value pairs, and create records from JSON objects and arrays of objects. Catalog version bumped. Andrew Dunstan, with some documentation assistance from Merlin Moncure.