Refactor code into new JsonbValueAsText, and use it more
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 20 Sep 2019 21:34:31 +0000 (18:34 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 20 Sep 2019 22:30:16 +0000 (19:30 -0300)
commitabb014a63106653f2872a3b1662a79ab80d4dcbb
treebea9c5d5d20225233a6f05015b2ade1d1656b474
parente56cad84d542a8cc2056390a9c651118cfa6c89c
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
src/backend/utils/adt/jsonfuncs.c