Make json_populate_record and friends operate recursively
With this change array fields are populated from json(b) arrays, and composite fields are populated from json(b) objects. Along the way, some significant code refactoring is done to remove redundancy in the way to populate_record[_set] and to_record[_set] functions operate, and some significant efficiency gains are made by caching tuple descriptors. Nikita Glukhov, edited some by me. Reviewed by Aleksander Alekseev and Tom Lane.
Showing
- doc/src/sgml/func.sgml 8 additions, 8 deletionsdoc/src/sgml/func.sgml
- src/backend/utils/adt/jsonfuncs.c 1162 additions, 538 deletionssrc/backend/utils/adt/jsonfuncs.c
- src/test/regress/expected/json.out 461 additions, 5 deletionssrc/test/regress/expected/json.out
- src/test/regress/expected/jsonb.out 473 additions, 5 deletionssrc/test/regress/expected/jsonb.out
- src/test/regress/sql/json.sql 154 additions, 2 deletionssrc/test/regress/sql/json.sql
- src/test/regress/sql/jsonb.sql 154 additions, 2 deletionssrc/test/regress/sql/jsonb.sql
Loading
Please register or sign in to comment