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

Commitc19781a

Browse files
committed
Add some opr_sanity checks that the lengths of the various argument-info
arrays in a pg_proc entry match. Seems like an easy mistake to make whenmanually adjusting these values in a pg_proc.h entry.
1 parente527d50 commitc19781a

File tree

2 files changed

+81
-0
lines changed

2 files changed

+81
-0
lines changed

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

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,55 @@ WHERE p1.prorettype = 'internal'::regtype AND NOT
275275
2304 | internal_in
276276
(1 row)
277277

278+
-- Check for length inconsistencies between the various argument-info arrays.
279+
SELECT p1.oid, p1.proname
280+
FROM pg_proc as p1
281+
WHERE proallargtypes IS NOT NULL AND
282+
array_length(proallargtypes,1) < array_length(proargtypes,1);
283+
oid | proname
284+
-----+---------
285+
(0 rows)
286+
287+
SELECT p1.oid, p1.proname
288+
FROM pg_proc as p1
289+
WHERE proargmodes IS NOT NULL AND
290+
array_length(proargmodes,1) < array_length(proargtypes,1);
291+
oid | proname
292+
-----+---------
293+
(0 rows)
294+
295+
SELECT p1.oid, p1.proname
296+
FROM pg_proc as p1
297+
WHERE proargnames IS NOT NULL AND
298+
array_length(proargnames,1) < array_length(proargtypes,1);
299+
oid | proname
300+
-----+---------
301+
(0 rows)
302+
303+
SELECT p1.oid, p1.proname
304+
FROM pg_proc as p1
305+
WHERE proallargtypes IS NOT NULL AND proargmodes IS NOT NULL AND
306+
array_length(proallargtypes,1) <> array_length(proargmodes,1);
307+
oid | proname
308+
-----+---------
309+
(0 rows)
310+
311+
SELECT p1.oid, p1.proname
312+
FROM pg_proc as p1
313+
WHERE proallargtypes IS NOT NULL AND proargnames IS NOT NULL AND
314+
array_length(proallargtypes,1) <> array_length(proargnames,1);
315+
oid | proname
316+
-----+---------
317+
(0 rows)
318+
319+
SELECT p1.oid, p1.proname
320+
FROM pg_proc as p1
321+
WHERE proargmodes IS NOT NULL AND proargnames IS NOT NULL AND
322+
array_length(proargmodes,1) <> array_length(proargnames,1);
323+
oid | proname
324+
-----+---------
325+
(0 rows)
326+
278327
-- **************** pg_cast ****************
279328
-- Catch bogus values in pg_cast columns (other than cases detected by
280329
-- oidjoins test).

‎src/test/regress/sql/opr_sanity.sql

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,38 @@ FROM pg_proc as p1
218218
WHEREp1.prorettype='internal'::regtypeAND NOT
219219
'internal'::regtype= ANY (p1.proargtypes);
220220

221+
-- Check for length inconsistencies between the various argument-info arrays.
222+
223+
SELECTp1.oid,p1.proname
224+
FROM pg_procas p1
225+
WHERE proallargtypesIS NOT NULLAND
226+
array_length(proallargtypes,1)< array_length(proargtypes,1);
227+
228+
SELECTp1.oid,p1.proname
229+
FROM pg_procas p1
230+
WHERE proargmodesIS NOT NULLAND
231+
array_length(proargmodes,1)< array_length(proargtypes,1);
232+
233+
SELECTp1.oid,p1.proname
234+
FROM pg_procas p1
235+
WHERE proargnamesIS NOT NULLAND
236+
array_length(proargnames,1)< array_length(proargtypes,1);
237+
238+
SELECTp1.oid,p1.proname
239+
FROM pg_procas p1
240+
WHERE proallargtypesIS NOT NULLAND proargmodesIS NOT NULLAND
241+
array_length(proallargtypes,1)<> array_length(proargmodes,1);
242+
243+
SELECTp1.oid,p1.proname
244+
FROM pg_procas p1
245+
WHERE proallargtypesIS NOT NULLAND proargnamesIS NOT NULLAND
246+
array_length(proallargtypes,1)<> array_length(proargnames,1);
247+
248+
SELECTp1.oid,p1.proname
249+
FROM pg_procas p1
250+
WHERE proargmodesIS NOT NULLAND proargnamesIS NOT NULLAND
251+
array_length(proargmodes,1)<> array_length(proargnames,1);
252+
221253

222254
-- **************** pg_cast ****************
223255

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp