aboutsummaryrefslogtreecommitdiff
path: root/contrib/xml/pgxml.h
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2004-03-05 03:24:50 +0000
committerBruce Momjian <bruce@momjian.us>2004-03-05 03:24:50 +0000
commitadca025c9ec4b3050411eb74a5b4f9c20a4ce2b5 (patch)
tree0a2869b222588e653c7fba482187a543e21305c5 /contrib/xml/pgxml.h
parent1973971821672447d30bda6f12736a7e5987569f (diff)
downloadpostgresql-adca025c9ec4b3050411eb74a5b4f9c20a4ce2b5.tar.gz
postgresql-adca025c9ec4b3050411eb74a5b4f9c20a4ce2b5.zip
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
Diffstat (limited to 'contrib/xml/pgxml.h')
-rw-r--r--contrib/xml/pgxml.h42
1 files changed, 0 insertions, 42 deletions
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)