]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix the volatility setting of json{b}_strip_nulls
authorAndrew Dunstan <andrew@dunslane.net>
Tue, 17 Feb 2026 20:43:32 +0000 (15:43 -0500)
committerAndrew Dunstan <andrew@dunslane.net>
Wed, 18 Feb 2026 15:31:03 +0000 (10:31 -0500)
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 <lucio.chiessi@trustly.com>
Discussion: https://postgr.es/m/19409-e16cd2605e59a4af@postgresql.org

src/backend/catalog/system_functions.sql

index 566f308e4439de4ee78b27df439a1c2a3c63aab6..29696b84b3535a5c593f0f7c352e590b140380bb 100644 (file)
@@ -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