-
+
Data Types
- The assumption that real and
+ Prior to
PostgreSQL 7.4, the precision in
+ float(p) was taken to mean
+ so many decimal> digits. This has been corrected to match the SQL
+ standard, which specifies that the precision is measured in binary
+ digits. The assumption that real and
double precision have exactly 24 and 53 bits in the
mantissa respectively is correct for IEEE-standard floating point
implementations. On non-IEEE platforms it might be off a little, but
- If you wish a serial column to have a unique constraint or be
- a primary key, it must be specified, just like any other data
- type.
+ Prior to
PostgreSQL 7.3,
serial
+ implied UNIQUE. This is no longer automatic. If
+ you wish a serial column to have a unique constraint or be a
+ primary key, it must now be specified, just like
+ any other data type.
+
+ Prior to
PostgreSQL 7.3, writing just
+ timestamp was equivalent to timestamp with
+ time zone. This was changed for SQL compliance.
+
+
+
time, timestamp, and
interval accept an optional precision value
-
+
Data Definition
- It is best to avoid table names beginning with pg_>
- because they might someday conflict with system catalogs of the
- same name. (
PostgreSQL system catalog
- table names always start with pg_>). Of course, table
- names can always be schema-qualified to avoid conflicting with
- system catalog table names.
+ In
PostgreSQL versions before 7.3,
+ table names beginning with pg_> were reserved. This is
+ no longer true: you can create such a table name if you wish, in
+ any non-system schema. However, it's best to continue to avoid
+ such names, to ensure that you won't suffer a conflict if some
+ future version defines a system table named the same as your
+ table. (With the default search path, an unqualified reference to
+ your table name would then be resolved as the system table instead.)
+ System tables will continue to follow the convention of having
+ names beginning with pg_>, so that they will not
+ conflict with unqualified user-table names so long as users avoid
+ the pg_> prefix.
+
+ Foreign key constraint dependencies and serial column dependencies
+ from
PostgreSQL versions prior to 7.3
+ are not maintained or created during the
+ upgrade process. All other dependency types will be properly
+ created during an upgrade from a pre-7.3 database.
+
+
-
+
has been sent to the server and not yet completed.
+
+ PQtransactionStatus> will give incorrect results when using
+ a
PostgreSQL> 7.3 server that has the parameter autocommit>
+ set to off. The server-side autocommit feature has been
+ deprecated and does not exist in later server versions.
+
+
-
+
Frontend/Backend Protocol
Data of a particular data type might be transmitted in any of several
- different formats>.
- The only supported formats are text> and binary>,
+ different
formats>. As of PostgreSQL> 7.4
+ the only supported formats are text> and binary>,
but the protocol makes provision for future extensions. The desired
format for any value is specified by a format code>.
Clients can specify a format code for each transmitted parameter value
-
+
The Rule System
+ (This system was established in
PostgreSQL> 7.3.
+ In versions before that, the command status might show different
+ results when rules exist.)
-
+
Interfacing Extensions To Indexes
try to use these SQL features with the data type.
+
+ In
PostgreSQL versions before 7.4,
+ sorting and grouping operations would implicitly use operators named
+ =>, <>, and >>. The new
+ behavior of relying on default operator classes avoids having to make
+ any assumption about the behavior of operators with particular names.
+
+
+
Another important point is that an operator that
appears in a hash operator family is a candidate for hash joins,