Re: BUG #4822: xmlattributes encodes '&' twice
От | Itagaki Takahiro |
---|---|
Тема | Re: BUG #4822: xmlattributes encodes '&' twice |
Дата | |
Msg-id | 20090528192528.87F7.52131E4D@oss.ntt.co.jp обсуждение исходный текст |
Ответ на | Re: BUG #4822: xmlattributes encodes '&' twice (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: [HACKERS] BUG #4822: xmlattributes encodes '&' twice
Re: [HACKERS] BUG #4822: xmlattributes encodes '&' twice |
Список | pgsql-bugs |
Tom Lane <tgl@sss.pgh.pa.us> wrote: > > =# SELECT xmlelement(name a, xmlattributes('./qa?a=1&b=2' as href), 'Q&A'); > > xmlelement > > -------------------------------------------- > > <a href="./qa?a=1&b=2">Q&A</a> > > > '&' in xmlattributes seems to be encoded twice. > > This was apparently broken by Peter's patch here: > http://archives.postgresql.org/pgsql-committers/2009-04/msg00124.php > > We might have to add a bool flag > to map_sql_value_to_xml_value() to enable or disable mapping of special > characters. Here is a patch to fix the bug. I added a parameter 'encode' to map_sql_value_to_xml_value() and pass false for xml attributes. char * map_sql_value_to_xml_value(Datum value, Oid type, bool encode) Also a special regression test is added for it: SELECT xmlelement(name element, xmlattributes (1 as one, 'deuce' as two, '<>&"''' as three), 'content', '<>&"'''); xmlelement -------------------------------------------------------------------------------------------- <element one="1" two="deuce" three="<>&"'">content<>&"'</element> (1 row) Regards, --- ITAGAKI Takahiro NTT Open Source Software Center
Вложения
В списке pgsql-bugs по дате отправления: