Re: [PATCH] Re: Adding XMLEXISTS to the grammar
От | Mike Fowler |
---|---|
Тема | Re: [PATCH] Re: Adding XMLEXISTS to the grammar |
Дата | |
Msg-id | 4C27CF2E.1010001@mlfowler.com обсуждение исходный текст |
Ответ на | Re: [PATCH] Re: Adding XMLEXISTS to the grammar (Robert Haas <robertmhaas@gmail.com>) |
Список | pgsql-hackers |
Robert Haas wrote: > On Sun, Jun 27, 2010 at 12:04 PM, Mike Fowler <mike@mlfowler.com> wrote: > >> Thanks again for your help Robert, turns out the fault was in the pg_proc >> entry (the 3 up there should've been a two!). Once I took the grammar out it >> was quickly obvious where I'd gone wrong. >> > > Glad it was a helpful suggestion. > > >> Attached is a patch with the revised XMLEXISTS function, complete with >> grammar support and regression tests. The implemented grammar is: >> >> XMLEXISTS ( xpath_expression PASSING BY REF xml_value [BY REF] ) >> >> Though the full grammar makes everything after the xpath_expression >> optional, I've left it has mandatory simply to avoid lots of rework of the >> function (would need new null checks, memory handling would need reworking). >> > > So if you don't specify the xml_value, what does the xpath_expression > get applied to? > From what I can gather the xpath_expression would be evalutated against an empty document thereby returning false for every xpath_expression except for 'true()'. Apache Derby has made the xml_value mandatory as well (though I'll stress my conclusion wasn't based on this fact). If you think it would better to adhere more closely to the standard I can certainly look to do so. From a cursory glance at libxml's API I think it should be straight forward to query against an empty document such that I wouldn't need ot code for the exceptional case (or cases if I've missed others). Regards, -- Mike Fowler Registered Linux user: 379787
В списке pgsql-hackers по дате отправления: