mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Update of conformance information to SQL:2003
by Troels Arvin, Simon Riggs, Elein Mustain Make spelling of SQL standard names uniform.
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
<!-- $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>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $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
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $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 — this is also a warning class per SQL99</entry>
|
||||
<entry>No Data — this is also a warning class per SQL:1999</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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>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.
|
||||
<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>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.
|
||||
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>
|
||||
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.
|
||||
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>
|
||||
<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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $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>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $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>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- $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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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.
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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 <data type></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>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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">
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$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>
|
||||
|
Reference in New Issue
Block a user