diff --git a/src/test/regress/expected/function_with_case_when.out b/src/test/regress/expected/function_with_case_when.out new file mode 100644 index 000000000..e2ea06bc4 --- /dev/null +++ b/src/test/regress/expected/function_with_case_when.out @@ -0,0 +1,28 @@ +-- create function +CREATE OR REPLACE FUNCTION public.test_err(v1 text) + RETURNS text + LANGUAGE plpgsql + SECURITY DEFINER +AS $function$ + +begin + return v1 || ' - ok'; +END; +$function$; +do $$ declare + lNewValues text; + val text; +begin + val = 'test'; + lNewValues = public.test_err(v1 => case when val::text = 'test'::text then 'yes' else 'no' end); + raise notice 'lNewValues= %', lNewValues; +end;$$ ; +NOTICE: lNewValues= yes - ok +CONTEXT: PL/pgSQL function inline_code_block line XX at RAISE +-- call function +SELECT public.test_err('test'); + test_err +--------------------------------------------------------------------- + test - ok +(1 row) + diff --git a/src/test/regress/multi_schedule b/src/test/regress/multi_schedule index 3fec50aac..2de64456c 100644 --- a/src/test/regress/multi_schedule +++ b/src/test/regress/multi_schedule @@ -134,3 +134,5 @@ test: check_mx test: generated_identity test: drop_database test: check_cluster_state + +test: function_with_case_when diff --git a/src/test/regress/sql/function_with_case_when.sql b/src/test/regress/sql/function_with_case_when.sql new file mode 100644 index 000000000..951465444 --- /dev/null +++ b/src/test/regress/sql/function_with_case_when.sql @@ -0,0 +1,22 @@ +-- create function +CREATE OR REPLACE FUNCTION public.test_err(v1 text) + RETURNS text + LANGUAGE plpgsql + SECURITY DEFINER +AS $function$ + +begin + return v1 || ' - ok'; +END; +$function$; +do $$ declare + lNewValues text; + val text; +begin + val = 'test'; + lNewValues = public.test_err(v1 => case when val::text = 'test'::text then 'yes' else 'no' end); + raise notice 'lNewValues= %', lNewValues; +end;$$ ; + +-- call function +SELECT public.test_err('test'); \ No newline at end of file