Re: [PATCHES] contrib/xml2 function name change and minor bitrot fix

2004-03-08 Thread Bruce Momjian

Patch applied by Neil (thanks).  Thanks.

---


John Gray wrote:
 Hi,
 
 I've done a bit of testing now and it seems that both sets of XML
 functions will coexist in the same database (they both load OK and I can
 use functions from both without any apparent problem).
 
 I have changed the name of the new parse function to xml_valid and fixed
 a reference to SortMem which meant that the code as supplied would work
 against 7.3 and 7.4 but wouldn't work in CVS. Oops! Patch is attached.
 
 Regards
 
 John
 
 

[ Attachment, skipping... ]

 
 ---(end of broadcast)---
 TIP 7: don't forget to increase your free space map settings

-- 
  Bruce Momjian|  http://candle.pha.pa.us
  [EMAIL PROTECTED]   |  (610) 359-1001
  +  If your life is a hard drive, |  13 Roberts Road
  +  Christ can be your backup.|  Newtown Square, Pennsylvania 19073

---(end of broadcast)---
TIP 8: explain analyze is your friend


[PATCHES] contrib/xml2 function name change and minor bitrot fix

2004-03-07 Thread John Gray
Hi,

I've done a bit of testing now and it seems that both sets of XML
functions will coexist in the same database (they both load OK and I can
use functions from both without any apparent problem).

I have changed the name of the new parse function to xml_valid and fixed
a reference to SortMem which meant that the code as supplied would work
against 7.3 and 7.4 but wouldn't work in CVS. Oops! Patch is attached.

Regards

John


? config.log
? contrib/xml-patch2004-03-07
? src/test/regress/sql/out1
Index: contrib/xml2/README.pgxml
===
RCS file: /projects/cvsroot/pgsql-server/contrib/xml2/README.pgxml,v
retrieving revision 1.1
diff -c -r1.1 README.pgxml
*** contrib/xml2/README.pgxml   5 Mar 2004 03:57:58 -   1.1
--- contrib/xml2/README.pgxml   7 Mar 2004 18:38:57 -
***
*** 27,33 
  
  The first set of functions are straightforward XML parsing and XPath queries:
  
! pgxml_parse(document) RETURNS bool
  
  This parses the document text in its parameter and returns true if the
  document is well-formed XML.
--- 27,33 
  
  The first set of functions are straightforward XML parsing and XPath queries:
  
! xml_valid(document) RETURNS bool
  
  This parses the document text in its parameter and returns true if the
  document is well-formed XML.
Index: contrib/xml2/pgxml.sql.in
===
RCS file: /projects/cvsroot/pgsql-server/contrib/xml2/pgxml.sql.in,v
retrieving revision 1.1
diff -c -r1.1 pgxml.sql.in
*** contrib/xml2/pgxml.sql.in   5 Mar 2004 03:57:58 -   1.1
--- contrib/xml2/pgxml.sql.in   7 Mar 2004 18:38:57 -
***
*** 1,6 
  --SQL for XML parser
  
! CREATE OR REPLACE FUNCTION pgxml_parse(text) RETURNS bool
AS 'MODULE_PATHNAME' LANGUAGE 'c' WITH (isStrict);
  
  CREATE OR REPLACE FUNCTION xpath_string(text,text) RETURNS text
--- 1,6 
  --SQL for XML parser
  
! CREATE OR REPLACE FUNCTION xml_valid(text) RETURNS bool
AS 'MODULE_PATHNAME' LANGUAGE 'c' WITH (isStrict);
  
  CREATE OR REPLACE FUNCTION xpath_string(text,text) RETURNS text
Index: contrib/xml2/xpath.c
===
RCS file: /projects/cvsroot/pgsql-server/contrib/xml2/xpath.c,v
retrieving revision 1.1
diff -c -r1.1 xpath.c
*** contrib/xml2/xpath.c5 Mar 2004 03:57:58 -   1.1
--- contrib/xml2/xpath.c7 Mar 2004 18:38:59 -
***
*** 39,45 
  static xmlXPathObjectPtr pgxml_xpath(text *document, xmlChar* xpath);
  
  
! Datum pgxml_parse(PG_FUNCTION_ARGS);
  Datum   xpath_nodeset(PG_FUNCTION_ARGS);
  Datum xpath_string(PG_FUNCTION_ARGS);
  Datum xpath_number(PG_FUNCTION_ARGS);
--- 39,45 
  static xmlXPathObjectPtr pgxml_xpath(text *document, xmlChar* xpath);
  
  
! Datum xml_valid(PG_FUNCTION_ARGS);
  Datum   xpath_nodeset(PG_FUNCTION_ARGS);
  Datum xpath_string(PG_FUNCTION_ARGS);
  Datum xpath_number(PG_FUNCTION_ARGS);
***
*** 162,173 
  
  /* Returns true if document is well-formed */
  
! PG_FUNCTION_INFO_V1(pgxml_parse);
  
  Datum
! pgxml_parse(PG_FUNCTION_ARGS)
  {
!   /* called as pgxml_parse(document) */
xmlDocPtr   doctree;
text   *t = PG_GETARG_TEXT_P(0);/* document buffer */
int32   docsize = VARSIZE(t) - VARHDRSZ;
--- 162,173 
  
  /* Returns true if document is well-formed */
  
! PG_FUNCTION_INFO_V1(xml_valid);
  
  Datum
! xml_valid(PG_FUNCTION_ARGS)
  {
!   /* called as xml_valid(document) */
xmlDocPtr   doctree;
text   *t = PG_GETARG_TEXT_P(0);/* document buffer */
int32   docsize = VARSIZE(t) - VARHDRSZ;
***
*** 646,656 
per_query_ctx = rsinfo-econtext-ecxt_per_query_memory;
oldcontext = MemoryContextSwitchTo(per_query_ctx);
  
! /* Create the tuplestore - SortMem is the max in-memory size before it is
!  * shipped to a disk heap file. Just like ... SortMem!
   */
  
!   tupstore = tuplestore_begin_heap(true, false, SortMem);
  
MemoryContextSwitchTo(oldcontext);
  
--- 646,656 
per_query_ctx = rsinfo-econtext-ecxt_per_query_memory;
oldcontext = MemoryContextSwitchTo(per_query_ctx);
  
! /* Create the tuplestore - work_mem is the max in-memory size before a
!  * file is created on disk to hold it.
   */
  
!   tupstore = tuplestore_begin_heap(true, false, work_mem);
  
MemoryContextSwitchTo(oldcontext);
  

---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings