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

Commitd4ed178

Browse files
committed
Expanded opr_sanity test to look at pg_proc and other
related tables.
1 parentb0a66dd commitd4ed178

File tree

2 files changed

+616
-90
lines changed

2 files changed

+616
-90
lines changed

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

Lines changed: 297 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,35 @@
1-
QUERY: SELECT p1.oid, p1.* FROM pg_operator AS p1
2-
WHERE p1.oprleft != 0 AND NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = p1.oprleft);
3-
oid|oprname|oprowner|oprprec|oprkind|oprisleft|oprcanhash|oprleft|oprright|oprresult|oprcom|oprnegate|oprlsortop|oprrsortop|oprcode|oprrest|oprjoin
4-
---+-------+--------+-------+-------+---------+----------+-------+--------+---------+------+---------+----------+----------+-------+-------+-------
1+
QUERY: SELECT p1.oid, p1.proname
2+
FROM pg_proc as p1
3+
WHERE p1.prolang = 0 OR p1.prorettype = 0 OR
4+
p1.pronargs < 0 OR p1.pronargs > 9;
5+
oid|proname
6+
---+-------
57
(0 rows)
68

7-
QUERY: SELECT p1.oid, p1.* FROM pg_operator AS p1
8-
WHERE p1.oprright != 0 AND NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = p1.oprright);
9-
oid|oprname|oprowner|oprprec|oprkind|oprisleft|oprcanhash|oprleft|oprright|oprresult|oprcom|oprnegate|oprlsortop|oprrsortop|oprcode|oprrest|oprjoin
10-
---+-------+--------+-------+-------+---------+----------+-------+--------+---------+------+---------+----------+----------+-------+-------+-------
9+
QUERY: SELECT p1.oid, p1.oprname
10+
FROM pg_operator as p1
11+
WHERE (p1.oprkind != 'b' AND p1.oprkind != 'l' AND p1.oprkind != 'r') OR
12+
p1.oprresult = 0 OR p1.oprcode = 0;
13+
oid|oprname
14+
---+-------
1115
(0 rows)
1216

13-
QUERY: SELECT p1.oid, p1.* FROM pg_operator AS p1
14-
WHERE p1.oprresult != 0 AND NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = p1.oprresult);
15-
oid|oprname|oprowner|oprprec|oprkind|oprisleft|oprcanhash|oprleft|oprright|oprresult|oprcom|oprnegate|oprlsortop|oprrsortop|oprcode|oprrest|oprjoin
16-
---+-------+--------+-------+-------+---------+----------+-------+--------+---------+------+---------+----------+----------+-------+-------+-------
17+
QUERY: SELECT p1.oid, p1.oprname
18+
FROM pg_operator as p1
19+
WHERE (p1.oprleft = 0 and p1.oprkind != 'l') OR
20+
(p1.oprleft != 0 and p1.oprkind = 'l') OR
21+
(p1.oprright = 0 and p1.oprkind != 'r') OR
22+
(p1.oprright != 0 and p1.oprkind = 'r');
23+
oid|oprname
24+
---+-------
1725
(0 rows)
1826

19-
QUERY: SELECT p1.oid, p1.* FROM pg_operator AS p1
20-
WHERE p1.oprcom != 0 AND NOT
21-
EXISTS(SELECT * FROM pg_operator AS p2 WHERE p2.oid = p1.oprcom);
22-
oid|oprname|oprowner|oprprec|oprkind|oprisleft|oprcanhash|oprleft|oprright|oprresult|oprcom|oprnegate|oprlsortop|oprrsortop|oprcode|oprrest|oprjoin
23-
---+-------+--------+-------+-------+---------+----------+-------+--------+---------+------+---------+----------+----------+-------+-------+-------
24-
(0 rows)
25-
26-
QUERY: SELECT p1.oid, p1.* FROM pg_operator AS p1
27-
WHERE p1.oprnegate != 0 AND NOT
28-
EXISTS(SELECT * FROM pg_operator AS p2 WHERE p2.oid = p1.oprnegate);
29-
oid|oprname|oprowner|oprprec|oprkind|oprisleft|oprcanhash|oprleft|oprright|oprresult|oprcom|oprnegate|oprlsortop|oprrsortop|oprcode|oprrest|oprjoin
30-
---+-------+--------+-------+-------+---------+----------+-------+--------+---------+------+---------+----------+----------+-------+-------+-------
31-
(0 rows)
32-
33-
QUERY: SELECT p1.oid, p1.* FROM pg_operator AS p1
34-
WHERE p1.oprlsortop != 0 AND NOT
35-
EXISTS(SELECT * FROM pg_operator AS p2 WHERE p2.oid = p1.oprlsortop);
36-
oid|oprname|oprowner|oprprec|oprkind|oprisleft|oprcanhash|oprleft|oprright|oprresult|oprcom|oprnegate|oprlsortop|oprrsortop|oprcode|oprrest|oprjoin
37-
---+-------+--------+-------+-------+---------+----------+-------+--------+---------+------+---------+----------+----------+-------+-------+-------
38-
(0 rows)
39-
40-
QUERY: SELECT p1.oid, p1.* FROM pg_operator AS p1
41-
WHERE p1.oprrsortop != 0 AND NOT
42-
EXISTS(SELECT * FROM pg_operator AS p2 WHERE p2.oid = p1.oprrsortop);
43-
oid|oprname|oprowner|oprprec|oprkind|oprisleft|oprcanhash|oprleft|oprright|oprresult|oprcom|oprnegate|oprlsortop|oprrsortop|oprcode|oprrest|oprjoin
44-
---+-------+--------+-------+-------+---------+----------+-------+--------+---------+------+---------+----------+----------+-------+-------+-------
27+
QUERY: SELECT p1.oid, p1.oprname
28+
FROM pg_operator as p1
29+
WHERE p1.oprcanhash AND NOT
30+
(p1.oprkind = 'b' AND p1.oprresult = 16 AND p1.oprcom != 0);
31+
oid|oprname
32+
---+-------
4533
(0 rows)
4634

4735
QUERY: SELECT p1.oid, p1.oprcode, p2.oid, p2.oprcode
@@ -108,32 +96,286 @@ oid|oprcode|oid|oprcode
10896
---+-------+---+-------
10997
(0 rows)
11098

111-
QUERY: SELECT p1.oid, p1.* FROM pg_operator AS p1
99+
QUERY: SELECT p1.oid, p1.oprname FROM pg_operator AS p1
112100
WHERE p1.oprlsortop != 0 AND
113101
p1.oprcom = 0;
114-
oid|oprname|oprowner|oprprec|oprkind|oprisleft|oprcanhash|oprleft|oprright|oprresult|oprcom|oprnegate|oprlsortop|oprrsortop|oprcode|oprrest|oprjoin
115-
---+-------+--------+-------+-------+---------+----------+-------+--------+---------+------+---------+----------+----------+-------+-------+-------
102+
oid|oprname
103+
---+-------
116104
(0 rows)
117105

118-
QUERY: SELECT p1.oid, p1.* FROM pg_operator AS p1
106+
QUERY: SELECT p1.oid, p1.oprname FROM pg_operator AS p1
119107
WHERE p1.oprlsortop != 0 AND NOT
120108
EXISTS(SELECT * FROM pg_operator AS p2 WHERE
121-
p2.oprname = '<' AND
122-
p2.oprleft = p1.oprleft AND
123-
p2.oprright = p1.oprright AND
124-
p2.oprkind = 'b');
125-
oid|oprname|oprowner|oprprec|oprkind|oprisleft|oprcanhash|oprleft|oprright|oprresult|oprcom|oprnegate|oprlsortop|oprrsortop|oprcode|oprrest|oprjoin
126-
---+-------+--------+-------+-------+---------+----------+-------+--------+---------+------+---------+----------+----------+-------+-------+-------
109+
p2.oprname = '<' AND
110+
p2.oprleft = p1.oprleft AND
111+
p2.oprright = p1.oprright AND
112+
p2.oprkind = 'b');
113+
oid|oprname
114+
---+-------
127115
(0 rows)
128116

129-
QUERY: SELECT p1.oid, p1.* FROM pg_operator AS p1
117+
QUERY: SELECT p1.oid, p1.oprname FROM pg_operator AS p1
130118
WHERE p1.oprlsortop != 0 AND NOT
131119
EXISTS(SELECT * FROM pg_operator AS p2 WHERE
132-
p2.oprname = '>' AND
133-
p2.oprleft = p1.oprleft AND
134-
p2.oprright = p1.oprright AND
135-
p2.oprkind = 'b');
136-
oid|oprname|oprowner|oprprec|oprkind|oprisleft|oprcanhash|oprleft|oprright|oprresult|oprcom|oprnegate|oprlsortop|oprrsortop|oprcode|oprrest|oprjoin
137-
---+-------+--------+-------+-------+---------+----------+-------+--------+---------+------+---------+----------+----------+-------+-------+-------
120+
p2.oprname = '>' AND
121+
p2.oprleft = p1.oprleft AND
122+
p2.oprright = p1.oprright AND
123+
p2.oprkind = 'b');
124+
oid|oprname
125+
---+-------
126+
(0 rows)
127+
128+
QUERY: SELECT p1.oid, p1.oprname, p2.oid, p2.proname
129+
FROM pg_operator AS p1, pg_proc AS p2
130+
WHERE p1.oprcode = p2.oid AND
131+
p1.oprkind = 'b' AND
132+
(p2.pronargs != 2
133+
);
134+
oid|oprname|oid|proname
135+
---+-------+---+-------
136+
(0 rows)
137+
138+
QUERY: SELECT p1.oid, p1.oprname, p2.oid, p2.proname
139+
FROM pg_operator AS p1, pg_proc AS p2
140+
WHERE p1.oprcode = p2.oid AND
141+
p1.oprkind = 'l' AND
142+
(p2.pronargs != 1 OR
143+
p1.oprresult != p2.prorettype OR
144+
(p1.oprright != p2.proargtypes[0] AND p2.proargtypes[0] != 0) OR
145+
p1.oprleft != 0);
146+
oid|oprname|oid|proname
147+
---+-------+---+-------
148+
(0 rows)
149+
150+
QUERY: SELECT p1.oid, p1.oprname, p2.oid, p2.proname
151+
FROM pg_operator AS p1, pg_proc AS p2
152+
WHERE p1.oprcode = p2.oid AND
153+
p1.oprkind = 'r' AND
154+
(p2.pronargs != 1 OR
155+
p1.oprresult != p2.prorettype OR
156+
(p1.oprleft != p2.proargtypes[0] AND p2.proargtypes[0] != 0) OR
157+
p1.oprright != 0);
158+
oid|oprname|oid|proname
159+
---+-------+---+-------
160+
(0 rows)
161+
162+
QUERY: SELECT p1.oid, p1.oprname, p2.oid, p2.proname
163+
FROM pg_operator AS p1, pg_proc AS p2
164+
WHERE p1.oprrest = p2.oid AND
165+
(p1.oprresult != 16 OR
166+
p2.prorettype != 701 OR p2.proretset OR
167+
p2.pronargs != 5 OR
168+
p2.proargtypes[0] != 26 OR p2.proargtypes[1] != 26 OR
169+
p2.proargtypes[2] != 21 OR p2.proargtypes[3] != 0 OR
170+
p2.proargtypes[4] != 23);
171+
oid|oprname|oid|proname
172+
---+-------+---+-------
173+
(0 rows)
174+
175+
QUERY: SELECT p1.oid, p1.oprname, p2.oid, p2.proname
176+
FROM pg_operator AS p1, pg_proc AS p2
177+
WHERE p1.oprjoin = p2.oid AND
178+
(p1.oprkind != 'b' OR p1.oprresult != 16 OR
179+
p2.prorettype != 701 OR p2.proretset OR
180+
p2.pronargs != 5 OR
181+
p2.proargtypes[0] != 26 OR p2.proargtypes[1] != 26 OR
182+
p2.proargtypes[2] != 21 OR p2.proargtypes[3] != 26 OR
183+
p2.proargtypes[4] != 21);
184+
oid|oprname|oid|proname
185+
---+-------+---+-------
186+
(0 rows)
187+
188+
QUERY: SELECT p1.oid, p1.aggname
189+
FROM pg_aggregate as p1
190+
WHERE (p1.aggbasetype = 0 AND p1.aggtransfn1 != 0) OR aggfinaltype = 0;
191+
oid|aggname
192+
---+-------
193+
(0 rows)
194+
195+
QUERY: SELECT p1.oid, p1.aggname
196+
FROM pg_aggregate as p1
197+
WHERE p1.aggtransfn1 = 0 AND p1.aggtransfn2 = 0;
198+
oid|aggname
199+
---+-------
200+
(0 rows)
201+
202+
QUERY: SELECT p1.oid, p1.aggname
203+
FROM pg_aggregate as p1
204+
WHERE p1.aggtransfn1 != 0 AND p1.aggtransfn2 = 0 AND
205+
(p1.aggtranstype1 = 0 OR p1.aggtranstype2 != 0 OR
206+
(p1.aggfinalfn = 0 AND p1.aggfinaltype != p1.aggtranstype1));
207+
oid|aggname
208+
---+-------
209+
(0 rows)
210+
211+
QUERY: SELECT p1.oid, p1.aggname
212+
FROM pg_aggregate as p1
213+
WHERE p1.aggtransfn1 = 0 AND p1.aggtransfn2 != 0 AND
214+
(p1.aggtranstype1 != 0 OR p1.aggtranstype2 = 0 OR
215+
(p1.aggfinalfn = 0 AND p1.aggfinaltype != p1.aggtranstype2));
216+
oid|aggname
217+
---+-------
218+
(0 rows)
219+
220+
QUERY: SELECT p1.oid, p1.aggname
221+
FROM pg_aggregate as p1
222+
WHERE p1.aggtransfn1 != 0 AND p1.aggtransfn2 != 0 AND
223+
(p1.aggtranstype1 = 0 OR p1.aggtranstype2 = 0 OR
224+
p1.aggfinalfn = 0);
225+
oid|aggname
226+
---+-------
227+
(0 rows)
228+
229+
QUERY: SELECT p1.oid, p1.aggname, p2.oid, p2.proname
230+
FROM pg_aggregate AS p1, pg_proc AS p2
231+
WHERE p1.aggtransfn1 = p2.oid AND
232+
(p2.proretset OR p2.pronargs != 2
233+
);
234+
oid|aggname|oid|proname
235+
---+-------+---+-------
236+
(0 rows)
237+
238+
QUERY: SELECT p1.oid, p1.aggname, p2.oid, p2.proname
239+
FROM pg_aggregate AS p1, pg_proc AS p2
240+
WHERE p1.aggtransfn2 = p2.oid AND
241+
(p2.proretset OR p1.aggtranstype2 != p2.prorettype OR
242+
p2.pronargs != 1 OR
243+
p1.aggtranstype2 != p2.proargtypes[0]);
244+
oid|aggname|oid|proname
245+
---+-------+---+-------
246+
(0 rows)
247+
248+
QUERY: SELECT p1.oid, p1.aggname, p2.oid, p2.proname
249+
FROM pg_aggregate AS p1, pg_proc AS p2
250+
WHERE p1.aggfinalfn = p2.oid AND
251+
(p2.proretset OR p1.aggfinaltype != p2.prorettype OR
252+
p2.pronargs != 2 OR
253+
p1.aggtranstype1 != p2.proargtypes[0] OR
254+
p1.aggtranstype2 != p2.proargtypes[1]);
255+
oid|aggname|oid|proname
256+
---+-------+---+-------
257+
(0 rows)
258+
259+
QUERY: SELECT p1.oid
260+
FROM pg_amop as p1
261+
WHERE p1.amopid = 0 OR p1.amopclaid = 0 OR p1.amopopr = 0 OR
262+
p1.amopstrategy <= 0 OR p1.amopselect = 0 OR p1.amopnpages = 0;
263+
oid
264+
---
265+
(0 rows)
266+
267+
QUERY: SELECT p1.oid, p2.oid
268+
FROM pg_amop AS p1, pg_amop AS p2
269+
WHERE p1.oid != p2.oid AND
270+
p1.amopid = p2.amopid AND
271+
p1.amopclaid = p2.amopclaid AND
272+
p1.amopstrategy = p2.amopstrategy;
273+
oid|oid
274+
---+---
275+
(0 rows)
276+
277+
QUERY: SELECT p1.oid, p2.oid, p2.amname
278+
FROM pg_amop AS p1, pg_am AS p2
279+
WHERE p1.amopid = p2.oid AND p1.amopstrategy > p2.amstrategies;
280+
oid|oid|amname
281+
---+---+------
282+
(0 rows)
283+
284+
QUERY: SELECT p1.oid, p1.amname, p2.oid, p2.opcname
285+
FROM pg_am AS p1, pg_opclass AS p2
286+
WHERE p1.amstrategies != (SELECT count(*) FROM pg_amop AS p3
287+
WHERE p3.amopid = p1.oid AND p3.amopclaid = p2.oid)
288+
AND EXISTS (SELECT * FROM pg_amop AS p3
289+
WHERE p3.amopid = p1.oid AND p3.amopclaid = p2.oid);
290+
oid|amname|oid|opcname
291+
---+------+---+-------
292+
(0 rows)
293+
294+
QUERY: SELECT p1.oid, p2.oid, p2.oprname
295+
FROM pg_amop AS p1, pg_operator AS p2
296+
WHERE p1.amopopr = p2.oid AND
297+
(p2.oprkind != 'b' OR p2.oprresult != 16);
298+
oid|oid|oprname
299+
---+---+-------
300+
(0 rows)
301+
302+
QUERY: SELECT p1.oid, p2.oid, p2.oprname, p3.oid, p3.opcname
303+
FROM pg_amop AS p1, pg_operator AS p2, pg_opclass AS p3
304+
WHERE p1.amopopr = p2.oid AND p1.amopclaid = p3.oid AND
305+
p3.opcdeftype != 0 AND
306+
(p3.opcdeftype != p2.oprleft OR p3.opcdeftype != p2.oprright);
307+
oid|oid|oprname|oid|opcname
308+
---+---+-------+---+-------
309+
(0 rows)
310+
311+
QUERY: SELECT p1.oid, p2.oid, p2.proname
312+
FROM pg_amop AS p1, pg_proc AS p2
313+
WHERE p1.amopselect = p2.oid AND
314+
(p2.prorettype != 701 OR p2.proretset OR
315+
p2.pronargs != 7 OR
316+
p2.proargtypes[0] != 26 OR p2.proargtypes[1] != 26 OR
317+
p2.proargtypes[2] != 21 OR p2.proargtypes[3] != 0 OR
318+
p2.proargtypes[4] != 23 OR p2.proargtypes[5] != 23 OR
319+
p2.proargtypes[6] != 26);
320+
oid|oid|proname
321+
---+---+-------
322+
(0 rows)
323+
324+
QUERY: SELECT p1.oid, p2.oid, p2.proname
325+
FROM pg_amop AS p1, pg_proc AS p2
326+
WHERE p1.amopnpages = p2.oid AND
327+
(p2.prorettype != 701 OR p2.proretset OR
328+
p2.pronargs != 7 OR
329+
p2.proargtypes[0] != 26 OR p2.proargtypes[1] != 26 OR
330+
p2.proargtypes[2] != 21 OR p2.proargtypes[3] != 0 OR
331+
p2.proargtypes[4] != 23 OR p2.proargtypes[5] != 23 OR
332+
p2.proargtypes[6] != 26);
333+
oid|oid|proname
334+
---+---+-------
335+
(0 rows)
336+
337+
QUERY: SELECT p1.oid
338+
FROM pg_amproc as p1
339+
WHERE p1.amid = 0 OR p1.amopclaid = 0 OR p1.amproc = 0 OR
340+
p1.amprocnum <= 0;
341+
oid
342+
---
343+
(0 rows)
344+
345+
QUERY: SELECT p1.oid, p2.oid
346+
FROM pg_amproc AS p1, pg_amproc AS p2
347+
WHERE p1.oid != p2.oid AND
348+
p1.amid = p2.amid AND
349+
p1.amopclaid = p2.amopclaid AND
350+
p1.amprocnum = p2.amprocnum;
351+
oid|oid
352+
---+---
353+
(0 rows)
354+
355+
QUERY: SELECT p1.oid, p2.oid, p2.amname
356+
FROM pg_amproc AS p1, pg_am AS p2
357+
WHERE p1.amid = p2.oid AND p1.amprocnum > p2.amsupport;
358+
oid|oid|amname
359+
---+---+------
360+
(0 rows)
361+
362+
QUERY: SELECT p1.oid, p1.amname, p2.oid, p2.opcname
363+
FROM pg_am AS p1, pg_opclass AS p2
364+
WHERE p1.amsupport != (SELECT count(*) FROM pg_amproc AS p3
365+
WHERE p3.amid = p1.oid AND p3.amopclaid = p2.oid)
366+
AND EXISTS (SELECT * FROM pg_amproc AS p3
367+
WHERE p3.amid = p1.oid AND p3.amopclaid = p2.oid);
368+
oid|amname|oid|opcname
369+
---+------+---+-------
370+
(0 rows)
371+
372+
QUERY: SELECT p1.oid, p2.oid, p2.proname, p3.oid, p4.oid, p4.proname
373+
FROM pg_amproc AS p1, pg_proc AS p2, pg_amproc AS p3, pg_proc AS p4
374+
WHERE p1.oid != p3.oid AND
375+
p1.amid = p3.amid AND p1.amprocnum = p3.amprocnum AND
376+
p1.amproc = p2.oid AND p3.amproc = p4.oid AND
377+
(p2.proretset OR p4.proretset OR p2.pronargs != p4.pronargs);
378+
oid|oid|proname|oid|oid|proname
379+
---+---+-------+---+---+-------
138380
(0 rows)
139381

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp