Release date: 2003-11-17
Major changes in this release:
A dump/restore using pg_dump is required for those wishing to migrate data from any previous release.
Observe the following incompatibilities:
oidrand
, oidsrand
, and userfntest
have been removed. These functions were determined to be no longer useful.
now()
, current_timestamp
, or current_date
should be used instead.
In previous releases, there was special code so that strings such as 'now' were interpreted at INSERT time and not at table creation time, but this work around didn't cover all cases. Release 7.4 now requires that defaults be defined properly using functions such as now()
or current_timestamp
. These will work in all situations.
Below you will find a detailed account of the changes between release 7.4 and the previous major release.
oidrand
, oidsrand
, and userfntest
functions (Neil)
md5()
function to main server, already in contrib/pgcrypto (Joe)
An MD5 function was frequently requested. For more complex encryption capabilities, use contrib/pgcrypto.
hostmask()
function (Greg Wickham)
to_char()
and to_timestamp()
(Karel)
array_append
, array_cat
, array_lower
, array_prepend
, array_to_string
, array_upper
, string_to_array
(Joe)
family()
function to report whether address is IPv4 or IPv6 (Michael Graff)
initcap()
more compatible with Oracle (Mike Nolan)
initcap()
now uppercases a letter appearing after any non-alphanumeric character, rather than only after whitespace.
now()
, current_timestamp
instead. (change required for prepared statements) (Tom)
min()
/max()
(Tom)
NaN was already sorted after ordinary numeric values for most purposes, but min()
and max()
didn't get this right.
pg_get_triggerdef(prettyprint)
and pg_constraint_is_visible()
pg_get_constraintdef
to support unique, primary-key, and check constraints (Christopher)
spi_execute
interface handle null values properly (Andrew Bosma)
_quote()
function to handle big integers
spi_prepare
to accept fully qualified type names in the parameter type list (Jan)
PQfreemem
for freeing memory on Windows, suggested for NOTIFY (Bruce)
Windows requires that memory allocated in a library be freed by a function in the same library, hence free()
doesn't work for freeing memory allocated by libpq. PQfreemem
is the proper way to free libpq memory, especially on Windows, and is recommended for other platforms as well.
PQsetdbLogin
have the same defaults as PQconnectdb
(Tom)
PGunescapeBytea
(Ben Lamb)
pqInternalNotice
to accept a format string and arguments instead of just a preformatted message (Tom, Sean Chittenden)
PQexecPrepared
and PQsendQueryPrepared
functions which perform bind/execute of previously prepared statements (Tom)
setNull
on updateable result sets
executeBatch
on a prepared statement (Barry)
palloc0
to allocate and clear memory (Bruce)
getopt_long()
if needed (Peter)
ereport()
function for error reporting (Tom)
connectby()
siblings in tablefuncs (Nabil Sayegh,Joe)
metaphone()
in fuzzystrmatch