Re: BUG #4294: XML support: name() xpath function not working

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: BUG #4294: XML support: name() xpath function not working
Дата
Msg-id 24419.1215750494@sss.pgh.pa.us
обсуждение исходный текст
Ответ на BUG #4294: XML support: name() xpath function not working  ("Enrico Sirola" <enrico.sirola@gmail.com>)
Ответы Re: BUG #4294: XML support: name() xpath function not working
Список pgsql-bugs
"Enrico Sirola" <enrico.sirola@gmail.com> 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

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Simon Riggs
Дата:
Сообщение: Re: BUG #4294: XML support: name() xpath function not working
Следующее
От: "Fred Perniss"
Дата:
Сообщение: BUG #4295: DELETE WHERE Condition