Re: finish TODOs in to_json_is_immutable, to_jsonb_is_immutable also add tests on it
Andrew Dunstan <andrew@dunslane.net>
From: Andrew Dunstan <andrew@dunslane.net>
To: jian he <jian.universality@gmail.com>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2026-03-17T15:32:02Z
Lists: pgsql-hackers
On 2026-03-10 Tu 9:53 PM, jian he wrote: > On Tue, Mar 10, 2026 at 10:12 PM Andrew Dunstan <andrew@dunslane.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". > > Thanks. Pushed. cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com
Commits
-
make immutability tests in to_json and to_jsonb complete
- ecd9288624a1 19 (unreleased) landed
-
Include error location in errors from ComputeIndexAttrs().
- ba75f717526c 19 (unreleased) cited
-
SQL/JSON: add standard JSON constructor functions
- 7081ac46ace8 16.0 cited