<entry>Comment</entry>
</row>
</thead>
&features-supported;
</tgroup>
</informaltable>
</para>
</sect1>
<sect1 id="unsupported-features-sql-standard">
<title>Unsupported Features</title>
<para>
The following features defined in <acronym>SQL:2023</acronym> are not
implemented in this release of
<productname>PostgreSQL</productname>. In a few cases, equivalent
functionality is available.
<informaltable>
<tgroup cols="4">
<colspec colname="col1" colwidth="1.5*"/>
<colspec colname="col2" colwidth="1*"/>
<colspec colname="col3" colwidth="7*"/>
<colspec colname="col4" colwidth="3*"/>
<thead>
<row>
<entry>Identifier</entry>
<entry>Core?</entry>
<entry>Description</entry>
<entry>Comment</entry>
</row>
</thead>
&features-unsupported;
</tgroup>
</informaltable>
</para>
</sect1>
<sect1 id="xml-limits-conformance">
<title>XML Limits and Conformance to SQL/XML</title>
<indexterm>
<primary>SQL/XML</primary>
<secondary>limits and conformance</secondary>
</indexterm>
<para>
Significant revisions to the XML-related specifications in ISO/IEC 9075-14
(SQL/XML) were introduced with SQL:2006.
<productname>PostgreSQL</productname>'s implementation of the XML data
type and related functions largely follows the earlier 2003 edition,
with some borrowing from later editions. In particular:
<itemizedlist>
<listitem>
<para>
Where the current standard provides a family of XML data types
to hold <quote>document</quote> or <quote>content</quote> in
untyped or XML Schema-typed variants, and a type
<type>XML(SEQUENCE)</type> to hold arbitrary pieces of XML content,
<productname>PostgreSQL</productname> provides the single
<type>xml</type> type, which can hold <quote>document</quote> or
<quote>content</quote>. There is no equivalent of the
standard's <quote>sequence</quote> type.
</para>
</listitem>
<listitem>
<para>
<productname>PostgreSQL</productname> provides two functions
introduced in SQL:2006, but in variants that use the XPath 1.0
language, rather than XML Query as specified for them in the
standard.
</para>
</listitem>
<listitem>
<para>
<productname>PostgreSQL</productname> does not support the
<literal>RETURNING CONTENT</literal> or <literal>RETURNING SEQUENCE</literal>
clauses, functions which are defined to have these in the specification
are implicitly returning content.
</para>
</listitem>
</itemizedlist>
</para>
<para>
This section presents some of the resulting differences you may encounter.
</para>
<sect2 id="functions-xml-limits-xpath1">
<title>Queries Are Restricted to XPath 1.0</title>
<para>
The <productname>PostgreSQL</productname>-specific functions
<function>xpath()</function> and <function>xpath_exists()</function>
query XML documents using the XPath language.
<productname>PostgreSQL</productname> also provides XPath-only variants
of the standard functions <function>XMLEXISTS</function> and
<function>XMLTABLE</function>, which officially use
the XQuery language. For all of these functions,
<productname>PostgreSQL</productname> relies on the
<application>libxml2</application> library, which provides only XPath 1.0.
</para>
<para>
There is a strong connection between the XQuery language and XPath
versions 2.0 and later: any expression that is syntactically valid and
executes successfully in both produces the same result (with a minor
exception for expressions containing numeric character references or
predefined entity references, which XQuery replaces with the
corresponding character while XPath leaves them alone). But there