summaryrefslogtreecommitdiff
path: root/src/test/regress/sql
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2004-03-22 01:38:18 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2004-03-22 01:38:18 +0000
commit0de45c1c2753763c5ca7d4904075e2cae80bb353 (patch)
tree9d4b34360c540365318a2e0c49dc1f9891b41464 /src/test/regress/sql
parentf938c2b91bebb7f436a3615cf86347d7261f71e8 (diff)
downloadpostgresql-0de45c1c2753763c5ca7d4904075e2cae80bb353.tar.gz
Add timestamp-versus-timestamptz cross-type comparison functions,
flesh out the index operator classes to include these. In passing, fix erroneous volatility marking of ACL functions.
Diffstat (limited to 'src/test/regress/sql')
-rw-r--r--src/test/regress/sql/opr_sanity.sql34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/test/regress/sql/opr_sanity.sql b/src/test/regress/sql/opr_sanity.sql
index 82a294db6d..cf274dd7dc 100644
--- a/src/test/regress/sql/opr_sanity.sql
+++ b/src/test/regress/sql/opr_sanity.sql
@@ -640,6 +640,23 @@ WHERE p1.amopopr = p2.oid AND p1.amopclaid = p3.oid AND
p1.amopsubtype != 0 AND
p1.amopsubtype != p2.oprright;
+-- Operators that are primary members of opclasses must be immutable (else
+-- it suggests that the index ordering isn't fixed). Operators that are
+-- cross-type members need only be stable, since they are just shorthands
+-- for index probe queries.
+
+SELECT p1.amopclaid, p1.amopopr, p2.oprname, p3.prosrc
+FROM pg_amop AS p1, pg_operator AS p2, pg_proc AS p3
+WHERE p1.amopopr = p2.oid AND p2.oprcode = p3.oid AND
+ p1.amopsubtype = 0 AND
+ p3.provolatile != 'i';
+
+SELECT p1.amopclaid, p1.amopopr, p2.oprname, p3.prosrc
+FROM pg_amop AS p1, pg_operator AS p2, pg_proc AS p3
+WHERE p1.amopopr = p2.oid AND p2.oprcode = p3.oid AND
+ p1.amopsubtype != 0 AND
+ p3.provolatile = 'v';
+
-- **************** pg_amproc ****************
-- Look for illegal values in pg_amproc fields
@@ -738,3 +755,20 @@ WHERE p3.opcamid = (SELECT oid FROM pg_am WHERE amname = 'hash')
OR pronargs != 1
-- OR NOT physically_coercible(opcintype, proargtypes[0])
);
+
+-- Support routines that are primary members of opclasses must be immutable
+-- (else it suggests that the index ordering isn't fixed). But cross-type
+-- members need only be stable, since they are just shorthands
+-- for index probe queries.
+
+SELECT p1.amopclaid, p1.amproc, p2.prosrc
+FROM pg_amproc AS p1, pg_proc AS p2
+WHERE p1.amproc = p2.oid AND
+ p1.amprocsubtype = 0 AND
+ p2.provolatile != 'i';
+
+SELECT p1.amopclaid, p1.amproc, p2.prosrc
+FROM pg_amproc AS p1, pg_proc AS p2
+WHERE p1.amproc = p2.oid AND
+ p1.amprocsubtype != 0 AND
+ p2.provolatile = 'v';