Re: XMLDocument (SQL/XML X030)

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Jim Jones <jim(dot)jones(at)uni-muenster(dot)de>
Cc: Chapman Flack <jcflack(at)acm(dot)org>, Robert Treat <rob(at)xzilla(dot)net>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: XMLDocument (SQL/XML X030)
Date: 2025-01-24 12:48:34
Message-ID: CAFj8pRDOQgCwi-18o_ONxz9hyN3DOUDUXOsdEchC1aA788y2dA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

pá 24. 1. 2025 v 13:21 odesílatel Jim Jones <jim(dot)jones(at)uni-muenster(dot)de>
napsal:

>
> On 24.01.25 12:31, Pavel Stehule wrote:
> > I don't know what it means - `function returns a document node` in the
> > context of Postgres implementation of XML.
> > I miss the information so it returns an input argument without
> > changing anything, because in a system, where XML expression
> > holds a complete string (not graph like some other systems), it just
> > does nothing.
> >
> > If somebody looks the source code, then he should be in panic mode,
> > because the doc talks about returning "document node",
> > and it is just an argument. So it should be explained more in
> > PostgreSQL XML design, and less in SQL/XML description. Because
> > In this case, SQL/XML description (in postgresql context) is
> > absolutely confusing.
>
>
> I see. I borrowed document node from the XML standard.
>
> Perhaps it is more palatable like this?
>
>
> The <function>xmldocument</function> function creates an XML value from
> the given <type>xml</type> expression. The input can include any valid
> XML content, such as elements, text, or a mixture of elements and text.
> If the <type>xml</type> expression is NULL, the function returns NULL.
> This function does not require the input to have a single root element
> and does not wrap the result in one - instead, it returns an exact XML
> representation of the input <type>xml</type> expression. The validation
> of the <type>xml</type> expression depends on the current <xref
> linkend="guc-xmloption"/> setting.
>

It is still confusing (and I understand so it can be hard to describe a
function that does nothing).

As a PostgreSQL user, and reader documentation, I have question

what is difference between XMLDOCUMENT( some xml expr) and just xml expr

Is there different result SELECT XMLDOCUMENT(XMLELEMENT(name a, 10)) and
SELECT XMLELEMENT(name a, 10) ?

Lot of users use XML functions without XMLDOCUMENT now. The doc should to
help with a reply to question where and when I need (I can) use this
function. This should
be in context of Postgres where every XML expr returns XML value, so
sentence
creates an XML value from XML expression is still very confusing

What some like

"SQL/XML introduces XMLDOCUMENT function to returns a document node from
XML tree of some XML value.
This has not any sense (because XML in Postgres is always materialized to
string) in PostgreSQL implementation of XML, and the function just returns
input value". Or some like that.

>
>
> Best, Jim
>
>
>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Maxim Orlov 2025-01-24 12:56:46 Re: Casts from jsonb to other types should cope with json null
Previous Message Peter Eisentraut 2025-01-24 12:25:29 Re: Convert sepgsql tests to TAP