mirror of
https://github.com/postgres/postgres.git
synced 2025-05-28 05:21:27 +03:00
149 lines
4.8 KiB
Plaintext
149 lines
4.8 KiB
Plaintext
<!--
|
|
$Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.20 2003/09/20 20:12:04 tgl 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 products 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:
|
|
-->
|