Florian Pflug <f...@phlo.org> Friday 17 of June 2011 11:41:08 > On Jun17, 2011, at 11:09 , Radosław Smogura wrote: > > 1. > > SELECT (XPATH('/root/*', '<root xmlns:o="http://olacle.com/db" > > xmlns:p="http://postgresql.org/db"><o:db><a><b></b></a></o:db><p:db></p: > > db></root>')); Produces: > > "{"<o:db> > > > > <a> > > > > <b/> > > > > </a> > > > > </o:db>",<p:db/>}" > > In above <b></b> was reduced to <b/> this is different infoset then > > input, and those notations are differently interpreted e.g. by XML > > Binding & WebServices. The 1st one will may be mapped to empty string, > > and 2nd one to to null. > > Oh, joy :-( > > Does this happen only with my patch applied or also with unpatched HEAD? > > > 2. > > SELECT (XPATH('/root/*', '<root xmlns:o="http://olacle.com/db" > > xmlns:p="http://postgresql.org/db"><o:db></o:db><p:db></p:db></root>')); > > "{<o:db/>,<p:db/>}" > > In above I missing namespaces. > > Hm, that's a hard problem a think. Your problem (1) basically tells us that > ideally we'd return the matching parts of an XML document unmodified. Now, > (2) tells us that isn't to most sensible thing to do either. > > > I may take on assignment 1st (fix is simple) > > Whats your proposed fix for (1)? > > > , but for 2nd I have mixed fillings. I think 2nd should transfer > > namespaces in some way to client. > > I don't see how XPATH() can do that without breaking it's API. The only > thing we could do AFAICS is the define a second XPATH evaluation function > which returns a list of namespace declarations (prefix and uri) for every > node. > > best regards, > Florian Pflug
No this is not about Your patch, but was inspired by it. Regards, Radek -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers