This doc patch replaces all inappropriate references to SQL:1999 when it
is used as if it were the latest (and/or still valid) SQL standard.
SQL:2003 is used in its place.
Best Regards, Simon Riggs
Index: array.sgml
===================================================================
RCS file: /projects/cvsroot/pgsql/doc/src/sgml/array.sgml,v
retrieving revision 1.43
diff -c -c -r1.43 array.sgml
*** array.sgml 6 Feb 2005 20:59:30 -0000 1.43
--- array.sgml 12 Jul 2005 20:31:31 -0000
***************
*** 63,69 ****
</para>
<para>
! 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:
--- 63,69 ----
</para>
<para>
! An alternative syntax, which conforms to the SQL:2003 standard, may
be used for one-dimensional arrays.
<structfield>pay_by_quarter</structfield> could have been defined
as:
Index: ddl.sgml
===================================================================
RCS file: /projects/cvsroot/pgsql/doc/src/sgml/ddl.sgml,v
retrieving revision 1.41
diff -c -c -r1.41 ddl.sgml
*** ddl.sgml 13 Jun 2005 02:40:01 -0000 1.41
--- ddl.sgml 12 Jul 2005 20:31:33 -0000
***************
*** 1122,1128 ****
<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 SQL:1999
standard. Under the old syntax, to get the sub-tables you append
<literal>*</literal> to the table name.
For example
--- 1122,1128 ----
<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 SQL:2003
standard. Under the old syntax, to get the sub-tables you append
<literal>*</literal> to the table name.
For example
Index: ecpg.sgml
===================================================================
RCS file: /projects/cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v
retrieving revision 1.64
diff -c -c -r1.64 ecpg.sgml
*** ecpg.sgml 20 May 2005 12:36:48 -0000 1.64
--- ecpg.sgml 12 Jul 2005 20:31:35 -0000
***************
*** 1146,1153 ****
The fields <literal>sqlca.sqlstate</literal> and
<literal>sqlca.sqlcode</literal> are two different schemes that
provide error codes. Both are specified in the SQL standard, but
! <literal>SQLCODE</literal> has been marked deprecated in the 1992
! edition of the standard and has been dropped in the 1999 edition.
Therefore, new applications are strongly encouraged to use
<literal>SQLSTATE</literal>.
</para>
--- 1146,1153 ----
The fields <literal>sqlca.sqlstate</literal> and
<literal>sqlca.sqlcode</literal> are two different schemes that
provide error codes. Both are specified in the SQL standard, but
! <literal>SQLCODE</literal> has been marked deprecated in SQL-92
! edition of the standard and has been dropped in later editions.
Therefore, new applications are strongly encouraged to use
<literal>SQLSTATE</literal>.
</para>
Index: errcodes.sgml
===================================================================
RCS file: /projects/cvsroot/pgsql/doc/src/sgml/errcodes.sgml,v
retrieving revision 1.13
diff -c -c -r1.13 errcodes.sgml
*** errcodes.sgml 26 Jun 2005 19:16:04 -0000 1.13
--- errcodes.sgml 12 Jul 2005 20:31:36 -0000
***************
*** 127,133 ****
<row>
<entry>Class 02</entry>
! <entry>No Data — this is also a warning class per SQL:1999</entry>
</row>
<row>
--- 127,133 ----
<row>
<entry>Class 02</entry>
! <entry>No Data — this is also a warning class per SQL:2003</entry>
</row>
<row>
Index: func.sgml
===================================================================
RCS file: /projects/cvsroot/pgsql/doc/src/sgml/func.sgml,v
retrieving revision 1.260
diff -c -c -r1.260 func.sgml
*** func.sgml 26 Jun 2005 22:05:35 -0000 1.260
--- func.sgml 12 Jul 2005 20:31:59 -0000
***************
*** 2515,2522 ****
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 <function>SIMILAR TO</function> operator (added in
! SQL:1999), and <acronym>POSIX</acronym>-style regular expressions.
Additionally, a pattern matching function,
<function>substring</function>, is available, using either
<function>SIMILAR TO</function>-style or POSIX-style regular
--- 2515,2522 ----
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 <function>SIMILAR TO</function> operator (part of
! SQL:2003), and <acronym>POSIX</acronym>-style regular expressions.
Additionally, a pattern matching function,
<function>substring</function>, is available, using either
<function>SIMILAR TO</function>-style or POSIX-style regular
Index: sql.sgml
===================================================================
RCS file: /projects/cvsroot/pgsql/doc/src/sgml/sql.sgml,v
retrieving revision 1.36
diff -c -c -r1.36 sql.sgml
*** sql.sgml 28 Apr 2005 21:47:09 -0000 1.36
--- sql.sgml 12 Jul 2005 20:31:59 -0000
***************
*** 98,105 ****
is under development. It is planned to make <acronym>SQL</acronym>
a Turing-complete
language, i.e. all computable queries (e.g. recursive queries) will be
! possible. This is a very complex task and therefore the completion of
! the new standard can not be expected before 1999.
</para>
<sect1 id="rel-model">
--- 98,104 ----
is under development. It is planned to make <acronym>SQL</acronym>
a Turing-complete
language, i.e. all computable queries (e.g. recursive queries) will be
! possible. This has now been completed as SQL:2003.
</para>
<sect1 id="rel-model">
Index: ref/alter_domain.sgml
===================================================================
RCS file: /projects/cvsroot/pgsql/doc/src/sgml/ref/alter_domain.sgml,v
retrieving revision 1.15
diff -c -c -r1.15 alter_domain.sgml
*** ref/alter_domain.sgml 31 May 2005 14:48:47 -0000 1.15
--- ref/alter_domain.sgml 12 Jul 2005 20:31:59 -0000
***************
*** 203,209 ****
<title>Compatibility</title>
<para>
! 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>
--- 203,209 ----
<title>Compatibility</title>
<para>
! The <command>ALTER DOMAIN</command> statement is compatible with SQL:2003,
except for the <literal>OWNER</> variant, which is a
<productname>PostgreSQL</productname> extension.
</para>
Index: ref/create_cast.sgml
===================================================================
RCS file: /projects/cvsroot/pgsql/doc/src/sgml/ref/create_cast.sgml,v
retrieving revision 1.20
diff -c -c -r1.20 create_cast.sgml
*** ref/create_cast.sgml 13 Dec 2004 18:05:10 -0000 1.20
--- ref/create_cast.sgml 12 Jul 2005 20:31:59 -0000
***************
*** 298,305 ****
<title>Compatibility</title>
<para>
! 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.
--- 298,305 ----
<title>Compatibility</title>
<para>
! The <command>CREATE CAST</command> command conforms to SQL:2003,
! except that SQL:2003 does not make provisions for binary-compatible
types or extra arguments to implementation functions.
<literal>AS IMPLICIT</> is a <productname>PostgreSQL</productname>
extension, too.
Index: ref/create_function.sgml
===================================================================
RCS file: /projects/cvsroot/pgsql/doc/src/sgml/ref/create_function.sgml,v
retrieving revision 1.65
diff -c -c -r1.65 create_function.sgml
*** ref/create_function.sgml 31 Mar 2005 22:45:59 -0000 1.65
--- ref/create_function.sgml 12 Jul 2005 20:31:59 -0000
***************
*** 478,484 ****
<title>Compatibility</title>
<para>
! 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.
--- 478,484 ----
<title>Compatibility</title>
<para>
! A <command>CREATE FUNCTION</command> command is defined in SQL:2003.
The <productname>PostgreSQL</productname> version is similar but
not fully compatible. The attributes are not portable, neither are the
different available languages.
Index: ref/create_table.sgml
===================================================================
RCS file: /projects/cvsroot/pgsql/doc/src/sgml/ref/create_table.sgml,v
retrieving revision 1.92
diff -c -c -r1.92 create_table.sgml
*** ref/create_table.sgml 2 Feb 2005 06:35:59 -0000 1.92
--- ref/create_table.sgml 12 Jul 2005 20:32:01 -0000
***************
*** 860,866 ****
<para>
The <command>CREATE TABLE</command> command conforms to SQL-92 and
! to a subset of SQL:1999, with exceptions listed below.
</para>
<refsect2>
--- 860,866 ----
<para>
The <command>CREATE TABLE</command> command conforms to SQL-92 and
! to a subset of SQL:2003, with exceptions listed below.
</para>
<refsect2>
***************
*** 938,945 ****
<para>
Multiple inheritance via the <literal>INHERITS</literal> clause is
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>
--- 938,945 ----
<para>
Multiple inheritance via the <literal>INHERITS</literal> clause is
a <productname>PostgreSQL</productname> language extension.
! SQL:2003 defines single inheritance using a
! different syntax and different semantics. SQL:2003-style
inheritance is not yet supported by
<productname>PostgreSQL</productname>.
</para>
Index: ref/create_trigger.sgml
===================================================================
RCS file: /projects/cvsroot/pgsql/doc/src/sgml/ref/create_trigger.sgml,v
retrieving revision 1.40
diff -c -c -r1.40 create_trigger.sgml
*** ref/create_trigger.sgml 27 Nov 2004 21:27:07 -0000 1.40
--- ref/create_trigger.sgml 12 Jul 2005 20:32:01 -0000
***************
*** 208,227 ****
<para>
The <command>CREATE TRIGGER</command> statement in
<productname>PostgreSQL</productname> implements a subset of the
! SQL:1999 standard. (There are no provisions for triggers in SQL-92.)
! The following functionality is missing:
<itemizedlist>
<listitem>
<para>
! SQL:1999 allows triggers to fire on updates to specific columns
(e.g., <literal>AFTER UPDATE OF col1, col2</literal>).
</para>
</listitem>
<listitem>
<para>
! 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
--- 208,226 ----
<para>
The <command>CREATE TRIGGER</command> statement in
<productname>PostgreSQL</productname> implements a subset of the
! SQL:2003 standard. The following functionality is currently missing:
<itemizedlist>
<listitem>
<para>
! SQL:2003 allows triggers to fire on updates to specific columns
(e.g., <literal>AFTER UPDATE OF col1, col2</literal>).
</para>
</listitem>
<listitem>
<para>
! SQL:2003 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,241 ****
<listitem>
<para>
<productname>PostgreSQL</productname> only allows the execution
! 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
--- 234,240 ----
<listitem>
<para>
<productname>PostgreSQL</productname> only allows the execution
! of a user-defined function for the triggered action. SQL:2003
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,252 ****
</para>
<para>
! 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>
--- 245,251 ----
</para>
<para>
! SQL:2003 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>
Index: ref/create_type.sgml
===================================================================
RCS file: /projects/cvsroot/pgsql/doc/src/sgml/ref/create_type.sgml,v
retrieving revision 1.55
diff -c -c -r1.55 create_type.sgml
*** ref/create_type.sgml 1 May 2005 18:56:17 -0000 1.55
--- ref/create_type.sgml 12 Jul 2005 20:32:02 -0000
***************
*** 532,538 ****
<para>
This <command>CREATE TYPE</command> command is a
<productname>PostgreSQL</productname> extension. There is a
! <command>CREATE TYPE</command> statement in SQL:1999 and later that is rather
different in detail.
</para>
</refsect1>
--- 532,538 ----
<para>
This <command>CREATE TYPE</command> command is a
<productname>PostgreSQL</productname> extension. There is a
! <command>CREATE TYPE</command> statement in SQL:2003 that is rather
different in detail.
</para>
</refsect1>
Index: ref/select.sgml
===================================================================
RCS file: /projects/cvsroot/pgsql/doc/src/sgml/ref/select.sgml,v
retrieving revision 1.87
diff -c -c -r1.87 select.sgml
*** ref/select.sgml 8 May 2005 03:08:05 -0000 1.87
--- ref/select.sgml 12 Jul 2005 20:32:03 -0000
***************
*** 1082,1088 ****
<title>Namespace Available to <literal>GROUP BY</literal> and <literal>ORDER BY</literal></title>
<para>
! 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
--- 1082,1088 ----
<title>Namespace Available to <literal>GROUP BY</literal> and <literal>ORDER BY</literal></title>
<para>
! In the SQL:2003 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
***************
*** 1095,1105 ****
</para>
<para>
! SQL:1999 uses a slightly different definition which is not entirely upward
! compatible
! 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 SQL:1999 does.
</para>
</refsect2>
--- 1095,1105 ----
</para>
<para>
! SQL:2003 uses a slightly different definition which is not entirely upward
! compatible 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 SQL:2003 does.
</para>
</refsect2>
---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster