Home Explore Blog CI



postgresql

3rd chunk of `doc/src/sgml/features.sgml`
edcd29e4e82f85d075a6d8ffa77d2a327e3099574aa5b70b0000000100000fa1
 <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

Title: XML Limits and Conformance in PostgreSQL
Summary
PostgreSQL's implementation of XML data type and related functions largely follows the SQL/XML 2003 edition, with some borrowing from later editions, but has limitations, including restricted XPath 1.0 support, no support for certain clauses and functions, and differences in XML data types, resulting in deviations from the SQL/XML standard.