Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 478d460

Browse files
committed
Add new regression test to catch some simple kinds of
mistakes in creating pg_operator table. NOTE: right now, this will fail because of conflicting definitions for point @ path operator. I trust we're gonna fix that.
1 parent de43a5e commit 478d460

File tree

1 file changed

+110
-0
lines changed

1 file changed

+110
-0
lines changed
+110
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
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+
---+-------+--------+-------+-------+---------+----------+-------+--------+---------+------+---------+----------+----------+-------+-------+-------
5+
(0 rows)
6+
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+
---+-------+--------+-------+-------+---------+----------+-------+--------+---------+------+---------+----------+----------+-------+-------+-------
11+
(0 rows)
12+
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+
(0 rows)
18+
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+
---+-------+--------+-------+-------+---------+----------+-------+--------+---------+------+---------+----------+----------+-------+-------+-------
45+
(0 rows)
46+
47+
QUERY: SELECT p1.oid, p1.oprcode, p2.oid, p2.oprcode
48+
FROM pg_operator AS p1, pg_operator AS p2
49+
WHERE p1.oid != p2.oid AND
50+
p1.oprname = p2.oprname AND
51+
p1.oprkind = p2.oprkind AND
52+
p1.oprleft = p2.oprleft AND
53+
p1.oprright = p2.oprright;
54+
oid|oprcode|oid|oprcode
55+
---+-------+---+-------
56+
(0 rows)
57+
58+
QUERY: SELECT p1.oid, p1.oprcode, p2.oid, p2.oprcode
59+
FROM pg_operator AS p1, pg_operator AS p2
60+
WHERE p1.oprcom = p2.oid AND
61+
(p1.oprkind != 'b' OR
62+
p1.oprleft != p2.oprright OR
63+
p1.oprright != p2.oprleft OR
64+
p1.oprresult != p2.oprresult OR
65+
p1.oid != p2.oprcom);
66+
oid|oprcode|oid|oprcode
67+
---+-------+---+-------
68+
(0 rows)
69+
70+
QUERY: SELECT p1.oid, p1.oprcode, p2.oid, p2.oprcode
71+
FROM pg_operator AS p1, pg_operator AS p2
72+
WHERE p1.oprnegate = p2.oid AND
73+
(p1.oprkind != p2.oprkind OR
74+
p1.oprleft != p2.oprleft OR
75+
p1.oprright != p2.oprright OR
76+
p1.oprresult != 16 OR
77+
p2.oprresult != 16 OR
78+
p1.oid != p2.oprnegate);
79+
oid|oprcode|oid|oprcode
80+
---+-------+---+-------
81+
(0 rows)
82+
83+
QUERY: SELECT p1.oid, p1.oprcode, p2.oid, p2.oprcode
84+
FROM pg_operator AS p1, pg_operator AS p2
85+
WHERE p1.oprlsortop = p2.oid AND
86+
(p1.oprname != '=' OR
87+
p1.oprkind != 'b' OR p2.oprkind != 'b' OR
88+
p1.oprleft != p2.oprleft OR
89+
p1.oprright != p2.oprright OR
90+
p1.oprresult != 16 OR
91+
p2.oprresult != 16 OR
92+
p1.oprrsortop = 0);
93+
oid|oprcode|oid|oprcode
94+
---+-------+---+-------
95+
(0 rows)
96+
97+
QUERY: SELECT p1.oid, p1.oprcode, p2.oid, p2.oprcode
98+
FROM pg_operator AS p1, pg_operator AS p2
99+
WHERE p1.oprrsortop = p2.oid AND
100+
(p1.oprname != '=' OR
101+
p1.oprkind != 'b' OR p2.oprkind != 'b' OR
102+
p1.oprleft != p2.oprleft OR
103+
p1.oprright != p2.oprright OR
104+
p1.oprresult != 16 OR
105+
p2.oprresult != 16 OR
106+
p1.oprlsortop = 0);
107+
oid|oprcode|oid|oprcode
108+
---+-------+---+-------
109+
(0 rows)
110+

0 commit comments

Comments
 (0)