Commit 13e74531 authored by Robert Haas's avatar Robert Haas

Update xml2 extension for parallel query.

All functions provided by this extension are PARALLEL SAFE.

Andreas Karlsson
parent 20f6c3a2
...@@ -4,7 +4,7 @@ MODULE_big = pgxml ...@@ -4,7 +4,7 @@ MODULE_big = pgxml
OBJS = xpath.o xslt_proc.o $(WIN32RES) OBJS = xpath.o xslt_proc.o $(WIN32RES)
EXTENSION = xml2 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" PGFILEDESC = "xml2 - XPath querying and XSLT"
REGRESS = xml2 REGRESS = xml2
......
/* 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;
/* contrib/xml2/xml2--1.0.sql */ /* contrib/xml2/xml2--1.1.sql */
-- complain if script is sourced in psql, rather than via CREATE EXTENSION -- complain if script is sourced in psql, rather than via CREATE EXTENSION
\echo Use "CREATE EXTENSION xml2" to load this file. \quit \echo Use "CREATE EXTENSION xml2" to load this file. \quit
...@@ -8,66 +8,66 @@ ...@@ -8,66 +8,66 @@
-- deprecated old name for xml_is_well_formed -- deprecated old name for xml_is_well_formed
CREATE FUNCTION xml_valid(text) RETURNS bool CREATE FUNCTION xml_valid(text) RETURNS bool
AS 'xml_is_well_formed' AS 'xml_is_well_formed'
LANGUAGE INTERNAL STRICT STABLE; LANGUAGE INTERNAL STRICT STABLE PARALLEL SAFE;
CREATE FUNCTION xml_encode_special_chars(text) RETURNS text CREATE FUNCTION xml_encode_special_chars(text) RETURNS text
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
CREATE FUNCTION xpath_string(text,text) RETURNS text CREATE FUNCTION xpath_string(text,text) RETURNS text
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
CREATE FUNCTION xpath_nodeset(text,text,text,text) RETURNS text CREATE FUNCTION xpath_nodeset(text,text,text,text) RETURNS text
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
CREATE FUNCTION xpath_number(text,text) RETURNS float4 CREATE FUNCTION xpath_number(text,text) RETURNS float4
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
CREATE FUNCTION xpath_bool(text,text) RETURNS boolean CREATE FUNCTION xpath_bool(text,text) RETURNS boolean
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
-- List function -- List function
CREATE FUNCTION xpath_list(text,text,text) RETURNS text CREATE FUNCTION xpath_list(text,text,text) RETURNS text
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
CREATE FUNCTION xpath_list(text,text) RETURNS text CREATE FUNCTION xpath_list(text,text) RETURNS text
AS 'SELECT xpath_list($1,$2,'','')' AS 'SELECT xpath_list($1,$2,'','')'
LANGUAGE SQL STRICT IMMUTABLE; LANGUAGE SQL STRICT IMMUTABLE PARALLEL SAFE;
-- Wrapper functions for nodeset where no tags needed -- Wrapper functions for nodeset where no tags needed
CREATE FUNCTION xpath_nodeset(text,text) CREATE FUNCTION xpath_nodeset(text,text)
RETURNS text RETURNS text
AS 'SELECT xpath_nodeset($1,$2,'''','''')' AS 'SELECT xpath_nodeset($1,$2,'''','''')'
LANGUAGE SQL STRICT IMMUTABLE; LANGUAGE SQL STRICT IMMUTABLE PARALLEL SAFE;
CREATE FUNCTION xpath_nodeset(text,text,text) CREATE FUNCTION xpath_nodeset(text,text,text)
RETURNS text RETURNS text
AS 'SELECT xpath_nodeset($1,$2,'''',$3)' AS 'SELECT xpath_nodeset($1,$2,'''',$3)'
LANGUAGE SQL STRICT IMMUTABLE; LANGUAGE SQL STRICT IMMUTABLE PARALLEL SAFE;
-- Table function -- Table function
CREATE FUNCTION xpath_table(text,text,text,text,text) CREATE FUNCTION xpath_table(text,text,text,text,text)
RETURNS setof record RETURNS setof record
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT STABLE; LANGUAGE C STRICT STABLE PARALLEL SAFE;
-- XSLT functions -- XSLT functions
CREATE FUNCTION xslt_process(text,text,text) CREATE FUNCTION xslt_process(text,text,text)
RETURNS text RETURNS text
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT VOLATILE; LANGUAGE C STRICT VOLATILE PARALLEL SAFE;
-- the function checks for the correct argument count -- the function checks for the correct argument count
CREATE FUNCTION xslt_process(text,text) CREATE FUNCTION xslt_process(text,text)
RETURNS text RETURNS text
AS 'MODULE_PATHNAME' AS 'MODULE_PATHNAME'
LANGUAGE C STRICT IMMUTABLE; LANGUAGE C STRICT IMMUTABLE PARALLEL SAFE;
# xml2 extension # xml2 extension
comment = 'XPath querying and XSLT' comment = 'XPath querying and XSLT'
default_version = '1.0' default_version = '1.1'
module_pathname = '$libdir/pgxml' module_pathname = '$libdir/pgxml'
# non-relocatable because xml2--unpackaged--1.0.sql needs to use @extschema@ # non-relocatable because xml2--unpackaged--1.0.sql needs to use @extschema@
relocatable = false relocatable = false
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment