I'm in the process of attempting to upgrade from 8.1 to 8.4, and I've been
using the uniqueidentifier contrib module for my UUID's ... In 8.1 Postgresql
was able to figure out what to do with statements like
# SELECT 'Your new UUID is ' || newid();
?column?
-------------------------------------------------------
Your new UUID is 5f1a4987-9005-42d6-8e62-d1ff14bb1433
(1 row)
but in 8.4 (and probably 8.3 also...),
# SELECT 'Your new UUID is ' || newid();
ERROR: operator is not unique: unknown || uniqueidentifier
LINE 1: SELECT 'Your new UUID is ' || newid();
^
HINT: Could not choose a best candidate operator. You might need to add
explicit type casts.
But, with the new internal UUID datatype, what is the magic recipe that allows
this to run?
# SELECT 'Your new UUID is ' || uuid_generate_v4();
?column?
-------------------------------------------------------
Your new UUID is cd8d8f5f-3eea-4e96-be4f-f93daa174d8f
(1 row)
I could add the explicit type casts, but I'd rather find out what the nature of
the subtle (or not-so-subtle) difference I've stumbled upon is...