postgresql/doc/src/sgml/features.sgml

149 lines
4.8 KiB
Plaintext

<!--
$PostgreSQL: pgsql/doc/src/sgml/features.sgml,v 2.22 2003/11/29 19:51:37 pgsql Exp $
-->
<appendix id="features">
<title>SQL Conformance</title>
<para>
This section attempts to outline to what extent
<productname>PostgreSQL</productname> conforms to the SQL standard.
Full compliance to the standard or a complete statement about the
compliance to the standard is complicated and not particularly
useful, so this section can only give an overview.
</para>
<para>
The formal name of the SQL standard is ISO/IEC 9075 <quote>Database
Language SQL</quote>. A revised version of the standard is released
from time to time; the most recent one appearing in 1999. That
version is referred to as ISO/IEC 9075:1999, or informally as SQL99.
The version prior to that was SQL92.
<productname>PostgreSQL</productname> development tends to aim for
conformance with the latest official version of the standard where
such conformance does not contradict traditional features or common
sense. At the time of this writing, balloting is under way for a
new revision of the standard, which, if approved, will eventually
become the conformance target for future
<productname>PostgreSQL</productname> development.
</para>
<para>
<acronym>SQL92</acronym> defined three feature sets for conformance:
Entry, Intermediate, and Full. Most database management systems claiming
<acronym>SQL</acronym> standard conformance were conforming at only
the Entry level, since the entire set of features in the
Intermediate and Full levels was either too voluminous or in
conflict with legacy behaviors.
</para>
<para>
<acronym>SQL99</acronym> defines a large set of individual features
rather than the ineffectively broad three levels found in
<acronym>SQL92</acronym>. A large subset of these features
represents the <quote>core</quote> features, which every conforming
SQL implementation must supply. The rest of the features are purely
optional. Some optional features are grouped together to form
<quote>packages</quote>, which SQL implementations can claim
conformance to, thus claiming conformance to particular groups of
features.
</para>
<para>
The <acronym>SQL99</acronym> standard is also split into 5 parts:
Framework, Foundation, Call Level Interface, Persistent Stored
Modules, and Host Language Bindings.
<productname>PostgreSQL</productname> only covers parts 1, 2, and 5.
Part 3 is similar to the ODBC interface, and part 4 is similar to
the <application>PL/pgSQL</application> programming language, but
exact conformance is not specifically intended in either case.
</para>
<para>
In the following two sections, we provide a list of those features
that <productname>PostgreSQL</productname> supports, followed by a
list of the features defined in SQL99 which are not yet supported in
<productname>PostgreSQL</productname>. Both of these lists are
approximate: There may be minor details that are nonconforming for a
feature that is listed as supported, and large parts of an
unsupported feature may in fact be implemented. The main body of
the documentation always contains the most accurate information
about what does and does not work.
</para>
<note>
<para>
Feature codes containing a hyphen are subfeatures. Therefore, if a
particular subfeature is not supported, the main feature is listed
as unsupported even if some other subfeatures are supported.
</para>
</note>
<sect1 id="features-sql99">
<title>Supported Features</title>
<para>
<informaltable>
<tgroup cols="4">
<thead>
<row>
<entry>Identifier</entry>
<entry>Package</entry>
<entry>Description</entry>
<entry>Comment</entry>
</row>
</thead>
&features-supported;
</tgroup>
</informaltable>
</para>
</sect1>
<sect1 id="unsupported-features-sql99">
<title>Unsupported Features</title>
<para>
The following features defined in <acronym>SQL99</acronym> are not
implemented in this release of
<productname>PostgreSQL</productname>. In a few cases, equivalent
functionality is available.
<informaltable>
<tgroup cols="4">
<thead>
<row>
<entry>Identifier</entry>
<entry>Package</entry>
<entry>Description</entry>
<entry>Comment</entry>
</row>
</thead>
&features-unsupported;
</tgroup>
</informaltable>
</para>
</sect1>
</appendix>
<!-- Keep this comment at the end of the file
Local variables:
mode:sgml
sgml-omittag:nil
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"./reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:("/usr/lib/sgml/catalog")
sgml-local-ecat-files:nil
End:
-->