On 2026-03-10 Tu 9:53 PM, jian he wrote:
On Tue, Mar 10, 2026 at 10:12 PM Andrew Dunstan <[email protected]> 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



Reply via email to