Refactor code into new JsonbValueAsText, and use it more

Alvaro Herrera <alvherre@alvh.no-ip.org>

Commit: abb014a63106653f2872a3b1662a79ab80d4dcbb
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: 2019-09-20T22:30:16Z
Releases: 13.0
Refactor code into new JsonbValueAsText, and use it more

jsonb_object_field_text and jsonb_array_element_text both contained
identical copies of this code, so extract that into new routine
JsonbValueAsText.  This can also be used in other places, to measurable
performance benefit: the jsonb_each() and jsonb_array_elements()
functions can use it for outputting text forms instead of their less
efficient current implementation (because we no longer need to build
intermediate a jsonb representation of each value).

Author: Nikita Glukhov
Discussion: https://postgr.es/m/7c417f90-f95f-247e-ba63-d95e39c0ad14@postgrespro.ru

Files

PathChange+/−
src/backend/utils/adt/jsonfuncs.c modified +61 −112

Discussion