diff options
| author | Tom Lane | 2004-03-22 01:38:18 +0000 |
|---|---|---|
| committer | Tom Lane | 2004-03-22 01:38:18 +0000 |
| commit | 0de45c1c2753763c5ca7d4904075e2cae80bb353 (patch) | |
| tree | 9d4b34360c540365318a2e0c49dc1f9891b41464 /src/test | |
| parent | f938c2b91bebb7f436a3615cf86347d7261f71e8 (diff) | |
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')
| -rw-r--r-- | src/test/regress/expected/opr_sanity.out | 44 | ||||
| -rw-r--r-- | src/test/regress/sql/opr_sanity.sql | 34 |
2 files changed, 78 insertions, 0 deletions
diff --git a/src/test/regress/expected/opr_sanity.out b/src/test/regress/expected/opr_sanity.out index b76cc695f44..bd343d6e0fe 100644 --- a/src/test/regress/expected/opr_sanity.out +++ b/src/test/regress/expected/opr_sanity.out @@ -787,6 +787,28 @@ WHERE p1.amopopr = p2.oid AND p1.amopclaid = p3.oid AND -----------+---------+-----+---------+--------- (0 rows) +-- 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'; + amopclaid | amopopr | oprname | prosrc +-----------+---------+---------+-------- +(0 rows) + +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'; + amopclaid | amopopr | oprname | prosrc +-----------+---------+---------+-------- +(0 rows) + -- **************** pg_amproc **************** -- Look for illegal values in pg_amproc fields SELECT p1.amopclaid, p1.amprocnum @@ -900,3 +922,25 @@ WHERE p3.opcamid = (SELECT oid FROM pg_am WHERE amname = 'hash') -----------+-----------+-----+---------+--------- (0 rows) +-- 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'; + amopclaid | amproc | prosrc +-----------+--------+-------- +(0 rows) + +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'; + amopclaid | amproc | prosrc +-----------+--------+-------- +(0 rows) + diff --git a/src/test/regress/sql/opr_sanity.sql b/src/test/regress/sql/opr_sanity.sql index 82a294db6d6..cf274dd7dc1 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'; |
