Use the following syntax to return a value other than the default zero-length string:
begin returns char;
/* for copy this returns a 0-length string but one might not always find this acceptable */
if (iscopy())
/* return whatever valid date string one wants - current timestamp for copy will do */
return current_timestamp();
else
return rowoptimepunc();
end;