Commit 49cbef79 authored by Peter Eisentraut's avatar Peter Eisentraut

Update of conformance information to SQL:2003

by Troels Arvin, Simon Riggs, Elein Mustain

Make spelling of SQL standard names uniform.
parent 90c3ebe4
<!-- $PostgreSQL: pgsql/doc/src/sgml/array.sgml,v 1.39 2004/11/15 06:32:13 neilc Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/array.sgml,v 1.40 2004/11/27 21:27:05 petere Exp $ -->
<sect1 id="arrays">
<title>Arrays</title>
......@@ -63,8 +63,10 @@ CREATE TABLE tictactoe (
</para>
<para>
An alternative, SQL99-standard syntax may be used for one-dimensional arrays.
<structfield>pay_by_quarter</structfield> could have been defined as:
An alternative syntax, which conforms to the SQL:1999 standard, may
be used for one-dimensional arrays.
<structfield>pay_by_quarter</structfield> could have been defined
as:
<programlisting>
pay_by_quarter integer ARRAY[4],
</programlisting>
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/datatype.sgml,v 1.150 2004/09/20 22:48:25 tgl Exp $
$PostgreSQL: pgsql/doc/src/sgml/datatype.sgml,v 1.151 2004/11/27 21:27:05 petere Exp $
-->
<chapter id="datatype">
......@@ -1744,9 +1744,20 @@ January 8 04:05:06 1999 PST
</para>
<para>
For <type>timestamp [without time zone]</type>, any explicit time
zone specified in the input is silently ignored. That is, the
resulting date/time value is derived from the explicit date/time
The <acronym>SQL</acronym> standard differentiates <type>timestamp without time zone</type>
and <type>timestamp with time zone</type> literals by the existence of a
<quote>+</quote>; or <quote>-</quote>. Hence, according to the standard,
<programlisting>TIMESTAMP '2004-10-19 10:23:54'</programlisting>
is a <type>timestamp without time zone</type>, while
<programlisting>TIMESTAMP '2004-10-19 10:23:54+02'</programlisting>
is a <type>timestamp with time zone</type>.
<productname>PostgreSQL</productname>
differs from the standard by requiring that <type>timestamp with time zone</type>
literals be explicitly typed:
<programlisting>TIMESTAMP WITH TIME ZONE '2004-10-19 10:23:54+02'</programlisting>
If a literal is not explicitly indicated as being of <type>timestamp with time zone</type>,
PostgreSQL will silently ignore any time zone indication in the literal.
That is, the resulting date/time value is derived from the date/time
fields in the input value, and is not adjusted for time zone.
</para>
......
<!-- $PostgreSQL: pgsql/doc/src/sgml/ddl.sgml,v 1.32 2004/11/15 06:32:13 neilc Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/ddl.sgml,v 1.33 2004/11/27 21:27:06 petere Exp $ -->
<chapter id="ddl">
<title>Data Definition</title>
......@@ -1069,7 +1069,7 @@ SELECT name, altitude
<para>
In previous versions of <productname>PostgreSQL</productname>, the
default behavior was not to include child tables in queries. This was
found to be error prone and is also in violation of the SQL99
found to be error prone and is also in violation of the SQL:1999
standard. Under the old syntax, to get the sub-tables you append
<literal>*</literal> to the table name.
For example
......
<!-- $PostgreSQL: pgsql/doc/src/sgml/errcodes.sgml,v 1.10 2004/11/15 06:32:13 neilc Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/errcodes.sgml,v 1.11 2004/11/27 21:27:06 petere Exp $ -->
<appendix id="errcodes-appendix">
<title><productname>PostgreSQL</productname> Error Codes</title>
......@@ -125,7 +125,7 @@
<row>
<entry>Class 02</entry>
<entry>No Data &mdash; this is also a warning class per SQL99</entry>
<entry>No Data &mdash; this is also a warning class per SQL:1999</entry>
</row>
<row>
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/features.sgml,v 2.22 2003/11/29 19:51:37 pgsql Exp $
$PostgreSQL: pgsql/doc/src/sgml/features.sgml,v 2.23 2004/11/27 21:27:06 petere Exp $
-->
<appendix id="features">
......@@ -7,68 +7,96 @@ $PostgreSQL: pgsql/doc/src/sgml/features.sgml,v 2.22 2003/11/29 19:51:37 pgsql E
<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>
<productname>PostgreSQL</productname> conforms to the current SQL
standard. The following information is not a full statement of
conformance, but it presents the main topics in as much detail as is
both reasonable and useful for users.
</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
from time to time; the most recent one appearing in late 2003. That
version is referred to as ISO/IEC 9075:2003, or simply as SQL:2003.
The versions prior to that were SQL:1999 and SQL-92. Each version
replaces the previous one, so claims of conformance to earlier
versions have no official merit.
<productname>PostgreSQL</productname> development aims 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.
sense. The PostgreSQL project was not represented in the ISO/IEC
9075 Working Group during the preparation of SQL:2003. Even so,
many of the features required by SQL:2003 are already supported,
though sometimes with slightly differing syntax or function.
Further moves towards conformance may be expected in later releases.
</para>
<para>
<acronym>SQL-92</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>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.
Starting with <acronym>SQL:1999</acronym>, the SQL standard defines
a large set of individual features rather than the ineffectively
broad three levels found in <acronym>SQL-92</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>
<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.
The <acronym>SQL:2003</acronym> standard is also split into a number
of parts. Each is known by a shorthand name. Note that these parts
are not consecutively numbered.
<itemizedlist>
<listitem><para>ISO/IEC 9075-1 Framework (<acronym>SQL/Framework</acronym>)</para></listitem>
<listitem><para>ISO/IEC 9075-2 Foundation (<acronym>SQL/Foundation</acronym>)</para></listitem>
<listitem><para>ISO/IEC 9075-3 Call Level Interface (<acronym>SQL/CLI</acronym>)</para></listitem>
<listitem><para>ISO/IEC 9075-4 Persistent Stored Modules (<acronym>SQL/PSM</acronym>)</para></listitem>
<listitem><para>ISO/IEC 9075-9 Management of External Data (<acronym>SQL/MED</acronym>)</para></listitem>
<listitem><para>ISO/IEC 9075-10 Object Language Bindings (<acronym>SQL/OLB</acronym>)</para></listitem>
<listitem><para>ISO/IEC 9075-11 Information and Definition Schemas (<acronym>SQL/Schemata</acronym>)</para></listitem>
<listitem><para>ISO/IEC 9075-13 Routines and Types using the Java Language (<acronym>SQL/JRT</acronym>)</para></listitem>
<listitem><para>ISO/IEC 9075-14 XML-related specifications (<acronym>SQL/XML</acronym>)</para></listitem>
</itemizedlist>
</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.
<productname>PostgreSQL</productname> covers parts 1, 2, and 11.
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.
exact conformance is not specifically intended or verified in either
case.
</para>
<para>
PostgreSQL supports most of the major features of SQL:2003. Out of
164 mandatory features required for full Core conformance,
PostgreSQL conforms to at least 150. In addition, there is a long
list of supported optional features. It may be worth noting that at
the time of writing, no current version of any database management
system claims full conformance to Core SQL:2003.
</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.
list of the features defined in <acronym>SQL:2003</acronym> 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>
......@@ -79,7 +107,7 @@ $PostgreSQL: pgsql/doc/src/sgml/features.sgml,v 2.22 2003/11/29 19:51:37 pgsql E
</para>
</note>
<sect1 id="features-sql99">
<sect1 id="features-sql-standard">
<title>Supported Features</title>
<para>
......@@ -101,11 +129,11 @@ $PostgreSQL: pgsql/doc/src/sgml/features.sgml,v 2.22 2003/11/29 19:51:37 pgsql E
</para>
</sect1>
<sect1 id="unsupported-features-sql99">
<sect1 id="unsupported-features-sql-standard">
<title>Unsupported Features</title>
<para>
The following features defined in <acronym>SQL99</acronym> are not
The following features defined in <acronym>SQL:2003</acronym> are not
implemented in this release of
<productname>PostgreSQL</productname>. In a few cases, equivalent
functionality is available.
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.223 2004/11/15 06:32:13 neilc Exp $
$PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.224 2004/11/27 21:27:06 petere Exp $
PostgreSQL documentation
-->
......@@ -2479,16 +2479,15 @@ cast(-44 as bit(12)) <lineannotation>111111010100</lineannotation>
</indexterm>
<para>
There are three separate approaches to pattern matching provided by
<productname>PostgreSQL</productname>: the traditional
<acronym>SQL</acronym>
<function>LIKE</function> operator, the more recent
<acronym>SQL99</acronym>
<function>SIMILAR TO</function> operator, and
<acronym>POSIX</acronym>-style regular expressions.
There are three separate approaches to pattern matching provided
by <productname>PostgreSQL</productname>: the traditional
<acronym>SQL</acronym> <function>LIKE</function> operator, the
more recent <literal>>SIMILAR TO</literal> operator (since
SQL:1999), and <acronym>POSIX</acronym>-style regular expressions.
Additionally, a pattern matching function,
<function>substring</function>, is available, using either
<acronym>SQL99</acronym>-style or POSIX-style regular expressions.
<literal>SIMILAR TO</literal>-style or POSIX-style regular
expressions.
</para>
<tip>
......@@ -2595,11 +2594,10 @@ cast(-44 as bit(12)) <lineannotation>111111010100</lineannotation>
</sect2>
<sect2 id="functions-sql99-regexp">
<title><function>SIMILAR TO</function> and <acronym>SQL99</acronym>
Regular Expressions</title>
<sect2 id="functions-similarto-regexp">
<title><function>SIMILAR TO</function> Regular Expressions</title>
<indexterm zone="functions-sql99-regexp">
<indexterm zone="functions-similarto-regexp">
<primary>regular expression</primary>
<!-- <seealso>pattern matching</seealso> breaks index build -->
</indexterm>
......@@ -2618,14 +2616,13 @@ cast(-44 as bit(12)) <lineannotation>111111010100</lineannotation>
</synopsis>
<para>
The <function>SIMILAR TO</function> operator returns true or false
depending on whether its pattern matches the given string. It is
much like <function>LIKE</function>, except that it interprets the
pattern using <acronym>SQL99</acronym>'s definition of a regular
expression.
<acronym>SQL99</acronym>'s regular expressions are a curious cross
between <function>LIKE</function> notation and common regular expression
notation.
The <function>SIMILAR TO</function> operator returns true or
false depending on whether its pattern matches the given string.
It is much like <function>LIKE</function>, except that it
interprets the pattern using the SQL standard's definition of a
regular expression. SQL regular expressions are a curious cross
between <function>LIKE</function> notation and common regular
expression notation.
</para>
<para>
......@@ -2704,7 +2701,7 @@ cast(-44 as bit(12)) <lineannotation>111111010100</lineannotation>
<function>substring(<parameter>string</parameter> from
<replaceable>pattern</replaceable> for
<replaceable>escape-character</replaceable>)</function>, provides
extraction of a substring that matches a <acronym>SQL99</acronym>
extraction of a substring that matches an SQL
regular expression pattern. As with <literal>SIMILAR TO</>, the
specified pattern must match to the entire data string, else the
function fails and returns null. To indicate the part of the
......
<!-- $PostgreSQL: pgsql/doc/src/sgml/information_schema.sgml,v 1.18 2004/11/15 06:32:13 neilc Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/information_schema.sgml,v 1.19 2004/11/27 21:27:06 petere Exp $ -->
<chapter id="information-schema">
<title>The Information Schema</title>
......@@ -3267,7 +3267,7 @@ ORDER BY c.ordinal_position;
<entry>
The year the standard referenced in
<literal>sql_language_source</literal> was approved; currently
<literal>1999</>
<literal>2003</>
</entry>
</row>
......@@ -3276,7 +3276,7 @@ ORDER BY c.ordinal_position;
<entry><type>character_data</type></entry>
<entry>
The standard conformance level for the language binding. For
ISO 9075:1999 this is always <literal>CORE</literal>.
ISO 9075:2003 this is always <literal>CORE</literal>.
</entry>
</row>
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/intro.sgml,v 1.25 2004/08/08 01:52:14 momjian Exp $
$PostgreSQL: pgsql/doc/src/sgml/intro.sgml,v 1.26 2004/11/27 21:27:06 petere Exp $
-->
<preface id="preface">
......@@ -98,8 +98,8 @@ $PostgreSQL: pgsql/doc/src/sgml/intro.sgml,v 1.25 2004/08/08 01:52:14 momjian Ex
<para>
<productname>PostgreSQL</productname> is an open-source descendant
of this original Berkeley code. It supports SQL92, SQL99 and
SQL2003 and offers many modern features:
of this original Berkeley code. It supports a large part of the SQL:2003
standard and offers many modern features:
<itemizedlist spacing="compact">
<listitem>
......
<!-- $PostgreSQL: pgsql/doc/src/sgml/keywords.sgml,v 2.14 2004/10/18 17:09:03 petere Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/keywords.sgml,v 2.15 2004/11/27 21:27:06 petere Exp $ -->
<appendix id="sql-keywords-appendix">
<title><acronym>SQL</acronym> Key Words</title>
......@@ -86,9 +86,9 @@
<row>
<entry>Key Word</entry>
<entry><productname>PostgreSQL</productname></entry>
<entry><acronym>SQL</acronym> 2003</entry>
<entry><acronym>SQL</acronym> 1999</entry>
<entry><acronym>SQL</acronym> 1992</entry>
<entry>SQL:2003</entry>
<entry>SQL:1999</entry>
<entry>SQL-92</entry>
</row>
</thead>
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/alter_domain.sgml,v 1.12 2004/03/23 13:21:41 neilc Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/alter_domain.sgml,v 1.13 2004/11/27 21:27:07 petere Exp $
PostgreSQL documentation
-->
......@@ -203,7 +203,7 @@ ALTER DOMAIN zipcode DROP CONSTRAINT zipchk;
<title>Compatibility</title>
<para>
The <command>ALTER DOMAIN</command> statement is compatible with SQL99,
The <command>ALTER DOMAIN</command> statement is compatible with SQL:1999,
except for the <literal>OWNER</> variant, which is a
<productname>PostgreSQL</productname> extension.
</para>
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/alter_sequence.sgml,v 1.8 2004/08/24 00:06:51 neilc Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/alter_sequence.sgml,v 1.9 2004/11/27 21:27:07 petere Exp $
PostgreSQL documentation
-->
......@@ -190,22 +190,11 @@ ALTER SEQUENCE serial RESTART WITH 105;
<refsect1>
<title>
Compatibility
</title>
<title>Compatibility</title>
<refsect2>
<title>
SQL99
</title>
<para>
<command>ALTER SEQUENCE</command> is a <productname>PostgreSQL</productname>
language extension.
There is no <command>ALTER SEQUENCE</command> statement
in <acronym>SQL99</acronym>.
</para>
</refsect2>
<para>
<command>ALTER SEQUENCE</command> conforms with <acronym>SQL:2003</acronym>.
</para>
</refsect1>
</refentry>
......
<!-- $PostgreSQL: pgsql/doc/src/sgml/ref/create_cast.sgml,v 1.18 2004/09/17 02:06:33 neilc Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/ref/create_cast.sgml,v 1.19 2004/11/27 21:27:07 petere Exp $ -->
<refentry id="SQL-CREATECAST">
<refmeta>
......@@ -298,8 +298,8 @@ CREATE CAST (text AS int4) WITH FUNCTION int4(text);
<title>Compatibility</title>
<para>
The <command>CREATE CAST</command> command conforms to SQL99,
except that SQL99 does not make provisions for binary-compatible
The <command>CREATE CAST</command> command conforms to SQL:1999,
except that SQL:1999 does not make provisions for binary-compatible
types or extra arguments to implementation functions.
<literal>AS IMPLICIT</> is a <productname>PostgreSQL</productname>
extension, too.
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/create_function.sgml,v 1.62 2004/10/01 02:00:44 neilc Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/create_function.sgml,v 1.63 2004/11/27 21:27:07 petere Exp $
-->
<refentry id="SQL-CREATEFUNCTION">
......@@ -419,7 +419,7 @@ CREATE OR REPLACE FUNCTION increment(i integer) RETURNS integer AS '
<title>Compatibility</title>
<para>
A <command>CREATE FUNCTION</command> command is defined in SQL99.
A <command>CREATE FUNCTION</command> command is defined in SQL:1999 and later.
The <productname>PostgreSQL</productname> version is similar but
not fully compatible. The attributes are not portable, neither are the
different available languages.
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/create_sequence.sgml,v 1.41 2004/07/12 05:36:56 tgl Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/create_sequence.sgml,v 1.42 2004/11/27 21:27:07 petere Exp $
PostgreSQL documentation
-->
......@@ -297,10 +297,12 @@ END;
<title>Compatibility</title>
<para>
<command>CREATE SEQUENCE</command> is a
<productname>PostgreSQL</productname> language extension. There is
no <command>CREATE SEQUENCE</command> statement in the SQL
standard.
<command>CREATE SEQUENCE</command> is is specified in <acronym>SQL:2003</acronym>.
<productname>PostgreSQL</productname> conforms with the standard, with the following exceptions:
<itemizedlist>
<listitem><para>The standard's <literal>AS &lt;data type&gt;</literal> expression is not supported.</para></listitem>
<listitem><para>Obtaining the next value is done using the <function>nextval()</> function instead of the standard's <command>NEXT VALUE FOR</command> expression.</para></listitem>
</itemizedlist>
</para>
</refsect1>
</refentry>
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/create_table.sgml,v 1.86 2004/11/05 19:15:51 tgl Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/create_table.sgml,v 1.87 2004/11/27 21:27:07 petere Exp $
PostgreSQL documentation
-->
......@@ -865,8 +865,8 @@ CREATE TABLE cinemas (
<title id="SQL-CREATETABLE-compatibility-title">Compatibility</title>
<para>
The <command>CREATE TABLE</command> command conforms to SQL92
and to a subset of SQL99, with exceptions listed below.
The <command>CREATE TABLE</command> command conforms to SQL-92 and
to a subset of SQL:1999, with exceptions listed below.
</para>
<refsect2>
......@@ -943,10 +943,11 @@ CREATE TABLE cinemas (
<para>
Multiple inheritance via the <literal>INHERITS</literal> clause is
a <productname>PostgreSQL</productname> language extension. SQL99
(but not SQL92) defines single inheritance using a different
syntax and different semantics. SQL99-style inheritance is not
yet supported by <productname>PostgreSQL</productname>.
a <productname>PostgreSQL</productname> language extension.
SQL:1999 (but not SQL-92) defines single inheritance using a
different syntax and different semantics. SQL:1999-style
inheritance is not yet supported by
<productname>PostgreSQL</productname>.
</para>
</refsect2>
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/create_table_as.sgml,v 1.24 2004/09/23 03:43:57 neilc Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/create_table_as.sgml,v 1.25 2004/11/27 21:27:07 petere Exp $
PostgreSQL documentation
-->
......@@ -166,9 +166,9 @@ CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE <replaceable>table_name
<title>Compatibility</title>
<para>
<command>CREATE TABLE AS</command> is specified by the SQL2003
<command>CREATE TABLE AS</command> is specified by the SQL:2003
standard. There are some small differences between the definition
of the command in SQL2003 and its implementation in
of the command in SQL:2003 and its implementation in
<productname>PostgreSQL</>:
<itemizedlist spacing="compact">
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/create_trigger.sgml,v 1.39 2003/12/01 17:58:27 tgl Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/create_trigger.sgml,v 1.40 2004/11/27 21:27:07 petere Exp $
PostgreSQL documentation
-->
......@@ -208,20 +208,20 @@ CREATE TRIGGER <replaceable class="PARAMETER">name</replaceable> { BEFORE | AFTE
<para>
The <command>CREATE TRIGGER</command> statement in
<productname>PostgreSQL</productname> implements a subset of the
SQL99 standard. (There are no provisions for triggers in SQL92.)
SQL:1999 standard. (There are no provisions for triggers in SQL-92.)
The following functionality is missing:
<itemizedlist>
<listitem>
<para>
SQL99 allows triggers to fire on updates to specific columns
SQL:1999 allows triggers to fire on updates to specific columns
(e.g., <literal>AFTER UPDATE OF col1, col2</literal>).
</para>
</listitem>
<listitem>
<para>
SQL99 allows you to define aliases for the <quote>old</quote>
SQL:1999 allows you to define aliases for the <quote>old</quote>
and <quote>new</quote> rows or tables for use in the definition
of the triggered action (e.g., <literal>CREATE TRIGGER ... ON
tablename REFERENCING OLD ROW AS somename NEW ROW AS othername
......@@ -235,7 +235,7 @@ CREATE TRIGGER <replaceable class="PARAMETER">name</replaceable> { BEFORE | AFTE
<listitem>
<para>
<productname>PostgreSQL</productname> only allows the execution
of a user-defined function for the triggered action. SQL99
of a user-defined function for the triggered action. SQL:1999
allows the execution of a number of other SQL commands, such as
<command>CREATE TABLE</command> as triggered action. This
limitation is not hard to work around by creating a user-defined
......@@ -246,7 +246,7 @@ CREATE TRIGGER <replaceable class="PARAMETER">name</replaceable> { BEFORE | AFTE
</para>
<para>
SQL99 specifies that multiple triggers should be fired in
SQL:1999 specifies that multiple triggers should be fired in
time-of-creation order. <productname>PostgreSQL</productname> uses
name order, which was judged more convenient to work with.
</para>
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/create_type.sgml,v 1.52 2004/06/25 21:55:50 tgl Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/create_type.sgml,v 1.53 2004/11/27 21:27:07 petere Exp $
PostgreSQL documentation
-->
......@@ -535,7 +535,7 @@ CREATE TABLE big_objs (
<para>
This <command>CREATE TYPE</command> command is a
<productname>PostgreSQL</productname> extension. There is a
<command>CREATE TYPE</command> statement in SQL99 that is rather
<command>CREATE TYPE</command> statement in SQL:1999 and later that is rather
different in detail.
</para>
</refsect1>
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/drop_sequence.sgml,v 1.20 2003/11/29 19:51:38 pgsql Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/drop_sequence.sgml,v 1.21 2004/11/27 21:27:07 petere Exp $
PostgreSQL documentation
-->
......@@ -82,7 +82,7 @@ DROP SEQUENCE serial;
<title>Compatibility</title>
<para>
There is no <command>DROP SEQUENCE</command> statement in the SQL standard.
<command>DROP SEQUENCE</command> conforms with <acronym>SQL:2003</acronym>.
</para>
</refsect1>
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/release_savepoint.sgml,v 1.2 2004/08/24 00:06:51 neilc Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/release_savepoint.sgml,v 1.3 2004/11/27 21:27:07 petere Exp $
PostgreSQL documentation
-->
......@@ -108,11 +108,10 @@ COMMIT;
<title>Compatibility</title>
<para>
The SQL2003 standard specifies that the keyword
<literal>SAVEPOINT</literal> is mandatory.
<productname>PostgreSQL</productname> allows the
<literal>SAVEPOINT</literal> keyword to be omitted. Otherwise, this
command is fully conforming.
This command conforms to the SQL:2003 standard. The standard
specifies that the key word <literal>SAVEPOINT</literal> is
mandatory, but <productname>PostgreSQL</productname> allows it to
be omitted.
</para>
</refsect1>
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/rollback_to.sgml,v 1.4 2004/09/20 00:04:19 neilc Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/rollback_to.sgml,v 1.5 2004/11/27 21:27:07 petere Exp $
PostgreSQL documentation
-->
......@@ -128,15 +128,14 @@ COMMIT;
<title>Compatibility</title>
<para>
The SQL2003 standard specifies that the keyword
<literal>SAVEPOINT</> is mandatory. <productname>PostgreSQL</> and
<productname>Oracle</> allow the <literal>SAVEPOINT</literal>
keyword to be omitted. SQL2003 allows only <literal>WORK</>, not
<literal>TRANSACTION</>, as a noise word after
<literal>ROLLBACK</>. Also, SQL2003 has an optional clause
The SQL:2003 standard specifies that the key word
<literal>SAVEPOINT</> is mandatory, but <productname>PostgreSQL</>
and <productname>Oracle</> allow it to be omitted. SQL:2003 allows
only <literal>WORK</>, not <literal>TRANSACTION</>, as a noise word
after <literal>ROLLBACK</>. Also, SQL:2003 has an optional clause
<literal>AND [ NO ] CHAIN</> which is not currently supported by
<productname>PostgreSQL</>. Otherwise, this command is fully
conforming.
<productname>PostgreSQL</>. Otherwise, this command conforms to
the SQL standard.
</para>
</refsect1>
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/select.sgml,v 1.77 2004/05/16 23:22:08 neilc Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/select.sgml,v 1.78 2004/11/27 21:27:07 petere Exp $
PostgreSQL documentation
-->
......@@ -1045,7 +1045,7 @@ SELECT distributors.* FROM distributors d, distributors distributors;
<title>Namespace Available to <literal>GROUP BY</literal> and <literal>ORDER BY</literal></title>
<para>
In the SQL92 standard, an <literal>ORDER BY</literal> clause may
In the SQL-92 standard, an <literal>ORDER BY</literal> clause may
only use result column names or numbers, while a <literal>GROUP
BY</literal> clause may only use expressions based on input column
names. <productname>PostgreSQL</productname> extends each of
......@@ -1058,11 +1058,11 @@ SELECT distributors.* FROM distributors d, distributors distributors;
</para>
<para>
SQL99 uses a slightly different definition which is not entirely upward
SQL:1999 uses a slightly different definition which is not entirely upward
compatible
with SQL92. In most cases, however, <productname>PostgreSQL</productname>
with SQL-92. In most cases, however, <productname>PostgreSQL</productname>
will interpret an <literal>ORDER BY</literal> or <literal>GROUP
BY</literal> expression the same way SQL99 does.
BY</literal> expression the same way SQL:1999 does.
</para>
</refsect2>
......
<!--
$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.312 2004/11/22 07:30:22 neilc Exp $
$PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.313 2004/11/27 21:27:06 petere Exp $
-->
<appendix id="release">
......@@ -1514,13 +1514,13 @@ $PostgreSQL: pgsql/doc/src/sgml/release.sgml,v 1.312 2004/11/22 07:30:22 neilc E
Change <function>ln()</>, <function>log()</>,
<function>power()</>, and <function>sqrt()</> to emit the correct
<literal>SQLSTATE</> error codes for certain error conditions, as
specified by SQL2003 (Neil)
specified by SQL:2003 (Neil)
</para>
</listitem>
<listitem>
<para>
Add <function>width_bucket()</> function as defined by SQL2003 (Neil)
Add <function>width_bucket()</> function as defined by SQL:2003 (Neil)
</para>
</listitem>
......@@ -3706,7 +3706,7 @@ DROP SCHEMA information_schema CASCADE;
<itemizedlist>
<listitem>
<para>Make <command>CREATE SEQUENCE</command> grammar more conforming to SQL 2003 (Neil)</para>
<para>Make <command>CREATE SEQUENCE</command> grammar more conforming to SQL:2003 (Neil)</para>
</listitem>
<listitem>
......@@ -3781,7 +3781,7 @@ DROP SCHEMA information_schema CASCADE;
<listitem>
<para>
Allow copying table schema using <literal>LIKE
<replaceable>subtable</replaceable></literal>, also SQL 2003
<replaceable>subtable</replaceable></literal>, also SQL:2003
feature <literal>INCLUDING DEFAULTS</literal> (Rod)
</para>
</listitem>
......
......@@ -4,7 +4,7 @@
*
* Copyright 2003, PostgreSQL Global Development Group
*
* $PostgreSQL: pgsql/src/backend/catalog/information_schema.sql,v 1.24 2004/06/22 22:30:32 tgl Exp $
* $PostgreSQL: pgsql/src/backend/catalog/information_schema.sql,v 1.25 2004/11/27 21:27:08 petere Exp $
*/
/*
......@@ -1181,8 +1181,8 @@ CREATE TABLE sql_languages (
sql_language_programming_language character_data
) WITHOUT OIDS;
INSERT INTO sql_languages VALUES ('ISO 9075', '1999', 'CORE', NULL, NULL, 'DIRECT', NULL);
INSERT INTO sql_languages VALUES ('ISO 9075', '1999', 'CORE', NULL, NULL, 'EMBEDDED', 'C');
INSERT INTO sql_languages VALUES ('ISO 9075', '2003', 'CORE', NULL, NULL, 'DIRECT', NULL);
INSERT INTO sql_languages VALUES ('ISO 9075', '2003', 'CORE', NULL, NULL, 'EMBEDDED', 'C');
GRANT SELECT ON sql_languages TO PUBLIC;
......@@ -1209,7 +1209,7 @@ INSERT INTO sql_packages VALUES ('PKG005', 'CLI', 'NO', NULL, 'ODBC is similar.'
INSERT INTO sql_packages VALUES ('PKG006', 'Basic object support', 'NO', NULL, '');
INSERT INTO sql_packages VALUES ('PKG007', 'Enhanced object support', 'NO', NULL, '');
INSERT INTO sql_packages VALUES ('PKG008', 'Active database', 'NO', NULL, '');
INSERT INTO sql_packages VALUES ('PKG009', 'SQL/MM support', 'NO', NULL, '');
INSERT INTO sql_packages VALUES ('PKG010', 'OLAP', 'NO', NULL, 'NO');
GRANT SELECT ON sql_packages TO PUBLIC;
......
......@@ -53,21 +53,16 @@ F701 Enhanced integrity management
F812 Core
S011 Core
S023 Basic object support
S023 SQL/MM support
S024 Enhanced object support
S024 SQL/MM support
S041 Basic object support
S043 Enhanced object support
S051 Basic object support
S071 Enhanced object support
S081 Enhanced object support
S091 SQL/MM support
S092 SQL/MM support
S111 Enhanced object support
S151 Basic object support
S161 Enhanced object support
S211 Enhanced object support
S211 SQL/MM support
S231 Enhanced object support
S241 Enhanced object support
T041 Basic object support
......@@ -78,5 +73,4 @@ T211 Active database
T212 Enhanced integrity management
T321 Core
T322 PSM
T322 SQL/MM support
T431 OLAP facilities
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment