Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commite0cb4aa

Browse files
committed
Move regression test listing of builtin leakproof functions to opr_sanity.sql.
The original location in create_function_3.sql didn't invite the closestructinity warranted for adding new leakproof functions. Add commentsto the test explaining that functions should only be added aftercareful consideration and understanding what a leakproof function is.Per complaint from Tom Lane after5eebb8d.
1 parent8776faa commite0cb4aa

File tree

4 files changed

+268
-258
lines changed

4 files changed

+268
-258
lines changed

‎src/test/regress/expected/create_function_3.out

Lines changed: 0 additions & 238 deletions
Original file line numberDiff line numberDiff line change
@@ -149,244 +149,6 @@ CREATE FUNCTION functext_E_3(int) RETURNS bool LANGUAGE 'sql'
149149
LEAKPROOF AS 'SELECT $1 < 200';-- failed
150150
ERROR: only superuser can define a leakproof function
151151
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
390152
--
391153
-- CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
392154
--

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp