Re: XMLATTRIBUTES vs. values of type XML

From: Florian Pflug <fgp(at)phlo(dot)org>
To: Peter Eisentraut <peter_e(at)gmx(dot)net>
Cc: PG Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: XMLATTRIBUTES vs. values of type XML
Date: 2011-07-29 09:37:06
Message-ID: 828C8A72-1479-42FF-9180-79D3C74AD963@phlo.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Jul28, 2011, at 22:51 , Peter Eisentraut wrote:
> On ons, 2011-07-27 at 23:21 +0200, Florian Pflug wrote:
>> On Jul27, 2011, at 23:08 , Peter Eisentraut wrote:
>>> Well, offhand I would expect that passing an XML value to XMLATTRIBUTES
>>> would behave as in
>>>
>>> SELECT XMLELEMENT(NAME "t", XMLATTRIBUTES(XMLSERIALIZE(content '&amp;'::XML AS text) AS "a"))
>>
>> With both 9.1 and 9.2 this query returns
>>
>> xmlelement
>> --------------------
>> <t a="&amp;amp;"/>
>>
>> i.e. makes the value of "a" represent the *literal* string '&amp;', *not*
>> the literal string '&'. Just to be sure there's no miss-understanding here
>> - is this what you expect?
>
> Well, I expect it to fail.

Now you've lost me. What exactly should fail under what circumstances?

>> What's the workaround if you have a value of type XML, e.g. '&amp;',
>> and want to set an attribute to the value represented by that XML fragment
>> (i.e. '&')? Since we have no XMLUNESCAPE function, I don't see an easy
>> way to do that. Maybe I'm missing something, though.
>
> It may be worth researching whether the XMLSERIALIZE function is
> actually doing what it should, or whether it could/should do some
> unescaping.

I don't see how that could work. It can't unescape anything in e.g.
'<t>&amp;</t>', because the result would be a quite useless not-really-XML
kind of thing. It could unescape '&amp;' but that kind of content-dependent
behaviour seem even worse than my proposed escaping rules for XMLATTRIBUTES.

> Unfortunately, in the latest SQL/XML standard the final
> answer it nested deep in the three other standards, so I don't have an
> answer right now. But there are plenty of standards in this area, so
> I'd hope that one of them can give us the right behavior, instead of us
> making something up.

Which standards to you have in mind there? If you can point me to a place
where I can obtain them, I could check if there's something in them
which helps.

best regards,
Florian Pflug

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Nikhil Sontakke 2011-07-29 11:41:43 Re: Check constraints on partition parents only?
Previous Message Shigeru Hanada 2011-07-29 08:37:16 per-column FDW options, v5