]> granicus.if.org Git - postgresql/commitdiff
Come to think of it, we should check that commutator pairs have the same
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 6 Feb 2007 03:52:59 +0000 (03:52 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 6 Feb 2007 03:52:59 +0000 (03:52 +0000)
merges/hashes property settings.

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

index 2bc25de0525a4c5335bdb7074748a4c6a24c81af..8b5f64473d586228e58cbf072e1ecabb96bd1d1a 100644 (file)
@@ -382,6 +382,16 @@ WHERE (p1.oprcanmerge OR p1.oprcanhash) AND NOT
 -----+---------
 (0 rows)
 
+-- What's more, the commutator had better be mergejoinable/hashjoinable too.
+SELECT p1.oid, p1.oprname, p2.oid, p2.oprname
+FROM pg_operator AS p1, pg_operator AS p2
+WHERE p1.oprcom = p2.oid AND
+    (p1.oprcanmerge != p2.oprcanmerge OR
+     p1.oprcanhash != p2.oprcanhash);
+ oid | oprname | oid | oprname 
+-----+---------+-----+---------
+(0 rows)
+
 -- Mergejoinable operators should appear as equality members of btree index
 -- opfamilies.
 SELECT p1.oid, p1.oprname
index 9496422458eebb2b0f56e9c125b33d50ed0e27de..f93a71ddf9c65a5ef1c524e3cce46a0db840fd52 100644 (file)
@@ -315,6 +315,14 @@ SELECT p1.oid, p1.oprname FROM pg_operator AS p1
 WHERE (p1.oprcanmerge OR p1.oprcanhash) AND NOT
     (p1.oprkind = 'b' AND p1.oprresult = 'bool'::regtype AND p1.oprcom != 0);
 
+-- What's more, the commutator had better be mergejoinable/hashjoinable too.
+
+SELECT p1.oid, p1.oprname, p2.oid, p2.oprname
+FROM pg_operator AS p1, pg_operator AS p2
+WHERE p1.oprcom = p2.oid AND
+    (p1.oprcanmerge != p2.oprcanmerge OR
+     p1.oprcanhash != p2.oprcanhash);
+
 -- Mergejoinable operators should appear as equality members of btree index
 -- opfamilies.