On Tue, Aug 30, 2011 at 8:21 PM, Heikki Linnakangas <heikki.linnakan...@enterprisedb.com> wrote: > > to_ascii_encname is marked as STRICT, which means that it returns NULL > on NULL input, without ever calling the underlying C function. The > "to_ascii" function that you created is not marked as STRICT, so the > to_ascii_encname C function is called on NULL input. It's not prepared > for that, and crashes, because it's not supposed to be called on NULL > input.
I figured that 5 minutes after reporting. I tried to sent a reply email but it seems it didn't arrive. Thanks anyway. > Why do you create your own 'internal' language function like that in > the first place? Just use the existing to_ascii function. The default to_ascii expects a string as a first argument. As our DB encoding is UTF8 we need to filter everything through convert_to(..., 'LATIN1'). Because convert_to function returns a "bytea" type, we cannot use to_ascii in vanilla flavour. We are not too fond with the PostgreSQL specifics (although the explicit ::text cast didn't work), so we found that function definition on a wiki and it worked. But now, unless you know a more correct way to do it, it works like a charm by appending "STRICT" to the function definition. Best regards and sorry for the noise. -- Isaac Jurado Internet Busines Solutions eConcept -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs