@ -16,15 +16,15 @@ CREATE OPERATOR <% (
);
);
CREATE OPERATOR @#@ (
CREATE OPERATOR @#@ (
rightarg = int8, -- left unary
rightarg = int8, -- left unary
procedure = numeric_ fac
procedure = factorial
);
);
CREATE OPERATOR #@# (
CREATE OPERATOR #@# (
leftarg = int8, -- right unary
leftarg = int8, -- right unary
procedure = numeric_ fac
procedure = factorial
);
);
CREATE OPERATOR #%# (
CREATE OPERATOR #%# (
leftarg = int8, -- right unary
leftarg = int8, -- right unary
procedure = numeric_ fac
procedure = factorial
);
);
-- Test operator created above
-- Test operator created above
SELECT point '(1,2)' <% widget '(0,0,3)' AS t,
SELECT point '(1,2)' <% widget '(0,0,3)' AS t,
@ -40,7 +40,7 @@ ERROR: operator does not exist: integer ######
-- => is disallowed now
-- => is disallowed now
CREATE OPERATOR => (
CREATE OPERATOR => (
leftarg = int8, -- right unary
leftarg = int8, -- right unary
procedure = numeric_ fac
procedure = factorial
);
);
ERROR: syntax error at or near "=>"
ERROR: syntax error at or near "=>"
LINE 1: CREATE OPERATOR => (
LINE 1: CREATE OPERATOR => (
@ -50,7 +50,7 @@ LINE 1: CREATE OPERATOR => (
-- this is legal because ! is not allowed in sql ops
-- this is legal because ! is not allowed in sql ops
CREATE OPERATOR !=- (
CREATE OPERATOR !=- (
leftarg = int8, -- right unary
leftarg = int8, -- right unary
procedure = numeric_ fac
procedure = factorial
);
);
SELECT 2 !=-;
SELECT 2 !=-;
?column?
?column?
@ -128,7 +128,7 @@ REVOKE USAGE ON SCHEMA schema_op1 FROM regress_rol_op1;
SET ROLE regress_rol_op1;
SET ROLE regress_rol_op1;
CREATE OPERATOR schema_op1.#*# (
CREATE OPERATOR schema_op1.#*# (
leftarg = int8, -- right unary
leftarg = int8, -- right unary
procedure = numeric_ fac
procedure = factorial
);
);
ERROR: permission denied for schema schema_op1
ERROR: permission denied for schema schema_op1
ROLLBACK;
ROLLBACK;
@ -136,7 +136,7 @@ ROLLBACK;
BEGIN TRANSACTION;
BEGIN TRANSACTION;
CREATE OPERATOR #*# (
CREATE OPERATOR #*# (
leftarg = SETOF int8,
leftarg = SETOF int8,
procedure = numeric_ fac
procedure = factorial
);
);
ERROR: SETOF type not allowed for operator argument
ERROR: SETOF type not allowed for operator argument
ROLLBACK;
ROLLBACK;
@ -144,7 +144,7 @@ ROLLBACK;
BEGIN TRANSACTION;
BEGIN TRANSACTION;
CREATE OPERATOR #*# (
CREATE OPERATOR #*# (
rightarg = SETOF int8,
rightarg = SETOF int8,
procedure = numeric_ fac
procedure = factorial
);
);
ERROR: SETOF type not allowed for operator argument
ERROR: SETOF type not allowed for operator argument
ROLLBACK;
ROLLBACK;
@ -168,13 +168,13 @@ ROLLBACK;
-- Should fail. Invalid attribute
-- Should fail. Invalid attribute
CREATE OPERATOR #@%# (
CREATE OPERATOR #@%# (
leftarg = int8, -- right unary
leftarg = int8, -- right unary
procedure = numeric_ fac,
procedure = factorial ,
invalid_att = int8
invalid_att = int8
);
);
WARNING: operator attribute "invalid_att" not recognized
WARNING: operator attribute "invalid_att" not recognized
-- Should fail. At least leftarg or rightarg should be mandatorily specified
-- Should fail. At least leftarg or rightarg should be mandatorily specified
CREATE OPERATOR #@%# (
CREATE OPERATOR #@%# (
procedure = numeric_ fac
procedure = factorial
);
);
ERROR: at least one of leftarg or rightarg must be specified
ERROR: at least one of leftarg or rightarg must be specified
-- Should fail. Procedure should be mandatorily specified
-- Should fail. Procedure should be mandatorily specified