On Thursday, April 14, 2011 6:43:21 pm Basil Bourque wrote: > If I pass the hex string representation of a UUID to a PL/pgSQL function as > a varchar, that value cannot be used directly when writing to a row whose > column data type is "uuid", in Postgres 9.0.x. Normally Postgres > automatically converts a hex string to a 128-bit UUID value and back > again. > > Is not doing so in a function a bug? How about: CREATE OR REPLACE FUNCTION public.uuid_write_(character varying) RETURNS boolean LANGUAGE plpgsql AS $function$ BEGIN INSERT INTO uuid_tbl_ ( uuid_col_ ) VALUES ( $1::uuid ); RETURN True; END; $function$ test(5432)aklaver=>select uuid_write_('34A94C40-453A-4A30-9404-128121E76570'); uuid_write_ ------------- t (1 row) > > Note the success of this workaround. > > My blog post on this issue: > http://crafted-software.blogspot.com/2011/04/passing-uuid-value-to-function > -in.html > > --Basil Bourque -- Adrian Klaver adrian.klaver@xxxxxxxxx -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general