| From: | Bruce Momjian <bruce(at)momjian(dot)us> | 
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> | 
| Cc: | Enrico Sirola <enrico(dot)sirola(at)gmail(dot)com>, pgsql-bugs(at)postgresql(dot)org, Peter Eisentraut <peter_e(at)gmx(dot)net> | 
| Subject: | Re: BUG #4294: XML support: name() xpath function not working | 
| Date: | 2008-08-23 03:22:09 | 
| Message-ID: | 200808230322.m7N3M9w06962@momjian.us | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-bugs | 
Is there any TODO here?
---------------------------------------------------------------------------
Tom Lane wrote:
> "Enrico Sirola" <enrico(dot)sirola(at)gmail(dot)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
> 
> -- 
> Sent via pgsql-bugs mailing list (pgsql-bugs(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-bugs
-- 
  Bruce Momjian  <bruce(at)momjian(dot)us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2008-08-23 03:25:15 | Re: BUG #4294: XML support: name() xpath function not working | 
| Previous Message | Tom Lane | 2008-08-23 03:11:47 | Re: BUG #4281: some types of errors do not log statements |