@@ -149,244 +149,6 @@ CREATE FUNCTION functext_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
- ---
153
- -- list of built-in leakproof functions
154
- ---
155
- -- temporarily disable fancy output, so catalog changes create less diff noise
156
- \a\t
157
- SELECT proname, prorettype::regtype, proargtypes::regtype[]
158
- FROM pg_proc JOIN pg_namespace ON pronamespace = pg_namespace.oid
159
- WHERE nspname = 'pg_catalog' AND proleakproof ORDER BY proname;
160
- abstimeeq|boolean|[0:1]={abstime,abstime}
161
- abstimege|boolean|[0:1]={abstime,abstime}
162
- abstimegt|boolean|[0:1]={abstime,abstime}
163
- abstimele|boolean|[0:1]={abstime,abstime}
164
- abstimelt|boolean|[0:1]={abstime,abstime}
165
- abstimene|boolean|[0:1]={abstime,abstime}
166
- biteq|boolean|[0:1]={bit,bit}
167
- bitge|boolean|[0:1]={bit,bit}
168
- bitgt|boolean|[0:1]={bit,bit}
169
- bitle|boolean|[0:1]={bit,bit}
170
- bitlt|boolean|[0:1]={bit,bit}
171
- bitne|boolean|[0:1]={bit,bit}
172
- booleq|boolean|[0:1]={boolean,boolean}
173
- boolge|boolean|[0:1]={boolean,boolean}
174
- boolgt|boolean|[0:1]={boolean,boolean}
175
- boolle|boolean|[0:1]={boolean,boolean}
176
- boollt|boolean|[0:1]={boolean,boolean}
177
- boolne|boolean|[0:1]={boolean,boolean}
178
- bpchareq|boolean|[0:1]={character,character}
179
- bpcharne|boolean|[0:1]={character,character}
180
- byteaeq|boolean|[0:1]={bytea,bytea}
181
- byteage|boolean|[0:1]={bytea,bytea}
182
- byteagt|boolean|[0:1]={bytea,bytea}
183
- byteale|boolean|[0:1]={bytea,bytea}
184
- bytealt|boolean|[0:1]={bytea,bytea}
185
- byteane|boolean|[0:1]={bytea,bytea}
186
- cash_eq|boolean|[0:1]={money,money}
187
- cash_ge|boolean|[0:1]={money,money}
188
- cash_gt|boolean|[0:1]={money,money}
189
- cash_le|boolean|[0:1]={money,money}
190
- cash_lt|boolean|[0:1]={money,money}
191
- cash_ne|boolean|[0:1]={money,money}
192
- chareq|boolean|[0:1]={"\"char\"","\"char\""}
193
- charge|boolean|[0:1]={"\"char\"","\"char\""}
194
- chargt|boolean|[0:1]={"\"char\"","\"char\""}
195
- charle|boolean|[0:1]={"\"char\"","\"char\""}
196
- charlt|boolean|[0:1]={"\"char\"","\"char\""}
197
- charne|boolean|[0:1]={"\"char\"","\"char\""}
198
- cideq|boolean|[0:1]={cid,cid}
199
- circle_eq|boolean|[0:1]={circle,circle}
200
- circle_ge|boolean|[0:1]={circle,circle}
201
- circle_gt|boolean|[0:1]={circle,circle}
202
- circle_le|boolean|[0:1]={circle,circle}
203
- circle_lt|boolean|[0:1]={circle,circle}
204
- circle_ne|boolean|[0:1]={circle,circle}
205
- date_eq|boolean|[0:1]={date,date}
206
- date_ge|boolean|[0:1]={date,date}
207
- date_gt|boolean|[0:1]={date,date}
208
- date_le|boolean|[0:1]={date,date}
209
- date_lt|boolean|[0:1]={date,date}
210
- date_ne|boolean|[0:1]={date,date}
211
- float48eq|boolean|[0:1]={real,"double precision"}
212
- float48ge|boolean|[0:1]={real,"double precision"}
213
- float48gt|boolean|[0:1]={real,"double precision"}
214
- float48le|boolean|[0:1]={real,"double precision"}
215
- float48lt|boolean|[0:1]={real,"double precision"}
216
- float48ne|boolean|[0:1]={real,"double precision"}
217
- float4eq|boolean|[0:1]={real,real}
218
- float4ge|boolean|[0:1]={real,real}
219
- float4gt|boolean|[0:1]={real,real}
220
- float4le|boolean|[0:1]={real,real}
221
- float4lt|boolean|[0:1]={real,real}
222
- float4ne|boolean|[0:1]={real,real}
223
- float84eq|boolean|[0:1]={"double precision",real}
224
- float84ge|boolean|[0:1]={"double precision",real}
225
- float84gt|boolean|[0:1]={"double precision",real}
226
- float84le|boolean|[0:1]={"double precision",real}
227
- float84lt|boolean|[0:1]={"double precision",real}
228
- float84ne|boolean|[0:1]={"double precision",real}
229
- float8eq|boolean|[0:1]={"double precision","double precision"}
230
- float8ge|boolean|[0:1]={"double precision","double precision"}
231
- float8gt|boolean|[0:1]={"double precision","double precision"}
232
- float8le|boolean|[0:1]={"double precision","double precision"}
233
- float8lt|boolean|[0:1]={"double precision","double precision"}
234
- float8ne|boolean|[0:1]={"double precision","double precision"}
235
- int24eq|boolean|[0:1]={smallint,integer}
236
- int24ge|boolean|[0:1]={smallint,integer}
237
- int24gt|boolean|[0:1]={smallint,integer}
238
- int24le|boolean|[0:1]={smallint,integer}
239
- int24lt|boolean|[0:1]={smallint,integer}
240
- int24ne|boolean|[0:1]={smallint,integer}
241
- int28eq|boolean|[0:1]={smallint,bigint}
242
- int28ge|boolean|[0:1]={smallint,bigint}
243
- int28gt|boolean|[0:1]={smallint,bigint}
244
- int28le|boolean|[0:1]={smallint,bigint}
245
- int28lt|boolean|[0:1]={smallint,bigint}
246
- int28ne|boolean|[0:1]={smallint,bigint}
247
- int2eq|boolean|[0:1]={smallint,smallint}
248
- int2ge|boolean|[0:1]={smallint,smallint}
249
- int2gt|boolean|[0:1]={smallint,smallint}
250
- int2le|boolean|[0:1]={smallint,smallint}
251
- int2lt|boolean|[0:1]={smallint,smallint}
252
- int2ne|boolean|[0:1]={smallint,smallint}
253
- int42eq|boolean|[0:1]={integer,smallint}
254
- int42ge|boolean|[0:1]={integer,smallint}
255
- int42gt|boolean|[0:1]={integer,smallint}
256
- int42le|boolean|[0:1]={integer,smallint}
257
- int42lt|boolean|[0:1]={integer,smallint}
258
- int42ne|boolean|[0:1]={integer,smallint}
259
- int48eq|boolean|[0:1]={integer,bigint}
260
- int48ge|boolean|[0:1]={integer,bigint}
261
- int48gt|boolean|[0:1]={integer,bigint}
262
- int48le|boolean|[0:1]={integer,bigint}
263
- int48lt|boolean|[0:1]={integer,bigint}
264
- int48ne|boolean|[0:1]={integer,bigint}
265
- int4eq|boolean|[0:1]={integer,integer}
266
- int4ge|boolean|[0:1]={integer,integer}
267
- int4gt|boolean|[0:1]={integer,integer}
268
- int4le|boolean|[0:1]={integer,integer}
269
- int4lt|boolean|[0:1]={integer,integer}
270
- int4ne|boolean|[0:1]={integer,integer}
271
- int82eq|boolean|[0:1]={bigint,smallint}
272
- int82ge|boolean|[0:1]={bigint,smallint}
273
- int82gt|boolean|[0:1]={bigint,smallint}
274
- int82le|boolean|[0:1]={bigint,smallint}
275
- int82lt|boolean|[0:1]={bigint,smallint}
276
- int82ne|boolean|[0:1]={bigint,smallint}
277
- int84eq|boolean|[0:1]={bigint,integer}
278
- int84ge|boolean|[0:1]={bigint,integer}
279
- int84gt|boolean|[0:1]={bigint,integer}
280
- int84le|boolean|[0:1]={bigint,integer}
281
- int84lt|boolean|[0:1]={bigint,integer}
282
- int84ne|boolean|[0:1]={bigint,integer}
283
- int8eq|boolean|[0:1]={bigint,bigint}
284
- int8ge|boolean|[0:1]={bigint,bigint}
285
- int8gt|boolean|[0:1]={bigint,bigint}
286
- int8le|boolean|[0:1]={bigint,bigint}
287
- int8lt|boolean|[0:1]={bigint,bigint}
288
- int8ne|boolean|[0:1]={bigint,bigint}
289
- interval_eq|boolean|[0:1]={interval,interval}
290
- interval_ge|boolean|[0:1]={interval,interval}
291
- interval_gt|boolean|[0:1]={interval,interval}
292
- interval_le|boolean|[0:1]={interval,interval}
293
- interval_lt|boolean|[0:1]={interval,interval}
294
- interval_ne|boolean|[0:1]={interval,interval}
295
- lseg_eq|boolean|[0:1]={lseg,lseg}
296
- lseg_ge|boolean|[0:1]={lseg,lseg}
297
- lseg_gt|boolean|[0:1]={lseg,lseg}
298
- lseg_le|boolean|[0:1]={lseg,lseg}
299
- lseg_lt|boolean|[0:1]={lseg,lseg}
300
- lseg_ne|boolean|[0:1]={lseg,lseg}
301
- macaddr_eq|boolean|[0:1]={macaddr,macaddr}
302
- macaddr_ge|boolean|[0:1]={macaddr,macaddr}
303
- macaddr_gt|boolean|[0:1]={macaddr,macaddr}
304
- macaddr_le|boolean|[0:1]={macaddr,macaddr}
305
- macaddr_lt|boolean|[0:1]={macaddr,macaddr}
306
- macaddr_ne|boolean|[0:1]={macaddr,macaddr}
307
- nameeq|boolean|[0:1]={name,name}
308
- namege|boolean|[0:1]={name,name}
309
- namegt|boolean|[0:1]={name,name}
310
- namele|boolean|[0:1]={name,name}
311
- namelt|boolean|[0:1]={name,name}
312
- namene|boolean|[0:1]={name,name}
313
- network_eq|boolean|[0:1]={inet,inet}
314
- network_ge|boolean|[0:1]={inet,inet}
315
- network_gt|boolean|[0:1]={inet,inet}
316
- network_le|boolean|[0:1]={inet,inet}
317
- network_lt|boolean|[0:1]={inet,inet}
318
- network_ne|boolean|[0:1]={inet,inet}
319
- oideq|boolean|[0:1]={oid,oid}
320
- oidge|boolean|[0:1]={oid,oid}
321
- oidgt|boolean|[0:1]={oid,oid}
322
- oidle|boolean|[0:1]={oid,oid}
323
- oidlt|boolean|[0:1]={oid,oid}
324
- oidne|boolean|[0:1]={oid,oid}
325
- reltimeeq|boolean|[0:1]={reltime,reltime}
326
- reltimege|boolean|[0:1]={reltime,reltime}
327
- reltimegt|boolean|[0:1]={reltime,reltime}
328
- reltimele|boolean|[0:1]={reltime,reltime}
329
- reltimelt|boolean|[0:1]={reltime,reltime}
330
- reltimene|boolean|[0:1]={reltime,reltime}
331
- texteq|boolean|[0:1]={text,text}
332
- textne|boolean|[0:1]={text,text}
333
- tideq|boolean|[0:1]={tid,tid}
334
- tidge|boolean|[0:1]={tid,tid}
335
- tidgt|boolean|[0:1]={tid,tid}
336
- tidle|boolean|[0:1]={tid,tid}
337
- tidlt|boolean|[0:1]={tid,tid}
338
- tidne|boolean|[0:1]={tid,tid}
339
- time_eq|boolean|[0:1]={"time without time zone","time without time zone"}
340
- time_ge|boolean|[0:1]={"time without time zone","time without time zone"}
341
- time_gt|boolean|[0:1]={"time without time zone","time without time zone"}
342
- time_le|boolean|[0:1]={"time without time zone","time without time zone"}
343
- time_lt|boolean|[0:1]={"time without time zone","time without time zone"}
344
- time_ne|boolean|[0:1]={"time without time zone","time without time zone"}
345
- timestamp_eq|boolean|[0:1]={"timestamp without time zone","timestamp without time zone"}
346
- timestamp_ge|boolean|[0:1]={"timestamp without time zone","timestamp without time zone"}
347
- timestamp_gt|boolean|[0:1]={"timestamp without time zone","timestamp without time zone"}
348
- timestamp_le|boolean|[0:1]={"timestamp without time zone","timestamp without time zone"}
349
- timestamp_lt|boolean|[0:1]={"timestamp without time zone","timestamp without time zone"}
350
- timestamp_ne|boolean|[0:1]={"timestamp without time zone","timestamp without time zone"}
351
- timestamptz_eq|boolean|[0:1]={"timestamp with time zone","timestamp with time zone"}
352
- timestamptz_ge|boolean|[0:1]={"timestamp with time zone","timestamp with time zone"}
353
- timestamptz_gt|boolean|[0:1]={"timestamp with time zone","timestamp with time zone"}
354
- timestamptz_le|boolean|[0:1]={"timestamp with time zone","timestamp with time zone"}
355
- timestamptz_lt|boolean|[0:1]={"timestamp with time zone","timestamp with time zone"}
356
- timestamptz_ne|boolean|[0:1]={"timestamp with time zone","timestamp with time zone"}
357
- timetz_eq|boolean|[0:1]={"time with time zone","time with time zone"}
358
- timetz_ge|boolean|[0:1]={"time with time zone","time with time zone"}
359
- timetz_gt|boolean|[0:1]={"time with time zone","time with time zone"}
360
- timetz_le|boolean|[0:1]={"time with time zone","time with time zone"}
361
- timetz_lt|boolean|[0:1]={"time with time zone","time with time zone"}
362
- timetz_ne|boolean|[0:1]={"time with time zone","time with time zone"}
363
- tintervaleq|boolean|[0:1]={tinterval,tinterval}
364
- tintervalge|boolean|[0:1]={tinterval,tinterval}
365
- tintervalgt|boolean|[0:1]={tinterval,tinterval}
366
- tintervalle|boolean|[0:1]={tinterval,tinterval}
367
- tintervalleneq|boolean|[0:1]={tinterval,reltime}
368
- tintervallenge|boolean|[0:1]={tinterval,reltime}
369
- tintervallengt|boolean|[0:1]={tinterval,reltime}
370
- tintervallenle|boolean|[0:1]={tinterval,reltime}
371
- tintervallenlt|boolean|[0:1]={tinterval,reltime}
372
- tintervallenne|boolean|[0:1]={tinterval,reltime}
373
- tintervallt|boolean|[0:1]={tinterval,tinterval}
374
- tintervalne|boolean|[0:1]={tinterval,tinterval}
375
- uuid_eq|boolean|[0:1]={uuid,uuid}
376
- uuid_ge|boolean|[0:1]={uuid,uuid}
377
- uuid_gt|boolean|[0:1]={uuid,uuid}
378
- uuid_le|boolean|[0:1]={uuid,uuid}
379
- uuid_lt|boolean|[0:1]={uuid,uuid}
380
- uuid_ne|boolean|[0:1]={uuid,uuid}
381
- varbiteq|boolean|[0:1]={"bit varying","bit varying"}
382
- varbitge|boolean|[0:1]={"bit varying","bit varying"}
383
- varbitgt|boolean|[0:1]={"bit varying","bit varying"}
384
- varbitle|boolean|[0:1]={"bit varying","bit varying"}
385
- varbitlt|boolean|[0:1]={"bit varying","bit varying"}
386
- varbitne|boolean|[0:1]={"bit varying","bit varying"}
387
- xideq|boolean|[0:1]={xid,xid}
388
- -- restore normal output mode
389
- \a\t
390
152
--
391
153
-- CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
392
154
--
0 commit comments