Re: BUG #16046: xpath returns CDATA tag along with the value inpostgres 12 - Mailing list pgsql-bugs

From Chapman Flack
Subject Re: BUG #16046: xpath returns CDATA tag along with the value inpostgres 12
Date
Msg-id 5DB234F1.1040706@anastigmatix.net
Whole thread Raw
In response to Re: BUG #16046: xpath returns CDATA tag along with the value inpostgres 12  (Chapman Flack <chap@anastigmatix.net>)
Responses Re: BUG #16046: xpath returns CDATA tag along with the value inpostgres 12
List pgsql-bugs
On 10/24/19 19:14, Chapman Flack wrote:
>  <![CDATA[select 5 & 6 <yahoo!>]]>
>  select 5 & 6 <yahoo!>
> 
> Either form of result is correct, and having it respect the form that was
> used in the input might even be delightfully smart.
> 
> I haven't looked in the code just now to see if it is intentionally being
> delightfully smart, or more simplistic-and-lucky.

It appears to be probably unintentional-but-ok: libxml tags a CDATA
section differently (XML_CDATA_SECTION_NODE) than a text node
(XML_TEXT_NODE), so a CDATA node falls into the catch-all branch of

if (cur->type != XML_ATTRIBUTE_NODE && cur->type != XML_TEXT_NODE)

where it gets dumped faithfully by xmlNodeDump(), with the upshot
that the result always will be well-formed XML, and will respect whether
the input was supplied as CDATA or not. We could choose to say that's
what we meant it to do all along.

Regards,
-Chap



pgsql-bugs by date:

Previous
From: Chapman Flack
Date:
Subject: Re: BUG #16046: xpath returns CDATA tag along with the value inpostgres 12
Next
From: Andres Freund
Date:
Subject: Re: BUG #16076: JIT causes huge delays in a complex query. jit=offsolves it.