@@ -9492,3 +9492,57 @@ select * from plpgsql_check_function('pure_expr()');
94929492(7 rows)
94939493
94949494drop table testtable_pure_expr;
9495+ -- should not to raise false alarm
9496+ drop function fxx(ct, ct);
9497+ drop type ct;
9498+ create type ct as (x int, y numeric, v varchar);
9499+ create procedure proc_composite(inout cv ct, x int, y numeric, v varchar)
9500+ as $$
9501+ begin
9502+ cv.x := x;
9503+ cv.y := y;
9504+ cv.v := v;
9505+ end;
9506+ $$ language plpgsql;
9507+ call proc_composite(null, 10, 10.2, 'ahoj');
9508+ cv
9509+ ----------------
9510+ (10,10.2,ahoj)
9511+ (1 row)
9512+
9513+ create or replace function test_proc_composite()
9514+ returns void as $$
9515+ declare cv ct;
9516+ begin
9517+ call proc_composite(cv, 10, 10.2, 'ahoj');
9518+ end;
9519+ $$ language plpgsql;
9520+ select * from plpgsql_check_function('test_proc_composite');
9521+ plpgsql_check_function
9522+ ------------------------
9523+ (0 rows)
9524+
9525+ drop function test_proc_composite;
9526+ drop procedure proc_composite;
9527+ create procedure proc_composite(inout cv1 ct, cv2 ct)
9528+ as $$
9529+ begin
9530+ cv1.x := 10;
9531+ cv2.v := 'Ahoj';
9532+ end;
9533+ $$ language plpgsql;
9534+ create or replace function test_proc_composite()
9535+ returns void as $$
9536+ declare cv1 ct; cv2 ct;
9537+ begin
9538+ call proc_composite(cv1, cv2);
9539+ end;
9540+ $$ language plpgsql;
9541+ select * from plpgsql_check_function('test_proc_composite');
9542+ plpgsql_check_function
9543+ ------------------------
9544+ (0 rows)
9545+
9546+ drop function test_proc_composite;
9547+ drop procedure proc_composite;
9548+ drop type ct;
0 commit comments