I think plperl should be fixed to translate undef to NULL when returning
an array, but currently it translates to an empty string:
pl_regression=# CREATE OR REPLACE function returns_array() returns text[] as $$
pl_regression$# return ['a,b','c"d',undef,'e-f']; $$ LANGUAGE plperl;
CREATE FUNCTION
pl_regression=# select returns_array();
returns_array
-----------------------
{"a,b","c\"d","",e-f}
(1 row)
There might be some problems going in the other direction, too;
I haven't tried. Anybody feeling eager to fix this?
regards, tom lane