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"> <sect1 id="arrays">
<title>Arrays</title> <title>Arrays</title>
...@@ -63,8 +63,10 @@ CREATE TABLE tictactoe ( ...@@ -63,8 +63,10 @@ CREATE TABLE tictactoe (
</para> </para>
<para> <para>
An alternative, SQL99-standard syntax may be used for one-dimensional arrays. An alternative syntax, which conforms to the SQL:1999 standard, may
<structfield>pay_by_quarter</structfield> could have been defined as: be used for one-dimensional arrays.
<structfield>pay_by_quarter</structfield> could have been defined
as:
<programlisting> <programlisting>
pay_by_quarter integer ARRAY[4], pay_by_quarter integer ARRAY[4],
</programlisting> </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"> <chapter id="datatype">
...@@ -1744,9 +1744,20 @@ January 8 04:05:06 1999 PST ...@@ -1744,9 +1744,20 @@ January 8 04:05:06 1999 PST
</para> </para>
<para> <para>
For <type>timestamp [without time zone]</type>, any explicit time The <acronym>SQL</acronym> standard differentiates <type>timestamp without time zone</type>
zone specified in the input is silently ignored. That is, the and <type>timestamp with time zone</type> literals by the existence of a
resulting date/time value is derived from the explicit date/time <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. fields in the input value, and is not adjusted for time zone.
</para> </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"> <chapter id="ddl">
<title>Data Definition</title> <title>Data Definition</title>
...@@ -1069,7 +1069,7 @@ SELECT name, altitude ...@@ -1069,7 +1069,7 @@ SELECT name, altitude
<para> <para>
In previous versions of <productname>PostgreSQL</productname>, the In previous versions of <productname>PostgreSQL</productname>, the
default behavior was not to include child tables in queries. This was 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 standard. Under the old syntax, to get the sub-tables you append
<literal>*</literal> to the table name. <literal>*</literal> to the table name.
For example 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"> <appendix id="errcodes-appendix">
<title><productname>PostgreSQL</productname> Error Codes</title> <title><productname>PostgreSQL</productname> Error Codes</title>
...@@ -125,7 +125,7 @@ ...@@ -125,7 +125,7 @@
<row> <row>
<entry>Class 02</entry> <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>
<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"> <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 ...@@ -7,68 +7,96 @@ $PostgreSQL: pgsql/doc/src/sgml/features.sgml,v 2.22 2003/11/29 19:51:37 pgsql E
<para> <para>
This section attempts to outline to what extent This section attempts to outline to what extent
<productname>PostgreSQL</productname> conforms to the SQL standard. <productname>PostgreSQL</productname> conforms to the current SQL
Full compliance to the standard or a complete statement about the standard. The following information is not a full statement of
compliance to the standard is complicated and not particularly conformance, but it presents the main topics in as much detail as is
useful, so this section can only give an overview. both reasonable and useful for users.
</para> </para>
<para> <para>
The formal name of the SQL standard is ISO/IEC 9075 <quote>Database The formal name of the SQL standard is ISO/IEC 9075 <quote>Database
Language SQL</quote>. A revised version of the standard is released Language SQL</quote>. A revised version of the standard is released
from time to time; the most recent one appearing in 1999. That from time to time; the most recent one appearing in late 2003. That
version is referred to as ISO/IEC 9075:1999, or informally as SQL99. version is referred to as ISO/IEC 9075:2003, or simply as SQL:2003.
The version prior to that was SQL92. The versions prior to that were SQL:1999 and SQL-92. Each version
<productname>PostgreSQL</productname> development tends to aim for 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 conformance with the latest official version of the standard where
such conformance does not contradict traditional features or common such conformance does not contradict traditional features or common
sense. At the time of this writing, balloting is under way for a sense. The PostgreSQL project was not represented in the ISO/IEC
new revision of the standard, which, if approved, will eventually 9075 Working Group during the preparation of SQL:2003. Even so,
become the conformance target for future many of the features required by SQL:2003 are already supported,
<productname>PostgreSQL</productname> development. though sometimes with slightly differing syntax or function.
Further moves towards conformance may be expected in later releases.
</para> </para>
<para> <para>
<acronym>SQL92</acronym> defined three feature sets for conformance: <acronym>SQL-92</acronym> defined three feature sets for
Entry, Intermediate, and Full. Most database management systems claiming conformance: Entry, Intermediate, and Full. Most database
<acronym>SQL</acronym> standard conformance were conforming at only management systems claiming <acronym>SQL</acronym> standard
the Entry level, since the entire set of features in the conformance were conforming at only the Entry level, since the
Intermediate and Full levels was either too voluminous or in entire set of features in the Intermediate and Full levels was
conflict with legacy behaviors. either too voluminous or in conflict with legacy behaviors.
</para> </para>
<para> <para>
<acronym>SQL99</acronym> defines a large set of individual features Starting with <acronym>SQL:1999</acronym>, the SQL standard defines
rather than the ineffectively broad three levels found in a large set of individual features rather than the ineffectively
<acronym>SQL92</acronym>. A large subset of these features broad three levels found in <acronym>SQL-92</acronym>. A large
represents the <quote>core</quote> features, which every conforming subset of these features represents the <quote>Core</quote>
SQL implementation must supply. The rest of the features are purely features, which every conforming SQL implementation must supply.
optional. Some optional features are grouped together to form The rest of the features are purely optional. Some optional
<quote>packages</quote>, which SQL implementations can claim features are grouped together to form <quote>packages</quote>, which
conformance to, thus claiming conformance to particular groups of SQL implementations can claim conformance to, thus claiming
features. conformance to particular groups of features.
</para> </para>
<para> <para>
The <acronym>SQL99</acronym> standard is also split into 5 parts: The <acronym>SQL:2003</acronym> standard is also split into a number
Framework, Foundation, Call Level Interface, Persistent Stored of parts. Each is known by a shorthand name. Note that these parts
Modules, and Host Language Bindings. are not consecutively numbered.
<productname>PostgreSQL</productname> only covers parts 1, 2, and 5.
<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>
<productname>PostgreSQL</productname> covers parts 1, 2, and 11.
Part 3 is similar to the ODBC interface, and part 4 is similar to Part 3 is similar to the ODBC interface, and part 4 is similar to
the <application>PL/pgSQL</application> programming language, but 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>
<para> <para>
In the following two sections, we provide a list of those features In the following two sections, we provide a list of those features
that <productname>PostgreSQL</productname> supports, followed by a that <productname>PostgreSQL</productname> supports, followed by a
list of the features defined in SQL99 which are not yet supported in list of the features defined in <acronym>SQL:2003</acronym> which
<productname>PostgreSQL</productname>. Both of these lists are are not yet supported in <productname>PostgreSQL</productname>.
approximate: There may be minor details that are nonconforming for a Both of these lists are approximate: There may be minor details that
feature that is listed as supported, and large parts of an are nonconforming for a feature that is listed as supported, and
unsupported feature may in fact be implemented. The main body of large parts of an unsupported feature may in fact be implemented.
the documentation always contains the most accurate information The main body of the documentation always contains the most accurate
about what does and does not work. information about what does and does not work.
</para> </para>
<note> <note>
...@@ -79,7 +107,7 @@ $PostgreSQL: pgsql/doc/src/sgml/features.sgml,v 2.22 2003/11/29 19:51:37 pgsql E ...@@ -79,7 +107,7 @@ $PostgreSQL: pgsql/doc/src/sgml/features.sgml,v 2.22 2003/11/29 19:51:37 pgsql E
</para> </para>
</note> </note>
<sect1 id="features-sql99"> <sect1 id="features-sql-standard">
<title>Supported Features</title> <title>Supported Features</title>
<para> <para>
...@@ -101,11 +129,11 @@ $PostgreSQL: pgsql/doc/src/sgml/features.sgml,v 2.22 2003/11/29 19:51:37 pgsql E ...@@ -101,11 +129,11 @@ $PostgreSQL: pgsql/doc/src/sgml/features.sgml,v 2.22 2003/11/29 19:51:37 pgsql E
</para> </para>
</sect1> </sect1>
<sect1 id="unsupported-features-sql99"> <sect1 id="unsupported-features-sql-standard">
<title>Unsupported Features</title> <title>Unsupported Features</title>
<para> <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 implemented in this release of
<productname>PostgreSQL</productname>. In a few cases, equivalent <productname>PostgreSQL</productname>. In a few cases, equivalent
functionality is available. 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 PostgreSQL documentation
--> -->
...@@ -2479,16 +2479,15 @@ cast(-44 as bit(12)) <lineannotation>111111010100</lineannotation> ...@@ -2479,16 +2479,15 @@ cast(-44 as bit(12)) <lineannotation>111111010100</lineannotation>
</indexterm> </indexterm>
<para> <para>
There are three separate approaches to pattern matching provided by There are three separate approaches to pattern matching provided
<productname>PostgreSQL</productname>: the traditional by <productname>PostgreSQL</productname>: the traditional
<acronym>SQL</acronym> <acronym>SQL</acronym> <function>LIKE</function> operator, the
<function>LIKE</function> operator, the more recent more recent <literal>>SIMILAR TO</literal> operator (since
<acronym>SQL99</acronym> SQL:1999), and <acronym>POSIX</acronym>-style regular expressions.
<function>SIMILAR TO</function> operator, and
<acronym>POSIX</acronym>-style regular expressions.
Additionally, a pattern matching function, Additionally, a pattern matching function,
<function>substring</function>, is available, using either <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> </para>
<tip> <tip>
...@@ -2595,11 +2594,10 @@ cast(-44 as bit(12)) <lineannotation>111111010100</lineannotation> ...@@ -2595,11 +2594,10 @@ cast(-44 as bit(12)) <lineannotation>111111010100</lineannotation>
</sect2> </sect2>
<sect2 id="functions-sql99-regexp"> <sect2 id="functions-similarto-regexp">
<title><function>SIMILAR TO</function> and <acronym>SQL99</acronym> <title><function>SIMILAR TO</function> Regular Expressions</title>
Regular Expressions</title>
<indexterm zone="functions-sql99-regexp"> <indexterm zone="functions-similarto-regexp">
<primary>regular expression</primary> <primary>regular expression</primary>
<!-- <seealso>pattern matching</seealso> breaks index build --> <!-- <seealso>pattern matching</seealso> breaks index build -->
</indexterm> </indexterm>
...@@ -2618,14 +2616,13 @@ cast(-44 as bit(12)) <lineannotation>111111010100</lineannotation> ...@@ -2618,14 +2616,13 @@ cast(-44 as bit(12)) <lineannotation>111111010100</lineannotation>
</synopsis> </synopsis>
<para> <para>
The <function>SIMILAR TO</function> operator returns true or false The <function>SIMILAR TO</function> operator returns true or
depending on whether its pattern matches the given string. It is false depending on whether its pattern matches the given string.
much like <function>LIKE</function>, except that it interprets the It is much like <function>LIKE</function>, except that it
pattern using <acronym>SQL99</acronym>'s definition of a regular interprets the pattern using the SQL standard's definition of a
expression. regular expression. SQL regular expressions are a curious cross
<acronym>SQL99</acronym>'s regular expressions are a curious cross between <function>LIKE</function> notation and common regular
between <function>LIKE</function> notation and common regular expression expression notation.
notation.
</para> </para>
<para> <para>
...@@ -2704,7 +2701,7 @@ cast(-44 as bit(12)) <lineannotation>111111010100</lineannotation> ...@@ -2704,7 +2701,7 @@ cast(-44 as bit(12)) <lineannotation>111111010100</lineannotation>
<function>substring(<parameter>string</parameter> from <function>substring(<parameter>string</parameter> from
<replaceable>pattern</replaceable> for <replaceable>pattern</replaceable> for
<replaceable>escape-character</replaceable>)</function>, provides <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 regular expression pattern. As with <literal>SIMILAR TO</>, the
specified pattern must match to the entire data string, else the specified pattern must match to the entire data string, else the
function fails and returns null. To indicate the part of 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"> <chapter id="information-schema">
<title>The Information Schema</title> <title>The Information Schema</title>
...@@ -3267,7 +3267,7 @@ ORDER BY c.ordinal_position; ...@@ -3267,7 +3267,7 @@ ORDER BY c.ordinal_position;
<entry> <entry>
The year the standard referenced in The year the standard referenced in
<literal>sql_language_source</literal> was approved; currently <literal>sql_language_source</literal> was approved; currently
<literal>1999</> <literal>2003</>
</entry> </entry>
</row> </row>
...@@ -3276,7 +3276,7 @@ ORDER BY c.ordinal_position; ...@@ -3276,7 +3276,7 @@ ORDER BY c.ordinal_position;
<entry><type>character_data</type></entry> <entry><type>character_data</type></entry>
<entry> <entry>
The standard conformance level for the language binding. For 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> </entry>
</row> </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"> <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 ...@@ -98,8 +98,8 @@ $PostgreSQL: pgsql/doc/src/sgml/intro.sgml,v 1.25 2004/08/08 01:52:14 momjian Ex
<para> <para>
<productname>PostgreSQL</productname> is an open-source descendant <productname>PostgreSQL</productname> is an open-source descendant
of this original Berkeley code. It supports SQL92, SQL99 and of this original Berkeley code. It supports a large part of the SQL:2003
SQL2003 and offers many modern features: standard and offers many modern features:
<itemizedlist spacing="compact"> <itemizedlist spacing="compact">
<listitem> <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"> <appendix id="sql-keywords-appendix">
<title><acronym>SQL</acronym> Key Words</title> <title><acronym>SQL</acronym> Key Words</title>
...@@ -86,9 +86,9 @@ ...@@ -86,9 +86,9 @@
<row> <row>
<entry>Key Word</entry> <entry>Key Word</entry>
<entry><productname>PostgreSQL</productname></entry> <entry><productname>PostgreSQL</productname></entry>
<entry><acronym>SQL</acronym> 2003</entry> <entry>SQL:2003</entry>
<entry><acronym>SQL</acronym> 1999</entry> <entry>SQL:1999</entry>
<entry><acronym>SQL</acronym> 1992</entry> <entry>SQL-92</entry>
</row> </row>
</thead> </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 PostgreSQL documentation
--> -->
...@@ -203,7 +203,7 @@ ALTER DOMAIN zipcode DROP CONSTRAINT zipchk; ...@@ -203,7 +203,7 @@ ALTER DOMAIN zipcode DROP CONSTRAINT zipchk;
<title>Compatibility</title> <title>Compatibility</title>
<para> <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 except for the <literal>OWNER</> variant, which is a
<productname>PostgreSQL</productname> extension. <productname>PostgreSQL</productname> extension.
</para> </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 PostgreSQL documentation
--> -->
...@@ -190,22 +190,11 @@ ALTER SEQUENCE serial RESTART WITH 105; ...@@ -190,22 +190,11 @@ ALTER SEQUENCE serial RESTART WITH 105;
<refsect1> <refsect1>
<title> <title>Compatibility</title>
Compatibility
</title>
<refsect2>
<title>
SQL99
</title>
<para> <para>
<command>ALTER SEQUENCE</command> is a <productname>PostgreSQL</productname> <command>ALTER SEQUENCE</command> conforms with <acronym>SQL:2003</acronym>.
language extension.
There is no <command>ALTER SEQUENCE</command> statement
in <acronym>SQL99</acronym>.
</para> </para>
</refsect2>
</refsect1> </refsect1>
</refentry> </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"> <refentry id="SQL-CREATECAST">
<refmeta> <refmeta>
...@@ -298,8 +298,8 @@ CREATE CAST (text AS int4) WITH FUNCTION int4(text); ...@@ -298,8 +298,8 @@ CREATE CAST (text AS int4) WITH FUNCTION int4(text);
<title>Compatibility</title> <title>Compatibility</title>
<para> <para>
The <command>CREATE CAST</command> command conforms to SQL99, The <command>CREATE CAST</command> command conforms to SQL:1999,
except that SQL99 does not make provisions for binary-compatible except that SQL:1999 does not make provisions for binary-compatible
types or extra arguments to implementation functions. types or extra arguments to implementation functions.
<literal>AS IMPLICIT</> is a <productname>PostgreSQL</productname> <literal>AS IMPLICIT</> is a <productname>PostgreSQL</productname>
extension, too. 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"> <refentry id="SQL-CREATEFUNCTION">
...@@ -419,7 +419,7 @@ CREATE OR REPLACE FUNCTION increment(i integer) RETURNS integer AS ' ...@@ -419,7 +419,7 @@ CREATE OR REPLACE FUNCTION increment(i integer) RETURNS integer AS '
<title>Compatibility</title> <title>Compatibility</title>
<para> <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 The <productname>PostgreSQL</productname> version is similar but
not fully compatible. The attributes are not portable, neither are the not fully compatible. The attributes are not portable, neither are the
different available languages. 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 PostgreSQL documentation
--> -->
...@@ -297,10 +297,12 @@ END; ...@@ -297,10 +297,12 @@ END;
<title>Compatibility</title> <title>Compatibility</title>
<para> <para>
<command>CREATE SEQUENCE</command> is a <command>CREATE SEQUENCE</command> is is specified in <acronym>SQL:2003</acronym>.
<productname>PostgreSQL</productname> language extension. There is <productname>PostgreSQL</productname> conforms with the standard, with the following exceptions:
no <command>CREATE SEQUENCE</command> statement in the SQL <itemizedlist>
standard. <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> </para>
</refsect1> </refsect1>
</refentry> </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 PostgreSQL documentation
--> -->
...@@ -865,8 +865,8 @@ CREATE TABLE cinemas ( ...@@ -865,8 +865,8 @@ CREATE TABLE cinemas (
<title id="SQL-CREATETABLE-compatibility-title">Compatibility</title> <title id="SQL-CREATETABLE-compatibility-title">Compatibility</title>
<para> <para>
The <command>CREATE TABLE</command> command conforms to SQL92 The <command>CREATE TABLE</command> command conforms to SQL-92 and
and to a subset of SQL99, with exceptions listed below. to a subset of SQL:1999, with exceptions listed below.
</para> </para>
<refsect2> <refsect2>
...@@ -943,10 +943,11 @@ CREATE TABLE cinemas ( ...@@ -943,10 +943,11 @@ CREATE TABLE cinemas (
<para> <para>
Multiple inheritance via the <literal>INHERITS</literal> clause is Multiple inheritance via the <literal>INHERITS</literal> clause is
a <productname>PostgreSQL</productname> language extension. SQL99 a <productname>PostgreSQL</productname> language extension.
(but not SQL92) defines single inheritance using a different SQL:1999 (but not SQL-92) defines single inheritance using a
syntax and different semantics. SQL99-style inheritance is not different syntax and different semantics. SQL:1999-style
yet supported by <productname>PostgreSQL</productname>. inheritance is not yet supported by
<productname>PostgreSQL</productname>.
</para> </para>
</refsect2> </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 PostgreSQL documentation
--> -->
...@@ -166,9 +166,9 @@ CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE <replaceable>table_name ...@@ -166,9 +166,9 @@ CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE <replaceable>table_name
<title>Compatibility</title> <title>Compatibility</title>
<para> <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 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</>: <productname>PostgreSQL</>:
<itemizedlist spacing="compact"> <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 PostgreSQL documentation
--> -->
...@@ -208,20 +208,20 @@ CREATE TRIGGER <replaceable class="PARAMETER">name</replaceable> { BEFORE | AFTE ...@@ -208,20 +208,20 @@ CREATE TRIGGER <replaceable class="PARAMETER">name</replaceable> { BEFORE | AFTE
<para> <para>
The <command>CREATE TRIGGER</command> statement in The <command>CREATE TRIGGER</command> statement in
<productname>PostgreSQL</productname> implements a subset of the <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: The following functionality is missing:
<itemizedlist> <itemizedlist>
<listitem> <listitem>
<para> <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>). (e.g., <literal>AFTER UPDATE OF col1, col2</literal>).
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <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 and <quote>new</quote> rows or tables for use in the definition
of the triggered action (e.g., <literal>CREATE TRIGGER ... ON of the triggered action (e.g., <literal>CREATE TRIGGER ... ON
tablename REFERENCING OLD ROW AS somename NEW ROW AS othername tablename REFERENCING OLD ROW AS somename NEW ROW AS othername
...@@ -235,7 +235,7 @@ CREATE TRIGGER <replaceable class="PARAMETER">name</replaceable> { BEFORE | AFTE ...@@ -235,7 +235,7 @@ CREATE TRIGGER <replaceable class="PARAMETER">name</replaceable> { BEFORE | AFTE
<listitem> <listitem>
<para> <para>
<productname>PostgreSQL</productname> only allows the execution <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 allows the execution of a number of other SQL commands, such as
<command>CREATE TABLE</command> as triggered action. This <command>CREATE TABLE</command> as triggered action. This
limitation is not hard to work around by creating a user-defined 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 ...@@ -246,7 +246,7 @@ CREATE TRIGGER <replaceable class="PARAMETER">name</replaceable> { BEFORE | AFTE
</para> </para>
<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 time-of-creation order. <productname>PostgreSQL</productname> uses
name order, which was judged more convenient to work with. name order, which was judged more convenient to work with.
</para> </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 PostgreSQL documentation
--> -->
...@@ -535,7 +535,7 @@ CREATE TABLE big_objs ( ...@@ -535,7 +535,7 @@ CREATE TABLE big_objs (
<para> <para>
This <command>CREATE TYPE</command> command is a This <command>CREATE TYPE</command> command is a
<productname>PostgreSQL</productname> extension. There 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. different in detail.
</para> </para>
</refsect1> </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 PostgreSQL documentation
--> -->
...@@ -82,7 +82,7 @@ DROP SEQUENCE serial; ...@@ -82,7 +82,7 @@ DROP SEQUENCE serial;
<title>Compatibility</title> <title>Compatibility</title>
<para> <para>
There is no <command>DROP SEQUENCE</command> statement in the SQL standard. <command>DROP SEQUENCE</command> conforms with <acronym>SQL:2003</acronym>.
</para> </para>
</refsect1> </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 PostgreSQL documentation
--> -->
...@@ -108,11 +108,10 @@ COMMIT; ...@@ -108,11 +108,10 @@ COMMIT;
<title>Compatibility</title> <title>Compatibility</title>
<para> <para>
The SQL2003 standard specifies that the keyword This command conforms to the SQL:2003 standard. The standard
<literal>SAVEPOINT</literal> is mandatory. specifies that the key word <literal>SAVEPOINT</literal> is
<productname>PostgreSQL</productname> allows the mandatory, but <productname>PostgreSQL</productname> allows it to
<literal>SAVEPOINT</literal> keyword to be omitted. Otherwise, this be omitted.
command is fully conforming.
</para> </para>
</refsect1> </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 PostgreSQL documentation
--> -->
...@@ -128,15 +128,14 @@ COMMIT; ...@@ -128,15 +128,14 @@ COMMIT;
<title>Compatibility</title> <title>Compatibility</title>
<para> <para>
The SQL2003 standard specifies that the keyword The SQL:2003 standard specifies that the key word
<literal>SAVEPOINT</> is mandatory. <productname>PostgreSQL</> and <literal>SAVEPOINT</> is mandatory, but <productname>PostgreSQL</>
<productname>Oracle</> allow the <literal>SAVEPOINT</literal> and <productname>Oracle</> allow it to be omitted. SQL:2003 allows
keyword to be omitted. SQL2003 allows only <literal>WORK</>, not only <literal>WORK</>, not <literal>TRANSACTION</>, as a noise word
<literal>TRANSACTION</>, as a noise word after after <literal>ROLLBACK</>. Also, SQL:2003 has an optional clause
<literal>ROLLBACK</>. Also, SQL2003 has an optional clause
<literal>AND [ NO ] CHAIN</> which is not currently supported by <literal>AND [ NO ] CHAIN</> which is not currently supported by
<productname>PostgreSQL</>. Otherwise, this command is fully <productname>PostgreSQL</>. Otherwise, this command conforms to
conforming. the SQL standard.
</para> </para>
</refsect1> </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 PostgreSQL documentation
--> -->
...@@ -1045,7 +1045,7 @@ SELECT distributors.* FROM distributors d, distributors distributors; ...@@ -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> <title>Namespace Available to <literal>GROUP BY</literal> and <literal>ORDER BY</literal></title>
<para> <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 only use result column names or numbers, while a <literal>GROUP
BY</literal> clause may only use expressions based on input column BY</literal> clause may only use expressions based on input column
names. <productname>PostgreSQL</productname> extends each of names. <productname>PostgreSQL</productname> extends each of
...@@ -1058,11 +1058,11 @@ SELECT distributors.* FROM distributors d, distributors distributors; ...@@ -1058,11 +1058,11 @@ SELECT distributors.* FROM distributors d, distributors distributors;
</para> </para>
<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 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 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> </para>
</refsect2> </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"> <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 ...@@ -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()</>, Change <function>ln()</>, <function>log()</>,
<function>power()</>, and <function>sqrt()</> to emit the correct <function>power()</>, and <function>sqrt()</> to emit the correct
<literal>SQLSTATE</> error codes for certain error conditions, as <literal>SQLSTATE</> error codes for certain error conditions, as
specified by SQL2003 (Neil) specified by SQL:2003 (Neil)
</para> </para>
</listitem> </listitem>
<listitem> <listitem>
<para> <para>
Add <function>width_bucket()</> function as defined by SQL2003 (Neil) Add <function>width_bucket()</> function as defined by SQL:2003 (Neil)
</para> </para>
</listitem> </listitem>
...@@ -3706,7 +3706,7 @@ DROP SCHEMA information_schema CASCADE; ...@@ -3706,7 +3706,7 @@ DROP SCHEMA information_schema CASCADE;
<itemizedlist> <itemizedlist>
<listitem> <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>
<listitem> <listitem>
...@@ -3781,7 +3781,7 @@ DROP SCHEMA information_schema CASCADE; ...@@ -3781,7 +3781,7 @@ DROP SCHEMA information_schema CASCADE;
<listitem> <listitem>
<para> <para>
Allow copying table schema using <literal>LIKE 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) feature <literal>INCLUDING DEFAULTS</literal> (Rod)
</para> </para>
</listitem> </listitem>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* *
* Copyright 2003, PostgreSQL Global Development Group * 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 ( ...@@ -1181,8 +1181,8 @@ CREATE TABLE sql_languages (
sql_language_programming_language character_data sql_language_programming_language character_data
) WITHOUT OIDS; ) WITHOUT OIDS;
INSERT INTO sql_languages VALUES ('ISO 9075', '1999', 'CORE', NULL, NULL, 'DIRECT', NULL); INSERT INTO sql_languages VALUES ('ISO 9075', '2003', '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, 'EMBEDDED', 'C');
GRANT SELECT ON sql_languages TO PUBLIC; GRANT SELECT ON sql_languages TO PUBLIC;
...@@ -1209,7 +1209,7 @@ INSERT INTO sql_packages VALUES ('PKG005', 'CLI', 'NO', NULL, 'ODBC is similar.' ...@@ -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 ('PKG006', 'Basic object support', 'NO', NULL, '');
INSERT INTO sql_packages VALUES ('PKG007', 'Enhanced 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 ('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; GRANT SELECT ON sql_packages TO PUBLIC;
......
...@@ -53,21 +53,16 @@ F701 Enhanced integrity management ...@@ -53,21 +53,16 @@ F701 Enhanced integrity management
F812 Core F812 Core
S011 Core S011 Core
S023 Basic object support S023 Basic object support
S023 SQL/MM support
S024 Enhanced object support S024 Enhanced object support
S024 SQL/MM support
S041 Basic object support S041 Basic object support
S043 Enhanced object support S043 Enhanced object support
S051 Basic object support S051 Basic object support
S071 Enhanced object support S071 Enhanced object support
S081 Enhanced object support S081 Enhanced object support
S091 SQL/MM support
S092 SQL/MM support
S111 Enhanced object support S111 Enhanced object support
S151 Basic object support S151 Basic object support
S161 Enhanced object support S161 Enhanced object support
S211 Enhanced object support S211 Enhanced object support
S211 SQL/MM support
S231 Enhanced object support S231 Enhanced object support
S241 Enhanced object support S241 Enhanced object support
T041 Basic object support T041 Basic object support
...@@ -78,5 +73,4 @@ T211 Active database ...@@ -78,5 +73,4 @@ T211 Active database
T212 Enhanced integrity management T212 Enhanced integrity management
T321 Core T321 Core
T322 PSM T322 PSM
T322 SQL/MM support
T431 OLAP facilities T431 OLAP facilities
...@@ -8,9 +8,26 @@ B017 Embedded PL/I NO ...@@ -8,9 +8,26 @@ B017 Embedded PL/I NO
B021 Direct SQL YES B021 Direct SQL YES
B031 Basic dynamic SQL NO B031 Basic dynamic SQL NO
B032 Extended dynamic SQL NO B032 Extended dynamic SQL NO
B032 Extended dynamic SQL 01 <describe input> statement NO B032 Extended dynamic SQL 01 <describe input statement> NO
B033 Untyped SQL-invoked function arguments NO
B034 Dynamic specification of cursor attributes NO
B041 Extensions to embedded SQL exception declarations NO B041 Extensions to embedded SQL exception declarations NO
B051 Enhanced execution rights NO B051 Enhanced execution rights NO
B111 Module language Ada NO
B112 Module language C NO
B113 Module language COBOL NO
B114 Module language Fortran NO
B115 Module language MUMPS NO
B116 Module language Pascal NO
B117 Module language PL/I NO
B121 Routine language Ada NO
B122 Routine language C NO
B123 Routine language COBOL NO
B124 Routine language Fortran NO
B125 Routine language MUMPS NO
B126 Routine language Pascal NO
B127 Routine language PL/I NO
B128 Routine language SQL NO
E011 Numeric data types YES E011 Numeric data types YES
E011 Numeric data types 01 INTEGER and SMALLINT data types YES E011 Numeric data types 01 INTEGER and SMALLINT data types YES
E011 Numeric data types 02 REAL, DOUBLE PRECISION, and FLOAT data types YES E011 Numeric data types 02 REAL, DOUBLE PRECISION, and FLOAT data types YES
...@@ -19,18 +36,18 @@ E011 Numeric data types 04 Arithmetic operators YES ...@@ -19,18 +36,18 @@ E011 Numeric data types 04 Arithmetic operators YES
E011 Numeric data types 05 Numeric comparison YES E011 Numeric data types 05 Numeric comparison YES
E011 Numeric data types 06 Implicit casting among the numeric data types YES E011 Numeric data types 06 Implicit casting among the numeric data types YES
E021 Character data types YES E021 Character data types YES
E021 Character data types 01 CHARACTER data type YES E021 Character string types 01 CHARACTER data type YES
E021 Character data types 02 CHARACTER VARYING data type YES E021 Character string types 02 CHARACTER VARYING data type YES
E021 Character data types 03 Character literals YES E021 Character string types 03 Character literals YES
E021 Character data types 04 CHARACTER_LENGTH function YES E021 Character string types 04 CHARACTER_LENGTH function YES trims trailing spaces from CHARACTER values before counting
E021 Character data types 05 OCTET_LENGTH function YES E021 Character string types 05 OCTET_LENGTH function YES
E021 Character data types 06 SUBSTRING function YES E021 Character string types 06 SUBSTRING function YES
E021 Character data types 07 Character concatenation YES E021 Character string types 07 Character concatenation YES
E021 Character data types 08 UPPER and LOWER functions YES E021 Character string types 08 UPPER and LOWER functions YES
E021 Character data types 09 TRIM function YES E021 Character string types 09 TRIM function YES
E021 Character data types 10 Implicit casting among the character data types YES E021 Character string types 10 Implicit casting among the character string types YES
E021 Character data types 11 POSITION function YES E021 Character string types 11 POSITION function YES
E021 Character data types 12 Character comparison YES E021 Character string types 12 Character comparison YES
E031 Identifiers YES E031 Identifiers YES
E031 Identifiers 01 Delimited identifiers YES E031 Identifiers 01 Delimited identifiers YES
E031 Identifiers 02 Lower case identifiers YES E031 Identifiers 02 Lower case identifiers YES
...@@ -73,6 +90,8 @@ E081 Basic Privileges 05 UPDATE privilege at the column level NO ...@@ -73,6 +90,8 @@ E081 Basic Privileges 05 UPDATE privilege at the column level NO
E081 Basic Privileges 06 REFERENCES privilege at the table level YES E081 Basic Privileges 06 REFERENCES privilege at the table level YES
E081 Basic Privileges 07 REFERENCES privilege at the column level NO E081 Basic Privileges 07 REFERENCES privilege at the column level NO
E081 Basic Privileges 08 WITH GRANT OPTION YES E081 Basic Privileges 08 WITH GRANT OPTION YES
E081 Basic Privileges 09 USAGE privilege NO
E081 Basic Privileges 10 EXECUTE privilege YES
E091 Set functions YES E091 Set functions YES
E091 Set functions 01 AVG YES E091 Set functions 01 AVG YES
E091 Set functions 02 COUNT YES E091 Set functions 02 COUNT YES
...@@ -87,7 +106,7 @@ E101 Basic data manipulation 03 Searched UPDATE statement YES ...@@ -87,7 +106,7 @@ E101 Basic data manipulation 03 Searched UPDATE statement YES
E101 Basic data manipulation 04 Searched DELETE statement YES E101 Basic data manipulation 04 Searched DELETE statement YES
E111 Single row SELECT statement YES E111 Single row SELECT statement YES
E121 Basic cursor support NO E121 Basic cursor support NO
E121 Basic cursor supoprt 01 DECLARE CURSOR YES E121 Basic cursor support 01 DECLARE CURSOR YES
E121 Basic cursor support 02 ORDER BY columns need not be in select list YES E121 Basic cursor support 02 ORDER BY columns need not be in select list YES
E121 Basic cursor support 03 Value expressions in ORDER BY clause YES E121 Basic cursor support 03 Value expressions in ORDER BY clause YES
E121 Basic cursor support 04 OPEN statement YES E121 Basic cursor support 04 OPEN statement YES
...@@ -150,16 +169,17 @@ F051 Basic date and time 01 DATE data type (including support of DATE literal) Y ...@@ -150,16 +169,17 @@ F051 Basic date and time 01 DATE data type (including support of DATE literal) Y
F051 Basic date and time 02 TIME data type (including support of TIME literal) with fractional seconds precision of at least 0 YES F051 Basic date and time 02 TIME data type (including support of TIME literal) with fractional seconds precision of at least 0 YES
F051 Basic date and time 03 TIMESTAMP data type (including support of TIMESTAMP literal) with fractional seconds precision of at least 0 and 6 YES F051 Basic date and time 03 TIMESTAMP data type (including support of TIMESTAMP literal) with fractional seconds precision of at least 0 and 6 YES
F051 Basic date and time 04 Comparison predicate on DATE, TIME, and TIMESTAMP data types YES F051 Basic date and time 04 Comparison predicate on DATE, TIME, and TIMESTAMP data types YES
F051 Basic date and time 05 Explicit CAST between datetime types and character types YES F051 Basic date and time 05 Explicit CAST between datetime types and character string types YES
F051 Basic date and time 06 CURRENT_DATE YES F051 Basic date and time 06 CURRENT_DATE YES
F051 Basic date and time 07 LOCALTIME YES F051 Basic date and time 07 LOCALTIME YES
F051 Basic date and time 08 LOCALTIMESTAMP YES F051 Basic date and time 08 LOCALTIMESTAMP YES
F052 Intervals and datetime arithmetic YES F052 Intervals and datetime arithmetic YES
F053 OVERLAPS predicate YES
F081 UNION and EXCEPT in views YES F081 UNION and EXCEPT in views YES
F111 Isolation levels other than SERIALIZABLE YES F111 Isolation levels other than SERIALIZABLE YES
F111 Isolation levels other than SERIALIZABLE 01 READ UNCOMMITTED isolation level YES behaves like READ COMMITTED F111 Isolation levels other than SERIALIZABLE 01 READ UNCOMMITTED isolation level YES
F111 Isolation levels other than SERIALIZABLE 02 READ COMMITTED isolation level YES F111 Isolation levels other than SERIALIZABLE 02 READ COMMITTED isolation level YES
F111 Isolation levels other than SERIALIZABLE 03 REPEATABLE READ isolation level YES behaves like SERIALIZABLE F111 Isolation levels other than SERIALIZABLE 03 REPEATABLE READ isolation level YES
F121 Basic diagnostics management NO F121 Basic diagnostics management NO
F121 Basic diagnostics management 01 GET DIAGNOSTICS statement NO F121 Basic diagnostics management 01 GET DIAGNOSTICS statement NO
F121 Basic diagnostics management 02 SET TRANSACTION statement: DIAGNOSTICS SIZE clause NO F121 Basic diagnostics management 02 SET TRANSACTION statement: DIAGNOSTICS SIZE clause NO
...@@ -175,16 +195,18 @@ F191 Referential delete actions YES ...@@ -175,16 +195,18 @@ F191 Referential delete actions YES
F201 CAST function YES F201 CAST function YES
F221 Explicit defaults YES F221 Explicit defaults YES
F222 INSERT statement: DEFAULT VALUES clause YES F222 INSERT statement: DEFAULT VALUES clause YES
F231 Privilege Tables YES F231 Privilege tables YES
F231 Privilege Tables 01 TABLE_PRIVILEGES view YES F231 Privilege tables 01 TABLE_PRIVILEGES view YES
F231 Privilege Tables 02 COLUMN_PRIVILEGES view YES F231 Privilege tables 02 COLUMN_PRIVILEGES view YES
F231 Privilege Tables 03 USAGE_PRIVILEGES view YES F231 Privilege tables 03 USAGE_PRIVILEGES view YES
F251 Domain support YES F251 Domain support YES
F261 CASE expression YES F261 CASE expression YES
F261 CASE expression 01 Simple CASE YES F261 CASE expression 01 Simple CASE YES
F261 CASE expression 02 Searched CASE YES F261 CASE expression 02 Searched CASE YES
F261 CASE expression 03 NULLIF YES F261 CASE expression 03 NULLIF YES
F261 CASE expression 04 COALESCE YES F261 CASE expression 04 COALESCE YES
F262 Extended CASE expression NO
F263 Comma-separated predicates in simple CASE expression NO
F271 Compound character literals YES F271 Compound character literals YES
F281 LIKE enhancements YES F281 LIKE enhancements YES
F291 UNIQUE predicate NO F291 UNIQUE predicate NO
...@@ -199,6 +221,7 @@ F311 Schema definition statement 02 CREATE TABLE for persistent base tables YES ...@@ -199,6 +221,7 @@ F311 Schema definition statement 02 CREATE TABLE for persistent base tables YES
F311 Schema definition statement 03 CREATE VIEW YES F311 Schema definition statement 03 CREATE VIEW YES
F311 Schema definition statement 04 CREATE VIEW: WITH CHECK OPTION NO F311 Schema definition statement 04 CREATE VIEW: WITH CHECK OPTION NO
F311 Schema definition statement 05 GRANT statement YES F311 Schema definition statement 05 GRANT statement YES
F312 MERGE statement NO
F321 User authorization YES F321 User authorization YES
F341 Usage tables NO F341 Usage tables NO
F361 Subprogram support YES F361 Subprogram support YES
...@@ -207,12 +230,14 @@ F381 Extended schema manipulation 01 ALTER TABLE statement: ALTER COLUMN clause ...@@ -207,12 +230,14 @@ F381 Extended schema manipulation 01 ALTER TABLE statement: ALTER COLUMN clause
F381 Extended schema manipulation 02 ALTER TABLE statement: ADD CONSTRAINT clause YES F381 Extended schema manipulation 02 ALTER TABLE statement: ADD CONSTRAINT clause YES
F381 Extended schema manipulation 03 ALTER TABLE statement: DROP CONSTRAINT clause YES F381 Extended schema manipulation 03 ALTER TABLE statement: DROP CONSTRAINT clause YES
F391 Long identifiers YES F391 Long identifiers YES
F392 Unicode escapes in identifiers NO
F393 Unicode escapes in literals NO
F401 Extended joined table YES F401 Extended joined table YES
F401 Extended joined table 01 NATURAL JOIN YES F401 Extended joined table 01 NATURAL JOIN YES
F401 Extended joined table 02 FULL OUTER JOIN YES F401 Extended joined table 02 FULL OUTER JOIN YES
F401 Extended joined table 03 UNION JOIN YES
F401 Extended joined table 04 CROSS JOIN YES F401 Extended joined table 04 CROSS JOIN YES
F411 Time zone specification YES F402 Named column joins for LOBs, arrays, and multisets NO
F411 Time zone specification YES differences regarding literal interpretation
F421 National character YES F421 National character YES
F431 Read-only scrollable cursors YES F431 Read-only scrollable cursors YES
F431 Read-only scrollable cursors 01 FETCH with explicit NEXT YES F431 Read-only scrollable cursors 01 FETCH with explicit NEXT YES
...@@ -222,6 +247,7 @@ F431 Read-only scrollable cursors 04 FETCH PRIOR YES ...@@ -222,6 +247,7 @@ F431 Read-only scrollable cursors 04 FETCH PRIOR YES
F431 Read-only scrollable cursors 05 FETCH ABSOLUTE YES F431 Read-only scrollable cursors 05 FETCH ABSOLUTE YES
F431 Read-only scrollable cursors 06 FETCH RELATIVE YES F431 Read-only scrollable cursors 06 FETCH RELATIVE YES
F441 Extended set function support YES F441 Extended set function support YES
F442 Mixed column references in set functions NO
F451 Character set definition NO F451 Character set definition NO
F461 Named character sets NO F461 Named character sets NO
F471 Scalar subquery values YES F471 Scalar subquery values YES
...@@ -235,7 +261,6 @@ F502 Enhanced documentation tables YES ...@@ -235,7 +261,6 @@ F502 Enhanced documentation tables YES
F502 Enhanced documentation tables 01 SQL_SIZING_PROFILES view YES F502 Enhanced documentation tables 01 SQL_SIZING_PROFILES view YES
F502 Enhanced documentation tables 02 SQL_IMPLEMENTATION_INFO view YES F502 Enhanced documentation tables 02 SQL_IMPLEMENTATION_INFO view YES
F502 Enhanced documentation tables 03 SQL_PACKAGES view YES F502 Enhanced documentation tables 03 SQL_PACKAGES view YES
F511 BIT data type YES
F521 Assertions NO F521 Assertions NO
F531 Temporary tables YES F531 Temporary tables YES
F555 Enhanced seconds precision YES F555 Enhanced seconds precision YES
...@@ -247,7 +272,12 @@ F641 Row and table constructors NO ...@@ -247,7 +272,12 @@ F641 Row and table constructors NO
F651 Catalog name qualifiers YES F651 Catalog name qualifiers YES
F661 Simple tables NO F661 Simple tables NO
F671 Subqueries in CHECK NO intentionally omitted F671 Subqueries in CHECK NO intentionally omitted
F672 Retrospective check constraints YES
F691 Collation and translation NO F691 Collation and translation NO
F692 Enhanced collation support NO
F693 SQL-session and client module collations NO
F695 Translation support NO
F696 Additional translation documentation NO
F701 Referential update actions YES F701 Referential update actions YES
F711 ALTER domain YES F711 ALTER domain YES
F721 Deferrable constraints NO foreign keys only F721 Deferrable constraints NO foreign keys only
...@@ -261,7 +291,7 @@ F791 Insensitive cursors YES ...@@ -261,7 +291,7 @@ F791 Insensitive cursors YES
F801 Full set function YES F801 Full set function YES
F811 Extended flagging NO F811 Extended flagging NO
F812 Basic flagging NO F812 Basic flagging NO
F813 Extended flagging for "Core SQL Flagging" and "Catalog Lookup" only NO F813 Extended flagging NO
F821 Local table references NO F821 Local table references NO
F831 Full cursor update NO F831 Full cursor update NO
F831 Full cursor update 01 Updatable scrollable cursors NO F831 Full cursor update 01 Updatable scrollable cursors NO
...@@ -270,6 +300,10 @@ S011 Distinct data types NO ...@@ -270,6 +300,10 @@ S011 Distinct data types NO
S011 Distinct data types 01 USER_DEFINED_TYPES view NO S011 Distinct data types 01 USER_DEFINED_TYPES view NO
S023 Basic structured types NO S023 Basic structured types NO
S024 Enhanced structured types NO S024 Enhanced structured types NO
S025 Final structured types NO
S026 Self-referencing structured types NO
S027 Create method by specific method name NO
S028 Permutable UDT options list NO
S041 Basic reference types NO S041 Basic reference types NO
S043 Enhanced reference types NO S043 Enhanced reference types NO
S051 Create table of type NO S051 Create table of type NO
...@@ -281,18 +315,31 @@ S091 Basic array support 02 Arrays of distinct types NO ...@@ -281,18 +315,31 @@ S091 Basic array support 02 Arrays of distinct types NO
S091 Basic array support 03 Array expressions NO S091 Basic array support 03 Array expressions NO
S092 Arrays of user-defined types NO S092 Arrays of user-defined types NO
S094 Arrays of reference types NO S094 Arrays of reference types NO
S095 Array constructors by query NO
S096 Optional array bounds NO
S097 Array element assignment NO
S111 ONLY in query expressions YES S111 ONLY in query expressions YES
S151 Type predicate NO S151 Type predicate NO
S161 Subtype treatment NO S161 Subtype treatment NO
S201 SQL routines on arrays NO S162 Subtype treatment for references NO
S201 SQL routines on arrays 01 Array parameters NO S201 SQL-invoked routines on arrays NO
S201 SQL routines on arrays 02 Array as result type of functions NO S201 SQL-invoked routines on arrays 01 Array parameters NO
S201 SQL-invoked routines on arrays 02 Array as result type of functions NO
S202 SQL-invoked routines on multisets NO
S211 User-defined cast functions YES S211 User-defined cast functions YES
S231 Structured type locators NO S231 Structured type locators NO
S232 Array locators NO S232 Array locators NO
S233 Multiset locators NO
S241 Transform functions NO S241 Transform functions NO
S242 Alter transform statement NO
S251 User-defined orderings NO S251 User-defined orderings NO
S261 Specific type method NO S261 Specific type method NO
S271 Basic multiset support NO
S272 Multisets of user-defined types NO
S274 Multisets of reference types NO
S275 Advanced multiset support NO
S281 Nested collection types NO
S291 Unique constraint on entire row NO
T011 Timestamp in Information Schema NO T011 Timestamp in Information Schema NO
T031 BOOLEAN data type YES T031 BOOLEAN data type YES
T041 Basic LOB data type support NO T041 Basic LOB data type support NO
...@@ -303,12 +350,24 @@ T041 Basic LOB data type support 04 Concatenation of LOB data types NO ...@@ -303,12 +350,24 @@ T041 Basic LOB data type support 04 Concatenation of LOB data types NO
T041 Basic LOB data type support 05 LOB locator: non-holdable NO T041 Basic LOB data type support 05 LOB locator: non-holdable NO
T042 Extended LOB data type support NO T042 Extended LOB data type support NO
T051 Row types NO T051 Row types NO
T052 MAX and MIN for row types NO
T053 Explicit aliases for all-fields reference NO
T061 UCS support NO
T071 BIGINT data type YES
T111 Updatable joins, unions, and columns NO T111 Updatable joins, unions, and columns NO
T121 WITH (excluding RECURSIVE) in query expression NO T121 WITH (excluding RECURSIVE) in query expression NO
T122 WITH (excluding RECURSIVE) in subquery NO
T131 Recursive query NO T131 Recursive query NO
T132 Recursive query in subquery NO
T141 SIMILAR predicate YES T141 SIMILAR predicate YES
T151 DISTINCT predicate YES T151 DISTINCT predicate YES
T152 DISTINCT predicate with negation NO
T171 LIKE clause in table definition YES T171 LIKE clause in table definition YES
T172 AS subquery clause in table definition NO
T173 Extended LIKE clause in table definition NO
T174 Identity columns NO
T175 Generated columns NO
T176 Sequence generator support NO
T191 Referential action RESTRICT YES T191 Referential action RESTRICT YES
T201 Comparable data types for referential constraints YES T201 Comparable data types for referential constraints YES
T211 Basic trigger capability NO T211 Basic trigger capability NO
...@@ -319,15 +378,16 @@ T211 Basic trigger capability 04 FOR EACH ROW triggers YES ...@@ -319,15 +378,16 @@ T211 Basic trigger capability 04 FOR EACH ROW triggers YES
T211 Basic trigger capability 05 Ability to specify a search condition that must be true before the trigger is invoked NO T211 Basic trigger capability 05 Ability to specify a search condition that must be true before the trigger is invoked NO
T211 Basic trigger capability 06 Support for run-time rules for the interaction of triggers and constraints NO T211 Basic trigger capability 06 Support for run-time rules for the interaction of triggers and constraints NO
T211 Basic trigger capability 07 TRIGGER privilege YES T211 Basic trigger capability 07 TRIGGER privilege YES
T211 Basic trigger capability 08 Multiple triggers for the same event are executed in the order in which they were created NO intentionally omitted T211 Basic trigger capability 08 Multiple triggers for the same event are executed in the order in which they were created in the catalog NO intentionally omitted
T212 Enhanced trigger capability YES T212 Enhanced trigger capability YES
T231 SENSITIVE cursors YES T231 Sensitive cursors YES
T241 START TRANSACTION statement YES T241 START TRANSACTION statement YES
T251 SET TRANSACTION statement: LOCAL option NO T251 SET TRANSACTION statement: LOCAL option NO
T261 Chained transactions NO T261 Chained transactions NO
T271 Savepoints YES T271 Savepoints YES
T272 Enhanced savepoint management NO
T281 SELECT privilege with column granularity NO T281 SELECT privilege with column granularity NO
T301 Functional Dependencies NO T301 Functional dependencies NO
T312 OVERLAY function YES T312 OVERLAY function YES
T321 Basic SQL-invoked routines NO T321 Basic SQL-invoked routines NO
T321 Basic SQL-invoked routines 01 User-defined functions with no overloading YES T321 Basic SQL-invoked routines 01 User-defined functions with no overloading YES
...@@ -339,12 +399,18 @@ T321 Basic SQL-invoked routines 06 ROUTINES view YES ...@@ -339,12 +399,18 @@ T321 Basic SQL-invoked routines 06 ROUTINES view YES
T321 Basic SQL-invoked routines 07 PARAMETERS view YES T321 Basic SQL-invoked routines 07 PARAMETERS view YES
T322 Overloading of SQL-invoked functions and procedures YES T322 Overloading of SQL-invoked functions and procedures YES
T323 Explicit security for external routines YES T323 Explicit security for external routines YES
T324 Explicit security for SQL routines NO
T325 Qualified SQL parameter references NO
T326 Table functions NO
T331 Basic roles NO T331 Basic roles NO
T332 Extended roles NO T332 Extended roles NO
T351 Bracketed SQL comments (/*...*/ comments) YES T351 Bracketed SQL comments (/*...*/ comments) YES
T401 INSERT into a cursor NO T401 INSERT into a cursor NO
T411 UPDATE statement: SET ROW option NO T411 UPDATE statement: SET ROW option NO
T431 CUBE and ROLLUP operations NO T431 Extended grouping capabilities NO
T432 Nested and concatenated GROUPING SETS NO
T433 Multiargument GROUPING function NO
T434 GROUP BY DISINCT NO
T441 ABS and MOD functions YES T441 ABS and MOD functions YES
T461 Symmetric BETWEEN predicate NO T461 Symmetric BETWEEN predicate NO
T471 Result sets return value NO T471 Result sets return value NO
...@@ -355,6 +421,18 @@ T541 Updatable table references NO ...@@ -355,6 +421,18 @@ T541 Updatable table references NO
T551 Optional key words for default syntax YES T551 Optional key words for default syntax YES
T561 Holdable locators NO T561 Holdable locators NO
T571 Array-returning external SQL-invoked functions NO T571 Array-returning external SQL-invoked functions NO
T572 Multiset-returning external SQL-invoked functions NO
T581 Regular expression substring function YES T581 Regular expression substring function YES
T591 UNIQUE constraints of possibly null columns YES T591 UNIQUE constraints of possibly null columns YES
T601 Local cursor references NO T601 Local cursor references NO
T611 Elementary OLAP operations NO
T612 Advanced OLAP operations NO
T613 Sampling NO
T621 Enhanced numeric functions NO
T631 IN predicate with one list element NO
T641 Multiple column assignment NO
T651 SQL-schema statements in SQL routines NO
T652 SQL-dynamic statements in SQL routines NO
T653 SQL-schema statements in external routines NO
T654 SQL-dynamic statements in external routines NO
T655 Cyclically dependent routines NO
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