diff options
author | Bruce Momjian <bruce@momjian.us> | 2004-03-05 03:57:58 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2004-03-05 03:57:58 +0000 |
commit | 31f4b59a464808ab0fec0ffb2eaa723321ea1af7 (patch) | |
tree | 004f71d1eb77899fa9e16ac8047189dcde6576e5 /contrib/xml/pgxml.h | |
parent | adca025c9ec4b3050411eb74a5b4f9c20a4ce2b5 (diff) | |
download | postgresql-31f4b59a464808ab0fec0ffb2eaa723321ea1af7.tar.gz postgresql-31f4b59a464808ab0fec0ffb2eaa723321ea1af7.zip |
Move new version of contrib/ xml into xml2, keep old version in /xml.
Diffstat (limited to 'contrib/xml/pgxml.h')
-rw-r--r-- | contrib/xml/pgxml.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/contrib/xml/pgxml.h b/contrib/xml/pgxml.h new file mode 100644 index 00000000000..2b80124b771 --- /dev/null +++ b/contrib/xml/pgxml.h @@ -0,0 +1,42 @@ +/* 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) |