Adjust some comments about structure properties in pg_stat.h
[pgsql.git] / src / pl / plperl / sql / plperl_call.sql
blobbbea85fc9f50177e4f405a0f1262043c9f1440d3
1 CREATE PROCEDURE test_proc1()
2 LANGUAGE plperl
3 AS $$
4 undef;
5 $$;
7 CALL test_proc1();
10 CREATE PROCEDURE test_proc2()
11 LANGUAGE plperl
12 AS $$
13 return 5
14 $$;
16 CALL test_proc2();
19 CREATE TABLE test1 (a int);
21 CREATE PROCEDURE test_proc3(x int)
22 LANGUAGE plperl
23 AS $$
24 spi_exec_query("INSERT INTO test1 VALUES ($_[0])");
25 $$;
27 CALL test_proc3(55);
29 SELECT * FROM test1;
32 -- output arguments
34 CREATE PROCEDURE test_proc5(INOUT a text)
35 LANGUAGE plperl
36 AS $$
37 my ($a) = @_;
38 return { a => "$a+$a" };
39 $$;
41 CALL test_proc5('abc');
44 CREATE PROCEDURE test_proc6(a int, INOUT b int, INOUT c int)
45 LANGUAGE plperl
46 AS $$
47 my ($a, $b, $c) = @_;
48 return { b => $b * $a, c => $c * $a };
49 $$;
51 CALL test_proc6(2, 3, 4);
54 -- OUT parameters
56 CREATE PROCEDURE test_proc9(IN a int, OUT b int)
57 LANGUAGE plperl
58 AS $$
59 my ($a, $b) = @_;
60 elog(NOTICE, "a: $a, b: $b");
61 return { b => $a * 2 };
62 $$;
64 DO $$
65 DECLARE _a int; _b int;
66 BEGIN
67   _a := 10; _b := 30;
68   CALL test_proc9(_a, _b);
69   RAISE NOTICE '_a: %, _b: %', _a, _b;
70 END
71 $$;
74 DROP PROCEDURE test_proc1;
75 DROP PROCEDURE test_proc2;
76 DROP PROCEDURE test_proc3;
78 DROP TABLE test1;