@@ -69,124 +69,124 @@ SELECT proname, provolatile FROM pg_proc
69
69
--
70
70
-- SECURITY DEFINER | INVOKER
71
71
--
72
- CREATE FUNCTION functext_C_1 (int) RETURNS bool LANGUAGE 'sql'
72
+ CREATE FUNCTION functest_C_1 (int) RETURNS bool LANGUAGE 'sql'
73
73
AS 'SELECT $1 > 0';
74
- CREATE FUNCTION functext_C_2 (int) RETURNS bool LANGUAGE 'sql'
74
+ CREATE FUNCTION functest_C_2 (int) RETURNS bool LANGUAGE 'sql'
75
75
SECURITY DEFINER AS 'SELECT $1 = 0';
76
- CREATE FUNCTION functext_C_3 (int) RETURNS bool LANGUAGE 'sql'
76
+ CREATE FUNCTION functest_C_3 (int) RETURNS bool LANGUAGE 'sql'
77
77
SECURITY INVOKER AS 'SELECT $1 < 0';
78
78
SELECT proname, prosecdef FROM pg_proc
79
- WHERE oid in ('functext_C_1 '::regproc,
80
- 'functext_C_2 '::regproc,
81
- 'functext_C_3 '::regproc) ORDER BY proname;
79
+ WHERE oid in ('functest_C_1 '::regproc,
80
+ 'functest_C_2 '::regproc,
81
+ 'functest_C_3 '::regproc) ORDER BY proname;
82
82
proname | prosecdef
83
83
--------------+-----------
84
- functext_c_1 | f
85
- functext_c_2 | t
86
- functext_c_3 | f
84
+ functest_c_1 | f
85
+ functest_c_2 | t
86
+ functest_c_3 | f
87
87
(3 rows)
88
88
89
- ALTER FUNCTION functext_C_1 (int) IMMUTABLE; -- unrelated change, no effect
90
- ALTER FUNCTION functext_C_2 (int) SECURITY INVOKER;
91
- ALTER FUNCTION functext_C_3 (int) SECURITY DEFINER;
89
+ ALTER FUNCTION functest_C_1 (int) IMMUTABLE; -- unrelated change, no effect
90
+ ALTER FUNCTION functest_C_2 (int) SECURITY INVOKER;
91
+ ALTER FUNCTION functest_C_3 (int) SECURITY DEFINER;
92
92
SELECT proname, prosecdef FROM pg_proc
93
- WHERE oid in ('functext_C_1 '::regproc,
94
- 'functext_C_2 '::regproc,
95
- 'functext_C_3 '::regproc) ORDER BY proname;
93
+ WHERE oid in ('functest_C_1 '::regproc,
94
+ 'functest_C_2 '::regproc,
95
+ 'functest_C_3 '::regproc) ORDER BY proname;
96
96
proname | prosecdef
97
97
--------------+-----------
98
- functext_c_1 | f
99
- functext_c_2 | f
100
- functext_c_3 | t
98
+ functest_c_1 | f
99
+ functest_c_2 | f
100
+ functest_c_3 | t
101
101
(3 rows)
102
102
103
103
--
104
104
-- LEAKPROOF
105
105
--
106
- CREATE FUNCTION functext_E_1 (int) RETURNS bool LANGUAGE 'sql'
106
+ CREATE FUNCTION functest_E_1 (int) RETURNS bool LANGUAGE 'sql'
107
107
AS 'SELECT $1 > 100';
108
- CREATE FUNCTION functext_E_2 (int) RETURNS bool LANGUAGE 'sql'
108
+ CREATE FUNCTION functest_E_2 (int) RETURNS bool LANGUAGE 'sql'
109
109
LEAKPROOF AS 'SELECT $1 > 100';
110
110
SELECT proname, proleakproof FROM pg_proc
111
- WHERE oid in ('functext_E_1 '::regproc,
112
- 'functext_E_2 '::regproc) ORDER BY proname;
111
+ WHERE oid in ('functest_E_1 '::regproc,
112
+ 'functest_E_2 '::regproc) ORDER BY proname;
113
113
proname | proleakproof
114
114
--------------+--------------
115
- functext_e_1 | f
116
- functext_e_2 | t
115
+ functest_e_1 | f
116
+ functest_e_2 | t
117
117
(2 rows)
118
118
119
- ALTER FUNCTION functext_E_1 (int) LEAKPROOF;
120
- ALTER FUNCTION functext_E_2 (int) STABLE; -- unrelated change, no effect
119
+ ALTER FUNCTION functest_E_1 (int) LEAKPROOF;
120
+ ALTER FUNCTION functest_E_2 (int) STABLE; -- unrelated change, no effect
121
121
SELECT proname, proleakproof FROM pg_proc
122
- WHERE oid in ('functext_E_1 '::regproc,
123
- 'functext_E_2 '::regproc) ORDER BY proname;
122
+ WHERE oid in ('functest_E_1 '::regproc,
123
+ 'functest_E_2 '::regproc) ORDER BY proname;
124
124
proname | proleakproof
125
125
--------------+--------------
126
- functext_e_1 | t
127
- functext_e_2 | t
126
+ functest_e_1 | t
127
+ functest_e_2 | t
128
128
(2 rows)
129
129
130
- ALTER FUNCTION functext_E_2 (int) NOT LEAKPROOF; -- remove leakproog attribute
130
+ ALTER FUNCTION functest_E_2 (int) NOT LEAKPROOF; -- remove leakproog attribute
131
131
SELECT proname, proleakproof FROM pg_proc
132
- WHERE oid in ('functext_E_1 '::regproc,
133
- 'functext_E_2 '::regproc) ORDER BY proname;
132
+ WHERE oid in ('functest_E_1 '::regproc,
133
+ 'functest_E_2 '::regproc) ORDER BY proname;
134
134
proname | proleakproof
135
135
--------------+--------------
136
- functext_e_1 | t
137
- functext_e_2 | f
136
+ functest_e_1 | t
137
+ functest_e_2 | f
138
138
(2 rows)
139
139
140
140
-- it takes superuser privilege to turn on leakproof, but not for turn off
141
- ALTER FUNCTION functext_E_1 (int) OWNER TO regress_unpriv_user;
142
- ALTER FUNCTION functext_E_2 (int) OWNER TO regress_unpriv_user;
141
+ ALTER FUNCTION functest_E_1 (int) OWNER TO regress_unpriv_user;
142
+ ALTER FUNCTION functest_E_2 (int) OWNER TO regress_unpriv_user;
143
143
SET SESSION AUTHORIZATION regress_unpriv_user;
144
144
SET search_path TO temp_func_test, public;
145
- ALTER FUNCTION functext_E_1 (int) NOT LEAKPROOF;
146
- ALTER FUNCTION functext_E_2 (int) LEAKPROOF;
145
+ ALTER FUNCTION functest_E_1 (int) NOT LEAKPROOF;
146
+ ALTER FUNCTION functest_E_2 (int) LEAKPROOF;
147
147
ERROR: only superuser can define a leakproof function
148
- CREATE FUNCTION functext_E_3 (int) RETURNS bool LANGUAGE 'sql'
148
+ CREATE FUNCTION functest_E_3 (int) RETURNS bool LANGUAGE 'sql'
149
149
LEAKPROOF AS 'SELECT $1 < 200'; -- failed
150
150
ERROR: only superuser can define a leakproof function
151
151
RESET SESSION AUTHORIZATION;
152
152
--
153
153
-- CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
154
154
--
155
- CREATE FUNCTION functext_F_1 (int) RETURNS bool LANGUAGE 'sql'
155
+ CREATE FUNCTION functest_F_1 (int) RETURNS bool LANGUAGE 'sql'
156
156
AS 'SELECT $1 > 50';
157
- CREATE FUNCTION functext_F_2 (int) RETURNS bool LANGUAGE 'sql'
157
+ CREATE FUNCTION functest_F_2 (int) RETURNS bool LANGUAGE 'sql'
158
158
CALLED ON NULL INPUT AS 'SELECT $1 = 50';
159
- CREATE FUNCTION functext_F_3 (int) RETURNS bool LANGUAGE 'sql'
159
+ CREATE FUNCTION functest_F_3 (int) RETURNS bool LANGUAGE 'sql'
160
160
RETURNS NULL ON NULL INPUT AS 'SELECT $1 < 50';
161
- CREATE FUNCTION functext_F_4 (int) RETURNS bool LANGUAGE 'sql'
161
+ CREATE FUNCTION functest_F_4 (int) RETURNS bool LANGUAGE 'sql'
162
162
STRICT AS 'SELECT $1 = 50';
163
163
SELECT proname, proisstrict FROM pg_proc
164
- WHERE oid in ('functext_F_1 '::regproc,
165
- 'functext_F_2 '::regproc,
166
- 'functext_F_3 '::regproc,
167
- 'functext_F_4 '::regproc) ORDER BY proname;
164
+ WHERE oid in ('functest_F_1 '::regproc,
165
+ 'functest_F_2 '::regproc,
166
+ 'functest_F_3 '::regproc,
167
+ 'functest_F_4 '::regproc) ORDER BY proname;
168
168
proname | proisstrict
169
169
--------------+-------------
170
- functext_f_1 | f
171
- functext_f_2 | f
172
- functext_f_3 | t
173
- functext_f_4 | t
170
+ functest_f_1 | f
171
+ functest_f_2 | f
172
+ functest_f_3 | t
173
+ functest_f_4 | t
174
174
(4 rows)
175
175
176
- ALTER FUNCTION functext_F_1 (int) IMMUTABLE; -- unrelated change, no effect
177
- ALTER FUNCTION functext_F_2 (int) STRICT;
178
- ALTER FUNCTION functext_F_3 (int) CALLED ON NULL INPUT;
176
+ ALTER FUNCTION functest_F_1 (int) IMMUTABLE; -- unrelated change, no effect
177
+ ALTER FUNCTION functest_F_2 (int) STRICT;
178
+ ALTER FUNCTION functest_F_3 (int) CALLED ON NULL INPUT;
179
179
SELECT proname, proisstrict FROM pg_proc
180
- WHERE oid in ('functext_F_1 '::regproc,
181
- 'functext_F_2 '::regproc,
182
- 'functext_F_3 '::regproc,
183
- 'functext_F_4 '::regproc) ORDER BY proname;
180
+ WHERE oid in ('functest_F_1 '::regproc,
181
+ 'functest_F_2 '::regproc,
182
+ 'functest_F_3 '::regproc,
183
+ 'functest_F_4 '::regproc) ORDER BY proname;
184
184
proname | proisstrict
185
185
--------------+-------------
186
- functext_f_1 | f
187
- functext_f_2 | t
188
- functext_f_3 | f
189
- functext_f_4 | t
186
+ functest_f_1 | f
187
+ functest_f_2 | t
188
+ functest_f_3 | f
189
+ functest_f_4 | t
190
190
(4 rows)
191
191
192
192
-- information_schema tests
@@ -236,15 +236,15 @@ drop cascades to function functest_a_3()
236
236
drop cascades to function functest_b_2(integer)
237
237
drop cascades to function functest_b_3(integer)
238
238
drop cascades to function functest_b_4(integer)
239
- drop cascades to function functext_c_1 (integer)
240
- drop cascades to function functext_c_2 (integer)
241
- drop cascades to function functext_c_3 (integer)
242
- drop cascades to function functext_e_1 (integer)
243
- drop cascades to function functext_e_2 (integer)
244
- drop cascades to function functext_f_1 (integer)
245
- drop cascades to function functext_f_2 (integer)
246
- drop cascades to function functext_f_3 (integer)
247
- drop cascades to function functext_f_4 (integer)
239
+ drop cascades to function functest_c_1 (integer)
240
+ drop cascades to function functest_c_2 (integer)
241
+ drop cascades to function functest_c_3 (integer)
242
+ drop cascades to function functest_e_1 (integer)
243
+ drop cascades to function functest_e_2 (integer)
244
+ drop cascades to function functest_f_1 (integer)
245
+ drop cascades to function functest_f_2 (integer)
246
+ drop cascades to function functest_f_3 (integer)
247
+ drop cascades to function functest_f_4 (integer)
248
248
drop cascades to function functest_b_2(bigint)
249
249
DROP USER regress_unpriv_user;
250
250
RESET search_path;
0 commit comments