From 2f6ee7b389c2b570ac55eb25273872b729d397c8 Mon Sep 17 00:00:00 2001 From: Andrew Dunstan Date: Tue, 17 Feb 2026 15:43:32 -0500 Subject: [PATCH] Fix the volatility setting of json{b}_strip_nulls Commit 4603903d294 unfortunately reset the volatility of these functions to STABLE whereas they had previously been set to IMMUTABLE. We can't force a catalog update in the stable release, although a pg_update would probably do the trick. A simpler fix, though, for affected users is probably a simple catalog surgery along the lines of: UPDATE pg_proc SET provolatile = 'i' WHERE oid in (3261,3262); Applied to 18 only. In master we are planning to get rid of the separate redeclarations for defaults in system_functions.sql. Bug: #19409 Reported-By: Lucio Chiessi Discussion: https://postgr.es/m/19409-e16cd2605e59a4af@postgresql.org --- src/backend/catalog/system_functions.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/catalog/system_functions.sql b/src/backend/catalog/system_functions.sql index 566f308e443..29696b84b35 100644 --- a/src/backend/catalog/system_functions.sql +++ b/src/backend/catalog/system_functions.sql @@ -611,14 +611,14 @@ CREATE OR REPLACE FUNCTION jsonb_strip_nulls(target jsonb, strip_in_arrays boolean DEFAULT false) RETURNS jsonb LANGUAGE INTERNAL -STRICT STABLE PARALLEL SAFE +STRICT IMMUTABLE PARALLEL SAFE AS 'jsonb_strip_nulls'; CREATE OR REPLACE FUNCTION json_strip_nulls(target json, strip_in_arrays boolean DEFAULT false) RETURNS json LANGUAGE INTERNAL -STRICT STABLE PARALLEL SAFE +STRICT IMMUTABLE PARALLEL SAFE AS 'json_strip_nulls'; -- default normalization form is NFC, per SQL standard