summaryrefslogtreecommitdiffstats
path: root/src/test/modules/plsample/sql/plsample.sql
blob: cf652ad56fe16ec7afaf24ca2a5fe757c9aeec9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
CREATE EXTENSION plsample;
-- Create and test some dummy functions
CREATE FUNCTION plsample_result_text(a1 numeric, a2 text, a3 integer[])
RETURNS TEXT
AS $$
  Example of source with text result.
$$ LANGUAGE plsample;
SELECT plsample_result_text(1.23, 'abc', '{4, 5, 6}');

CREATE FUNCTION plsample_result_void(a1 text[])
RETURNS VOID
AS $$
  Example of source with void result.
$$ LANGUAGE plsample;
SELECT plsample_result_void('{foo, bar, hoge}');

CREATE FUNCTION my_trigger_func() RETURNS trigger AS $$
if TD_event == "INSERT"
    return TD_NEW
elseif TD_event == "UPDATE"
    return TD_NEW
else
    return "OK"
end
$$ language plsample;

CREATE TABLE my_table (num integer, description text);
CREATE TRIGGER my_trigger_func BEFORE INSERT OR UPDATE ON my_table
       FOR EACH ROW EXECUTE FUNCTION my_trigger_func();
CREATE TRIGGER my_trigger_func2 AFTER INSERT OR UPDATE ON my_table
       FOR EACH ROW EXECUTE FUNCTION my_trigger_func(8);

INSERT INTO my_table (num, description)
VALUES (1, 'first');

UPDATE my_table
SET description = 'first, modified once'
WHERE num = 1;