The first set of functions are straightforward XML parsing and XPath queries:
-pgxml_parse(document) RETURNS bool
+xml_valid(document) RETURNS bool
This parses the document text in its parameter and returns true if the
document is well-formed XML.
--SQL for XML parser
-CREATE OR REPLACE FUNCTION pgxml_parse(text) RETURNS bool
+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
static xmlXPathObjectPtr pgxml_xpath(text *document, xmlChar* xpath);
-Datum pgxml_parse(PG_FUNCTION_ARGS);
+Datum xml_valid(PG_FUNCTION_ARGS);
Datum xpath_nodeset(PG_FUNCTION_ARGS);
Datum xpath_string(PG_FUNCTION_ARGS);
Datum xpath_number(PG_FUNCTION_ARGS);
/* Returns true if document is well-formed */
-PG_FUNCTION_INFO_V1(pgxml_parse);
+PG_FUNCTION_INFO_V1(xml_valid);
Datum
-pgxml_parse(PG_FUNCTION_ARGS)
+xml_valid(PG_FUNCTION_ARGS)
{
- /* called as pgxml_parse(document) */
+ /* called as xml_valid(document) */
xmlDocPtr doctree;
text *t = PG_GETARG_TEXT_P(0); /* document buffer */
int32 docsize = VARSIZE(t) - VARHDRSZ;
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!
+/* 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, SortMem);
+ tupstore = tuplestore_begin_heap(true, false, work_mem);
MemoryContextSwitchTo(oldcontext);