У меня есть следующая функция:
CREATE OR REPLACE FUNCTION public.get_string(cmd_type text, udf_name text,
group_name character varying DEFAULT 'usage'::character varying)
RETURNS text
LANGUAGE plpgsql
AS $function$
BEGIN
return 'This is the string: '''|| group_name ||''''::text;
END;
$function$
Когда я вызываю это так:
select public.get_string('test', 'myudf!', group_name=>null::character varying);
Возвращает NULL.
Я ожидаю, что по крайней мереreturn:
This is the string: ''
Однако, когда я называю это так:
select public.get_string('test', 'myudf!');
Я получаю ожидаемое:
This is the string: 'usage'
Почему передача NULL в необязательный параметр делает всю строку NULL?