diff options
author | Pavan Deolasee | 2016-10-27 15:02:55 +0000 |
---|---|---|
committer | Pavan Deolasee | 2016-10-27 15:02:55 +0000 |
commit | c52792488cd87e67e62ec61f5b56f461900353b4 (patch) | |
tree | 02b4a719f979659de8f73fce6c1ca65cef2e323f /contrib/xml2 | |
parent | 891e6be57e5580b54a9df9fd42cb9bd10d0e7b21 (diff) | |
parent | b5bce6c1ec6061c8a4f730d927e162db7e2ce365 (diff) |
Merge commit 'b5bce6c1ec6061c8a4f730d927e162db7e2ce365'
Diffstat (limited to 'contrib/xml2')
-rw-r--r-- | contrib/xml2/Makefile | 2 | ||||
-rw-r--r-- | contrib/xml2/xml2--1.0--1.1.sql | 18 | ||||
-rw-r--r-- | contrib/xml2/xml2--1.1.sql (renamed from contrib/xml2/xml2--1.0.sql) | 28 | ||||
-rw-r--r-- | contrib/xml2/xml2.control | 2 | ||||
-rw-r--r-- | contrib/xml2/xpath.c | 6 |
5 files changed, 37 insertions, 19 deletions
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 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 diff --git a/contrib/xml2/xpath.c b/contrib/xml2/xpath.c index 655c5322cd..ac28996867 100644 --- a/contrib/xml2/xpath.c +++ b/contrib/xml2/xpath.c @@ -553,8 +553,7 @@ xpath_table(PG_FUNCTION_ARGS) int numpaths; int ret; - int proc; - int i; + uint64 proc; int j; int rownr; /* For issuing multiple rows from one original * document */ @@ -664,7 +663,6 @@ xpath_table(PG_FUNCTION_ARGS) query_buf.data); proc = SPI_processed; - /* elog(DEBUG1,"xpath_table: SPI returned %d rows",proc); */ tuptable = SPI_tuptable; spi_tupdesc = tuptable->tupdesc; @@ -692,6 +690,8 @@ xpath_table(PG_FUNCTION_ARGS) PG_TRY(); { /* For each row i.e. document returned from SPI */ + uint64 i; + for (i = 0; i < proc; i++) { char *pkey; |