Mark consume_xids test functions VOLATILE and PARALLEL UNSAFE
authorHeikki Linnakangas <[email protected]>
Fri, 11 Oct 2024 08:09:09 +0000 (11:09 +0300)
committerHeikki Linnakangas <[email protected]>
Fri, 11 Oct 2024 08:09:09 +0000 (11:09 +0300)
Both functions advance the transaction ID, which modifies the system
state. Thus, they should be marked as VOLATILE.

Additionally, they call the AssignTransactionId function, which cannot
be invoked in parallel mode, so they should be marked as PARALLEL
UNSAFE.

Author: Yushi Ogiwara <[email protected]>
Discussion: https://www.postgresql.org/message-id/18f01e4fd46448f88c7a1363050a9955@oss.nttdata.com

src/test/modules/xid_wraparound/xid_wraparound--1.0.sql

index 51d25fc4c63436f3389c865d318e136e9f56f0dd..96356b4b97450aa909d8d4f6e1b6344a2f2d8273 100644 (file)
@@ -4,9 +4,9 @@
 \echo Use "CREATE EXTENSION xid_wraparound" to load this file. \quit
 
 CREATE FUNCTION consume_xids(nxids bigint)
-RETURNS xid8 IMMUTABLE PARALLEL SAFE STRICT
+RETURNS xid8 VOLATILE PARALLEL UNSAFE STRICT
 AS 'MODULE_PATHNAME' LANGUAGE C;
 
 CREATE FUNCTION consume_xids_until(targetxid xid8)
-RETURNS xid8 IMMUTABLE PARALLEL SAFE STRICT
+RETURNS xid8 VOLATILE PARALLEL UNSAFE STRICT
 AS 'MODULE_PATHNAME' LANGUAGE C;