diff options
Diffstat (limited to 'src/test/regress/sql/create_operator.sql')
-rw-r--r-- | src/test/regress/sql/create_operator.sql | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/test/regress/sql/create_operator.sql b/src/test/regress/sql/create_operator.sql index f53e24db3c4..a3096f17df0 100644 --- a/src/test/regress/sql/create_operator.sql +++ b/src/test/regress/sql/create_operator.sql @@ -210,6 +210,49 @@ CREATE OPERATOR #*# ( ); ROLLBACK; +-- Should fail. An operator cannot be its own negator. +BEGIN TRANSACTION; +CREATE OPERATOR === ( + leftarg = integer, + rightarg = integer, + procedure = int4eq, + negator = === +); +ROLLBACK; + +-- Should fail. An operator cannot be its own negator. Here we check that +-- this error is detected when replacing a shell operator. +BEGIN TRANSACTION; +-- create a shell operator for ===!!! by referencing it as a commutator +CREATE OPERATOR === ( + leftarg = integer, + rightarg = integer, + procedure = int4eq, + commutator = ===!!! +); +CREATE OPERATOR ===!!! ( + leftarg = integer, + rightarg = integer, + procedure = int4ne, + negator = ===!!! +); +ROLLBACK; + +-- test that we can't use part of an existing commutator or negator pair +-- as a commutator or negator +CREATE OPERATOR === ( + leftarg = integer, + rightarg = integer, + procedure = int4eq, + commutator = = +); +CREATE OPERATOR === ( + leftarg = integer, + rightarg = integer, + procedure = int4eq, + negator = <> +); + -- invalid: non-lowercase quoted identifiers CREATE OPERATOR === ( |