Ron Peterson <ron.peterson@xxxxxxxxxxxxxx> writes: > That cleared one hurdle, but I'm still not there yet. > % select 'fe43d07c0c624786bebfcb3357a2a13a'::y_octet_16; > y_octet_16 > ---------------------------------- > fe43d07c0c624786bebfcb3357a2a13a That's not invoking any cast function, but the type's typinput function (applied to a C-string). > When things are connected up this way, > what should the cast function expect to see as input? > % select encode( y_uuid_generate(), 'hex' )::y_octet_16; > ERROR: input string contains invalid characters If it's a cast from TEXT, it'll get the internal form of a TEXT datum, ie, a counted (and not null-terminated) string. You might look at textin() and textout() to grok the difference. regards, tom lane