From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | jian he <jian(dot)universality(at)gmail(dot)com> |
Cc: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: Making jsonb_agg() faster |
Date: | 2025-08-22 19:11:34 |
Message-ID: | 2129790.1755889894@sss.pgh.pa.us |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
I realized that my patch-of-record in this thread is out of date
in the wake of 2a600a93c, because it had some code catering to the
possibility that timestamp[tz] is pass-by-reference. While it
still compiled and worked, we don't want to commit it like that.
v2-0001 takes care of that, and also adopts your suggestion in [1]
about not using two calls of pushJsonbValueScalar where one would do.
I also did a bit more micro-optimization in appendKey, appendValue,
appendElement to avoid redundant copying, because perf testing showed
that appendElement is still a hot-spot for jsonb_agg. Patches 0002
and 0003 are unchanged.
I did not adopt your changes in [2], because they didn't really
seem like improvements to me.
regards, tom lane
[1] https://www.postgresql.org/message-id/CACJufxGFzbRDnyG-%3DWZ3RgkVUwOZexUobGDrA3n5bj8MxrAZvQ%40mail.gmail.com
[2] https://www.postgresql.org/message-id/CACJufxGHLYtvOAB7uA59C9Lz%2BrDPta5Egiii-B5opsZbw6eDDQ%40mail.gmail.com
Attachment | Content-Type | Size |
---|---|---|
v2-0001-Revise-APIs-for-pushJsonbValue-and-associated-rou.patch | text/x-diff | 72.7 KB |
v2-0002-Remove-fundamentally-redundant-processing-in-json.patch | text/x-diff | 14.2 KB |
v2-0003-Micro-optimize-datatype-conversions-in-datum_to_j.patch | text/x-diff | 6.6 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Sami Imseih | 2025-08-22 19:21:55 | GetNamedLWLockTranche crashes on Windows in normal backend |
Previous Message | Nathan Bossart | 2025-08-22 16:14:24 | Re: Don't treat virtual generated columns as missing statistics in vacuumdb --missing-stats-only |