From 20f6c3a2a1eeadbf81c4c6cea35e831dc08ae06b Mon Sep 17 00:00:00 2001
From: Robert Haas <rhaas@postgresql.org>
Date: Tue, 14 Jun 2016 14:56:21 -0400
Subject: [PATCH] Update uuid-ossp extension for parallel query.

All functions provided by this extension are PARALLEL SAFE.

Andreas Karlsson
---
 contrib/uuid-ossp/Makefile                    |  2 +-
 contrib/uuid-ossp/uuid-ossp--1.0--1.1.sql     | 15 +++++++++++++
 ...{uuid-ossp--1.0.sql => uuid-ossp--1.1.sql} | 22 +++++++++----------
 contrib/uuid-ossp/uuid-ossp.control           |  2 +-
 4 files changed, 28 insertions(+), 13 deletions(-)
 create mode 100644 contrib/uuid-ossp/uuid-ossp--1.0--1.1.sql
 rename contrib/uuid-ossp/{uuid-ossp--1.0.sql => uuid-ossp--1.1.sql} (68%)

diff --git a/contrib/uuid-ossp/Makefile b/contrib/uuid-ossp/Makefile
index 93b9355a0ca..c52c583d648 100644
--- a/contrib/uuid-ossp/Makefile
+++ b/contrib/uuid-ossp/Makefile
@@ -4,7 +4,7 @@ MODULE_big = uuid-ossp
 OBJS = uuid-ossp.o $(UUID_EXTRA_OBJS) $(WIN32RES)
 
 EXTENSION = uuid-ossp
-DATA = uuid-ossp--1.0.sql uuid-ossp--unpackaged--1.0.sql
+DATA = uuid-ossp--1.1.sql uuid-ossp--1.0--1.1.sql uuid-ossp--unpackaged--1.0.sql
 PGFILEDESC = "uuid-ossp - UUID generation"
 
 REGRESS = uuid_ossp
diff --git a/contrib/uuid-ossp/uuid-ossp--1.0--1.1.sql b/contrib/uuid-ossp/uuid-ossp--1.0--1.1.sql
new file mode 100644
index 00000000000..d6b82e6221b
--- /dev/null
+++ b/contrib/uuid-ossp/uuid-ossp--1.0--1.1.sql
@@ -0,0 +1,15 @@
+/* contrib/uuid-ossp/uuid-ossp--1.0--1.1.sql */
+
+-- complain if script is sourced in psql, rather than via ALTER EXTENSION
+\echo Use "ALTER EXTENSION uuid-ossp UPDATE TO '1.1'" to load this file. \quit
+
+ALTER FUNCTION uuid_nil() PARALLEL SAFE;
+ALTER FUNCTION uuid_ns_dns() PARALLEL SAFE;
+ALTER FUNCTION uuid_ns_url() PARALLEL SAFE;
+ALTER FUNCTION uuid_ns_oid() PARALLEL SAFE;
+ALTER FUNCTION uuid_ns_x500() PARALLEL SAFE;
+ALTER FUNCTION uuid_generate_v1() PARALLEL SAFE;
+ALTER FUNCTION uuid_generate_v1mc() PARALLEL SAFE;
+ALTER FUNCTION uuid_generate_v3(uuid, text) PARALLEL SAFE;
+ALTER FUNCTION uuid_generate_v4() PARALLEL SAFE;
+ALTER FUNCTION uuid_generate_v5(uuid, text) PARALLEL SAFE;
diff --git a/contrib/uuid-ossp/uuid-ossp--1.0.sql b/contrib/uuid-ossp/uuid-ossp--1.1.sql
similarity index 68%
rename from contrib/uuid-ossp/uuid-ossp--1.0.sql
rename to contrib/uuid-ossp/uuid-ossp--1.1.sql
index 042732065b3..c9cefd73608 100644
--- a/contrib/uuid-ossp/uuid-ossp--1.0.sql
+++ b/contrib/uuid-ossp/uuid-ossp--1.1.sql
@@ -1,4 +1,4 @@
-/* contrib/uuid-ossp/uuid-ossp--1.0.sql */
+/* contrib/uuid-ossp/uuid-ossp--1.1.sql */
 
 -- complain if script is sourced in psql, rather than via CREATE EXTENSION
 \echo Use '''CREATE EXTENSION "uuid-ossp"''' to load this file. \quit
@@ -6,49 +6,49 @@
 CREATE FUNCTION uuid_nil()
 RETURNS uuid
 AS 'MODULE_PATHNAME', 'uuid_nil'
-IMMUTABLE STRICT LANGUAGE C;
+IMMUTABLE STRICT LANGUAGE C PARALLEL SAFE;
 
 CREATE FUNCTION uuid_ns_dns()
 RETURNS uuid
 AS 'MODULE_PATHNAME', 'uuid_ns_dns'
-IMMUTABLE STRICT LANGUAGE C;
+IMMUTABLE STRICT LANGUAGE C PARALLEL SAFE;
 
 CREATE FUNCTION uuid_ns_url()
 RETURNS uuid
 AS 'MODULE_PATHNAME', 'uuid_ns_url'
-IMMUTABLE STRICT LANGUAGE C;
+IMMUTABLE STRICT LANGUAGE C PARALLEL SAFE;
 
 CREATE FUNCTION uuid_ns_oid()
 RETURNS uuid
 AS 'MODULE_PATHNAME', 'uuid_ns_oid'
-IMMUTABLE STRICT LANGUAGE C;
+IMMUTABLE STRICT LANGUAGE C PARALLEL SAFE;
 
 CREATE FUNCTION uuid_ns_x500()
 RETURNS uuid
 AS 'MODULE_PATHNAME', 'uuid_ns_x500'
-IMMUTABLE STRICT LANGUAGE C;
+IMMUTABLE STRICT LANGUAGE C PARALLEL SAFE;
 
 CREATE FUNCTION uuid_generate_v1()
 RETURNS uuid
 AS 'MODULE_PATHNAME', 'uuid_generate_v1'
-VOLATILE STRICT LANGUAGE C;
+VOLATILE STRICT LANGUAGE C PARALLEL SAFE;
 
 CREATE FUNCTION uuid_generate_v1mc()
 RETURNS uuid
 AS 'MODULE_PATHNAME', 'uuid_generate_v1mc'
-VOLATILE STRICT LANGUAGE C;
+VOLATILE STRICT LANGUAGE C PARALLEL SAFE;
 
 CREATE FUNCTION uuid_generate_v3(namespace uuid, name text)
 RETURNS uuid
 AS 'MODULE_PATHNAME', 'uuid_generate_v3'
-IMMUTABLE STRICT LANGUAGE C;
+IMMUTABLE STRICT LANGUAGE C PARALLEL SAFE;
 
 CREATE FUNCTION uuid_generate_v4()
 RETURNS uuid
 AS 'MODULE_PATHNAME', 'uuid_generate_v4'
-VOLATILE STRICT LANGUAGE C;
+VOLATILE STRICT LANGUAGE C PARALLEL SAFE;
 
 CREATE FUNCTION uuid_generate_v5(namespace uuid, name text)
 RETURNS uuid
 AS 'MODULE_PATHNAME', 'uuid_generate_v5'
-IMMUTABLE STRICT LANGUAGE C;
+IMMUTABLE STRICT LANGUAGE C PARALLEL SAFE;
diff --git a/contrib/uuid-ossp/uuid-ossp.control b/contrib/uuid-ossp/uuid-ossp.control
index f52ae99d41b..657476c182f 100644
--- a/contrib/uuid-ossp/uuid-ossp.control
+++ b/contrib/uuid-ossp/uuid-ossp.control
@@ -1,5 +1,5 @@
 # uuid-ossp extension
 comment = 'generate universally unique identifiers (UUIDs)'
-default_version = '1.0'
+default_version = '1.1'
 module_pathname = '$libdir/uuid-ossp'
 relocatable = true
-- 
GitLab