From 13e7453135189a32f9f12c4bebd0cd97a0a5d908 Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Tue, 14 Jun 2016 15:49:32 -0400 Subject: [PATCH] Update xml2 extension for parallel query. All functions provided by this extension are PARALLEL SAFE. Andreas Karlsson --- contrib/xml2/Makefile | 2 +- contrib/xml2/xml2--1.0--1.1.sql | 18 ++++++++++++ contrib/xml2/{xml2--1.0.sql => xml2--1.1.sql} | 28 +++++++++---------- contrib/xml2/xml2.control | 2 +- 4 files changed, 34 insertions(+), 16 deletions(-) create mode 100644 contrib/xml2/xml2--1.0--1.1.sql rename contrib/xml2/{xml2--1.0.sql => xml2--1.1.sql} (70%) diff --git a/contrib/xml2/Makefile b/contrib/xml2/Makefile index 2f7a08cff1..68fd9c42af 100644 --- a/contrib/xml2/Makefile +++ b/contrib/xml2/Makefile @@ -4,7 +4,7 @@ MODULE_big = pgxml OBJS = xpath.o xslt_proc.o $(WIN32RES) EXTENSION = xml2 -DATA = xml2--1.0.sql xml2--unpackaged--1.0.sql +DATA = xml2--1.1.sql xml2--1.0--1.1.sql xml2--unpackaged--1.0.sql PGFILEDESC = "xml2 - XPath querying and XSLT" REGRESS = xml2 diff --git a/contrib/xml2/xml2--1.0--1.1.sql b/contrib/xml2/xml2--1.0--1.1.sql new file mode 100644 index 0000000000..350afb0138 --- /dev/null +++ b/contrib/xml2/xml2--1.0--1.1.sql @@ -0,0 +1,18 @@ +/* contrib/xml2/xml2--1.0--1.1.sql */ + +-- complain if script is sourced in psql, rather than via ALTER EXTENSION +\echo Use "ALTER EXTENSION xml2 UPDATE TO '1.1'" to load this file. \quit + +ALTER FUNCTION xml_valid(text) PARALLEL SAFE; +ALTER FUNCTION xml_encode_special_chars(text) PARALLEL SAFE; +ALTER FUNCTION xpath_string(text, text) PARALLEL SAFE; +ALTER FUNCTION xpath_nodeset(text, text, text, text) PARALLEL SAFE; +ALTER FUNCTION xpath_number(text, text) PARALLEL SAFE; +ALTER FUNCTION xpath_bool(text, text) PARALLEL SAFE; +ALTER FUNCTION xpath_list(text, text, text) PARALLEL SAFE; +ALTER FUNCTION xpath_list(text, text) PARALLEL SAFE; +ALTER FUNCTION xpath_nodeset(text, text) PARALLEL SAFE; +ALTER FUNCTION xpath_nodeset(text, text, text) PARALLEL SAFE; +ALTER FUNCTION xpath_table(text, text, text, text, text) PARALLEL SAFE; +ALTER FUNCTION xslt_process(text, text, text) PARALLEL SAFE; +ALTER FUNCTION xslt_process(text, text) PARALLEL SAFE; diff --git a/contrib/xml2/xml2--1.0.sql b/contrib/xml2/xml2--1.1.sql similarity index 70% rename from contrib/xml2/xml2--1.0.sql rename to contrib/xml2/xml2--1.1.sql index 0b6afc63d0..671372cb27 100644 --- a/contrib/xml2/xml2--1.0.sql +++ b/contrib/xml2/xml2--1.1.sql @@ -1,4 +1,4 @@ -/* contrib/xml2/xml2--1.0.sql */ +/* contrib/xml2/xml2--1.1.sql */ -- complain if script is sourced in psql, rather than via CREATE EXTENSION \echo Use "CREATE EXTENSION xml2" to load this file. \quit @@ -8,66 +8,66 @@ -- deprecated old name for xml_is_well_formed CREATE FUNCTION xml_valid(text) RETURNS bool AS 'xml_is_well_formed' -LANGUAGE INTERNAL STRICT STABLE; +LANGUAGE INTERNAL STRICT STABLE PARALLEL SAFE; CREATE FUNCTION xml_encode_special_chars(text) RETURNS text AS 'MODULE_PATHNAME' -LANGUAGE C STRICT IMMUTABLE; +LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE; CREATE FUNCTION xpath_string(text,text) RETURNS text AS 'MODULE_PATHNAME' -LANGUAGE C STRICT IMMUTABLE; +LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE; CREATE FUNCTION xpath_nodeset(text,text,text,text) RETURNS text AS 'MODULE_PATHNAME' -LANGUAGE C STRICT IMMUTABLE; +LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE; CREATE FUNCTION xpath_number(text,text) RETURNS float4 AS 'MODULE_PATHNAME' -LANGUAGE C STRICT IMMUTABLE; +LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE; CREATE FUNCTION xpath_bool(text,text) RETURNS boolean AS 'MODULE_PATHNAME' -LANGUAGE C STRICT IMMUTABLE; +LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE; -- List function CREATE FUNCTION xpath_list(text,text,text) RETURNS text AS 'MODULE_PATHNAME' -LANGUAGE C STRICT IMMUTABLE; +LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE; CREATE FUNCTION xpath_list(text,text) RETURNS text AS 'SELECT xpath_list($1,$2,'','')' -LANGUAGE SQL STRICT IMMUTABLE; +LANGUAGE SQL STRICT IMMUTABLE PARALLEL SAFE; -- Wrapper functions for nodeset where no tags needed CREATE FUNCTION xpath_nodeset(text,text) RETURNS text AS 'SELECT xpath_nodeset($1,$2,'''','''')' -LANGUAGE SQL STRICT IMMUTABLE; +LANGUAGE SQL STRICT IMMUTABLE PARALLEL SAFE; CREATE FUNCTION xpath_nodeset(text,text,text) RETURNS text AS 'SELECT xpath_nodeset($1,$2,'''',$3)' -LANGUAGE SQL STRICT IMMUTABLE; +LANGUAGE SQL STRICT IMMUTABLE PARALLEL SAFE; -- Table function CREATE FUNCTION xpath_table(text,text,text,text,text) RETURNS setof record AS 'MODULE_PATHNAME' -LANGUAGE C STRICT STABLE; +LANGUAGE C STRICT STABLE PARALLEL SAFE; -- XSLT functions CREATE FUNCTION xslt_process(text,text,text) RETURNS text AS 'MODULE_PATHNAME' -LANGUAGE C STRICT VOLATILE; +LANGUAGE C STRICT VOLATILE PARALLEL SAFE; -- the function checks for the correct argument count CREATE FUNCTION xslt_process(text,text) RETURNS text AS 'MODULE_PATHNAME' -LANGUAGE C STRICT IMMUTABLE; +LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE; diff --git a/contrib/xml2/xml2.control b/contrib/xml2/xml2.control index 51de678d5f..91e6547f01 100644 --- a/contrib/xml2/xml2.control +++ b/contrib/xml2/xml2.control @@ -1,6 +1,6 @@ # xml2 extension comment = 'XPath querying and XSLT' -default_version = '1.0' +default_version = '1.1' module_pathname = '$libdir/pgxml' # non-relocatable because xml2--unpackaged--1.0.sql needs to use @extschema@ relocatable = false