Thread: JSON/JSONB documentation, aggregate functions

JSON/JSONB documentation, aggregate functions

From
PG Doc comments form
Date:
The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/14/functions-json.html
Description:

Regarding the Json documentation (9.16.1: processing and creating JSON
data), I would like to suggest that the reference to
json_agg/jsonb_agg/json_object_agg/jsonb_object_agg (section 9.21) be made
more prominent. When looking through the list of json[b] processing
functions, it's really easy to miss the footnote mentioning the aggregate
functions. The list of functions in table 9.47 includes a lot of functions
that are *really*similar in purpose to the json aggregator functions, and
it's easy to assume that anything related to building JSON[B] objects *must*
be listed there. I just spent hours searching for a way to turn one column
of keys and one column of values into a JSONB object (without coercing all
numeric values to json strings), and I can't imagine I'm the only one.

Regards,
Alex Denman

Re: JSON/JSONB documentation, aggregate functions

From
Bruce Momjian
Date:
On Fri, Sep 16, 2022 at 08:08:04PM +0000, PG Doc comments form wrote:
> The following documentation comment has been logged on the website:
> 
> Page: https://www.postgresql.org/docs/14/functions-json.html
> Description:
> 
> Regarding the Json documentation (9.16.1: processing and creating JSON
> data), I would like to suggest that the reference to
> json_agg/jsonb_agg/json_object_agg/jsonb_object_agg (section 9.21) be made
> more prominent. When looking through the list of json[b] processing
> functions, it's really easy to miss the footnote mentioning the aggregate
> functions. The list of functions in table 9.47 includes a lot of functions
> that are *really*similar in purpose to the json aggregator functions, and
> it's easy to assume that anything related to building JSON[B] objects *must*
> be listed there. I just spent hours searching for a way to turn one column
> of keys and one column of values into a JSONB object (without coercing all
> numeric values to json strings), and I can't imagine I'm the only one.

I see your point --- that the aggregate sentence is at the end of the
section, after four massive tables.  The attached patch moves the
paragraph up to the end of the section's introductory paragraph.

-- 
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

  Indecision is a decision.  Inaction is an action.  Mark Batterson


Attachment

Re: JSON/JSONB documentation, aggregate functions

From
Bruce Momjian
Date:
On Tue, Oct 11, 2022 at 11:48:21AM -0400, Bruce Momjian wrote:
> On Fri, Sep 16, 2022 at 08:08:04PM +0000, PG Doc comments form wrote:
> > Regarding the Json documentation (9.16.1: processing and creating JSON
> > data), I would like to suggest that the reference to
> > json_agg/jsonb_agg/json_object_agg/jsonb_object_agg (section 9.21) be made
> > more prominent. When looking through the list of json[b] processing
> > functions, it's really easy to miss the footnote mentioning the aggregate
> > functions. The list of functions in table 9.47 includes a lot of functions
> > that are *really*similar in purpose to the json aggregator functions, and
> > it's easy to assume that anything related to building JSON[B] objects *must*
> > be listed there. I just spent hours searching for a way to turn one column
> > of keys and one column of values into a JSONB object (without coercing all
> > numeric values to json strings), and I can't imagine I'm the only one.
> 
> I see your point --- that the aggregate sentence is at the end of the
> section, after four massive tables.  The attached patch moves the
> paragraph up to the end of the section's introductory paragraph.

Patch applied back to PG 10, thanks.

-- 
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

  Indecision is a decision.  Inaction is an action.  Mark Batterson