| From: | jian he <jian(dot)universality(at)gmail(dot)com> |
|---|---|
| To: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
| Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: finish TODOs in to_json_is_immutable, to_jsonb_is_immutable also add tests on it |
| Date: | 2026-03-11 01:53:36 |
| Message-ID: | CACJufxEuiv-t4Rna-GuCSqqjb5b10onRJ4Mu2imkt=Yv6N5pKg@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Tue, Mar 10, 2026 at 10:12 PM Andrew Dunstan <andrew(at)dunslane(dot)net> wrote:
>
> OK, here's a v7.
>
> . added a break in the loop if we found something mutable
>
> . added test for JSON generated columns (was present for JSONB
> expression indexes but missing for JSON).
>
> . added test block demonstrating that range_int (subtype=int) and
> multirange_int are now correctly treated as immutable, allowing
> expression indexes via json_array()
> and json_object()
>
V7 looks good to me.
one minor issue:
+-- JSON_OBJECTAGG, JSON_ARRAYAGG is aggregate function, can not be
used in index
+create index xx on test_mutability(json_objectagg(a: b absent on null
with unique keys returning jsonb));
+ERROR: aggregate functions are not allowed in index expressions
+LINE 1: create index xx on test_mutability(json_objectagg(a: b absen...
+ ^
+ERROR: aggregate functions are not allowed in index expressions
This error case was never exercised in regression tests, so adding it
here should be fine.
"can not" should be "cannot".
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Xuneng Zhou | 2026-03-11 02:13:02 | Re: Streamify more code paths |
| Previous Message | Xuneng Zhou | 2026-03-11 01:37:57 | Re: Streamify more code paths |