"Enrico Sirola" <[EMAIL PROTECTED]> writes: > -- bad > select xpath('name(/my:a/*[last()])', test, ARRAY[ARRAY['my', > 'http://myns.com/ns']]) from test;
You could barely swat a fly with what I know about XPath ... but I'm thinking that the culprit here is the crock at lines 3254-3288 of xml.c, which explains itself thus: /* * To handle both documents and fragments, regardless of the fact whether * the XML datum has a single root (XML well-formedness), we wrap the XML * datum in a dummy element (<x>...</x>) and extend the XPath expression * accordingly. To do it, throw away the XML prolog, if any. */ This code prefixes the given path expression with "/x", which of course is going to break any expression that starts with a function name. It would have to stick the /x inside the function argument to have any chance of working. In general, I think this has zero chance of working without implementing a pretty complete XPath parser. We need to find another way. regards, tom lane -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs