1--
2-- CREATE_FUNCTION_0
3--
4
5-- Create a bunch of C functions that will be used by later tests:
6
7CREATE FUNCTION check_primary_key ()
8	RETURNS trigger
9	AS '@libdir@/refint@DLSUFFIX@'
10	LANGUAGE C;
11
12CREATE FUNCTION check_foreign_key ()
13	RETURNS trigger
14	AS '@libdir@/refint@DLSUFFIX@'
15	LANGUAGE C;
16
17CREATE FUNCTION autoinc ()
18	RETURNS trigger
19	AS '@libdir@/autoinc@DLSUFFIX@'
20	LANGUAGE C;
21
22CREATE FUNCTION trigger_return_old ()
23        RETURNS trigger
24        AS '@libdir@/regress@DLSUFFIX@'
25        LANGUAGE C;
26
27CREATE FUNCTION ttdummy ()
28        RETURNS trigger
29        AS '@libdir@/regress@DLSUFFIX@'
30        LANGUAGE C;
31
32CREATE FUNCTION set_ttdummy (int4)
33        RETURNS int4
34        AS '@libdir@/regress@DLSUFFIX@'
35        LANGUAGE C STRICT;
36
37CREATE FUNCTION make_tuple_indirect (record)
38        RETURNS record
39        AS '@libdir@/regress@DLSUFFIX@'
40        LANGUAGE C STRICT;
41
42CREATE FUNCTION test_atomic_ops()
43    RETURNS bool
44    AS '@libdir@/regress@DLSUFFIX@'
45    LANGUAGE C;
46
47CREATE FUNCTION test_fdw_handler()
48    RETURNS fdw_handler
49    AS '@libdir@/regress@DLSUFFIX@', 'test_fdw_handler'
50    LANGUAGE C;
51
52CREATE FUNCTION test_support_func(internal)
53    RETURNS internal
54    AS '@libdir@/regress@DLSUFFIX@', 'test_support_func'
55    LANGUAGE C STRICT;
56
57CREATE FUNCTION test_opclass_options_func(internal)
58    RETURNS void
59    AS '@libdir@/regress@DLSUFFIX@', 'test_opclass_options_func'
60    LANGUAGE C;
61
62CREATE FUNCTION test_enc_conversion(bytea, name, name, bool, validlen OUT int, result OUT bytea)
63    AS '@libdir@/regress@DLSUFFIX@', 'test_enc_conversion'
64    LANGUAGE C STRICT;
65
66CREATE FUNCTION binary_coercible(oid, oid)
67    RETURNS bool
68    AS '@libdir@/regress@DLSUFFIX@', 'binary_coercible'
69    LANGUAGE C STRICT STABLE PARALLEL SAFE;
70
71-- Things that shouldn't work:
72
73CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL
74    AS 'SELECT ''not an integer'';';
75
76CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL
77    AS 'not even SQL';
78
79CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL
80    AS 'SELECT 1, 2, 3;';
81
82CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL
83    AS 'SELECT $2;';
84
85CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL
86    AS 'a', 'b';
87
88CREATE FUNCTION test1 (int) RETURNS int LANGUAGE C
89    AS 'nosuchfile';
90
91CREATE FUNCTION test1 (int) RETURNS int LANGUAGE C
92    AS '@libdir@/regress@DLSUFFIX@', 'nosuchsymbol';
93
94CREATE FUNCTION test1 (int) RETURNS int LANGUAGE internal
95    AS 'nosuch';
96