From adca025c9ec4b3050411eb74a5b4f9c20a4ce2b5 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Fri, 5 Mar 2004 03:24:50 +0000 Subject: Thanks to the generous support of Torchbox (http://www.torchbox.com), I have been able to significantly improve the contrib/xml XPath integration code. New features: * XPath set-returning function allows multiple results from an several XPath queries to be used as a virtual table. * Using libxslt, XSLT transformations (with and without parameters) are supported. (Caution: This support allows generic URL fetching from within the backend as well). I've removed the old code so that it is all libxml based. Rather than attach as a patch, I've put the tar.gz (10k!) at http://www.azuli.co.uk/pgxml-1.0.tar.gz (all files in archive are xml/....). I think this is worth replacing the contrib version with, even though the function names have changed (though the same functionality is there), because it includes a SRF and some SPI usage, in addition to linking to an external library. And it isn't a big module! Obviously, I understand that people might prefer to move it elsewhere, or might have reservations about replacing an existing contrib module with an incompatible one. I'm open to suggestions. John Gray --- contrib/xml/pgxml.h | 42 ------------------------------------------ 1 file changed, 42 deletions(-) delete mode 100644 contrib/xml/pgxml.h (limited to 'contrib/xml/pgxml.h') diff --git a/contrib/xml/pgxml.h b/contrib/xml/pgxml.h deleted file mode 100644 index 2b80124b771..00000000000 --- a/contrib/xml/pgxml.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Header for pg xml parser interface */ - -static void *pgxml_palloc(size_t size); -static void *pgxml_repalloc(void *ptr, size_t size); -static void pgxml_pfree(void *ptr); -static void pgxml_mhs_init(); -static void pgxml_handler_init(); -Datum pgxml_parse(PG_FUNCTION_ARGS); -Datum pgxml_xpath(PG_FUNCTION_ARGS); -static void pgxml_starthandler(void *userData, const XML_Char * name, - const XML_Char ** atts); -static void pgxml_endhandler(void *userData, const XML_Char * name); -static void pgxml_charhandler(void *userData, const XML_Char * s, int len); -static void pgxml_pathcompare(void *userData); -static void pgxml_finalisegrabbedtext(void *userData); - -#define MAXPATHLENGTH 512 -#define MAXRESULTS 100 - - -typedef struct -{ - int rescount; - char *results[MAXRESULTS]; - int32 reslens[MAXRESULTS]; - char *resbuf; /* pointer to the result buffer for pfree */ -} XPath_Results; - - - -typedef struct -{ - char currentpath[MAXPATHLENGTH]; - char *path; - int textgrab; - char *resptr; - int32 reslen; - XPath_Results *xpres; -} pgxml_udata; - - -#define UD ((pgxml_udata *) userData) -- cgit v1.2.3