Marc Balmer wrote:
PostgreSQL users,

shortly the PostgreSQL port in OpenBSD will be updated from version
8.2.6 to 8.3.1.  This is a major update and you have to dump your
databases before update and restore them afterwards.

** DUMP AND RESTORE IS NEEDED **

But there is more to look after:  Versions of PostgreSQL prior to
8.3.x had a feature (or bug...) "implicit typecast".  Functions
that expect an argument to be of a certain type would cast a variable
of any other type to the expected type, if possible.

E.g.  the function now() returns a date and time, but not a 'text'
varriable.  But an expression like "substr(now(), 1, 5)" was valid,
because the result of "now()" was implicitely cast to "::text".

With PostgreSQL 8.3.x, this is no longer the case.  Explicit typecasts
are gone.  You have to explicitely cast to the right type, above
example would have to be written as "substr(now()::text, 1, 5)".

sigh, of course I meant "Implicit typecasts are gone"...


If you make use of functions or use PL/PGSQL, watch for such
constructs.

It is, however, unlikely that you run into trouble, from the
applications simon@ and I looked at, we found only one that was
affected by this and the problem was fixed in about ten minutes.

NB: the update is not yet committed.  This is an _advance_ information
so that you don't forget to dump/restore your databases.  I included
a few people in BCC that mailed me after the last PostgreSQL update;
people who forgot to dump their databases before they updated the
port (and got into trouble)....  See this as a gentle reminder ;P

(The update to 8.3.1 was mostly prepared by simon@ and tested by
him and me.)


Reply via email to