mirror of
https://github.com/postgres/postgres.git
synced 2025-05-05 09:19:17 +03:00
Use factorial rather than numeric_fac in create_operator.sql.
These two SQL functions are aliases for the same C function, so this change has no semantic effect. However, because we dropped the numeric_fac alias in HEAD (commit 76f412ab3), operator definitions based on that one don't port forward, causing problems for cross-version upgrade tests based on the regression database. Patch all active back branches to dodge the problem. Discussion: https://postgr.es/m/449144.1600439950@sss.pgh.pa.us
This commit is contained in:
parent
956891faba
commit
cc7b27da7f
@ -16,15 +16,15 @@ CREATE OPERATOR <% (
|
||||
);
|
||||
CREATE OPERATOR @#@ (
|
||||
rightarg = int8, -- left unary
|
||||
procedure = numeric_fac
|
||||
procedure = factorial
|
||||
);
|
||||
CREATE OPERATOR #@# (
|
||||
leftarg = int8, -- right unary
|
||||
procedure = numeric_fac
|
||||
procedure = factorial
|
||||
);
|
||||
CREATE OPERATOR #%# (
|
||||
leftarg = int8, -- right unary
|
||||
procedure = numeric_fac
|
||||
procedure = factorial
|
||||
);
|
||||
-- Test operator created above
|
||||
SELECT point '(1,2)' <% widget '(0,0,3)' AS t,
|
||||
@ -40,7 +40,7 @@ ERROR: operator does not exist: integer ######
|
||||
-- => is disallowed now
|
||||
CREATE OPERATOR => (
|
||||
leftarg = int8, -- right unary
|
||||
procedure = numeric_fac
|
||||
procedure = factorial
|
||||
);
|
||||
ERROR: syntax error at or near "=>"
|
||||
LINE 1: CREATE OPERATOR => (
|
||||
@ -50,7 +50,7 @@ LINE 1: CREATE OPERATOR => (
|
||||
-- this is legal because ! is not allowed in sql ops
|
||||
CREATE OPERATOR !=- (
|
||||
leftarg = int8, -- right unary
|
||||
procedure = numeric_fac
|
||||
procedure = factorial
|
||||
);
|
||||
SELECT 2 !=-;
|
||||
?column?
|
||||
@ -128,7 +128,7 @@ REVOKE USAGE ON SCHEMA schema_op1 FROM regress_rol_op1;
|
||||
SET ROLE regress_rol_op1;
|
||||
CREATE OPERATOR schema_op1.#*# (
|
||||
leftarg = int8, -- right unary
|
||||
procedure = numeric_fac
|
||||
procedure = factorial
|
||||
);
|
||||
ERROR: permission denied for schema schema_op1
|
||||
ROLLBACK;
|
||||
@ -136,7 +136,7 @@ ROLLBACK;
|
||||
BEGIN TRANSACTION;
|
||||
CREATE OPERATOR #*# (
|
||||
leftarg = SETOF int8,
|
||||
procedure = numeric_fac
|
||||
procedure = factorial
|
||||
);
|
||||
ERROR: SETOF type not allowed for operator argument
|
||||
ROLLBACK;
|
||||
@ -144,7 +144,7 @@ ROLLBACK;
|
||||
BEGIN TRANSACTION;
|
||||
CREATE OPERATOR #*# (
|
||||
rightarg = SETOF int8,
|
||||
procedure = numeric_fac
|
||||
procedure = factorial
|
||||
);
|
||||
ERROR: SETOF type not allowed for operator argument
|
||||
ROLLBACK;
|
||||
@ -168,13 +168,13 @@ ROLLBACK;
|
||||
-- Should fail. Invalid attribute
|
||||
CREATE OPERATOR #@%# (
|
||||
leftarg = int8, -- right unary
|
||||
procedure = numeric_fac,
|
||||
procedure = factorial,
|
||||
invalid_att = int8
|
||||
);
|
||||
WARNING: operator attribute "invalid_att" not recognized
|
||||
-- Should fail. At least leftarg or rightarg should be mandatorily specified
|
||||
CREATE OPERATOR #@%# (
|
||||
procedure = numeric_fac
|
||||
procedure = factorial
|
||||
);
|
||||
ERROR: at least one of leftarg or rightarg must be specified
|
||||
-- Should fail. Procedure should be mandatorily specified
|
||||
|
@ -19,17 +19,17 @@ CREATE OPERATOR <% (
|
||||
|
||||
CREATE OPERATOR @#@ (
|
||||
rightarg = int8, -- left unary
|
||||
procedure = numeric_fac
|
||||
procedure = factorial
|
||||
);
|
||||
|
||||
CREATE OPERATOR #@# (
|
||||
leftarg = int8, -- right unary
|
||||
procedure = numeric_fac
|
||||
procedure = factorial
|
||||
);
|
||||
|
||||
CREATE OPERATOR #%# (
|
||||
leftarg = int8, -- right unary
|
||||
procedure = numeric_fac
|
||||
procedure = factorial
|
||||
);
|
||||
|
||||
-- Test operator created above
|
||||
@ -42,7 +42,7 @@ COMMENT ON OPERATOR ###### (int4, NONE) IS 'bad right unary';
|
||||
-- => is disallowed now
|
||||
CREATE OPERATOR => (
|
||||
leftarg = int8, -- right unary
|
||||
procedure = numeric_fac
|
||||
procedure = factorial
|
||||
);
|
||||
|
||||
-- lexing of <=, >=, <>, != has a number of edge cases
|
||||
@ -51,7 +51,7 @@ CREATE OPERATOR => (
|
||||
-- this is legal because ! is not allowed in sql ops
|
||||
CREATE OPERATOR !=- (
|
||||
leftarg = int8, -- right unary
|
||||
procedure = numeric_fac
|
||||
procedure = factorial
|
||||
);
|
||||
SELECT 2 !=-;
|
||||
-- make sure lexer returns != as <> even in edge cases
|
||||
@ -85,7 +85,7 @@ REVOKE USAGE ON SCHEMA schema_op1 FROM regress_rol_op1;
|
||||
SET ROLE regress_rol_op1;
|
||||
CREATE OPERATOR schema_op1.#*# (
|
||||
leftarg = int8, -- right unary
|
||||
procedure = numeric_fac
|
||||
procedure = factorial
|
||||
);
|
||||
ROLLBACK;
|
||||
|
||||
@ -94,7 +94,7 @@ ROLLBACK;
|
||||
BEGIN TRANSACTION;
|
||||
CREATE OPERATOR #*# (
|
||||
leftarg = SETOF int8,
|
||||
procedure = numeric_fac
|
||||
procedure = factorial
|
||||
);
|
||||
ROLLBACK;
|
||||
|
||||
@ -103,7 +103,7 @@ ROLLBACK;
|
||||
BEGIN TRANSACTION;
|
||||
CREATE OPERATOR #*# (
|
||||
rightarg = SETOF int8,
|
||||
procedure = numeric_fac
|
||||
procedure = factorial
|
||||
);
|
||||
ROLLBACK;
|
||||
|
||||
@ -129,13 +129,13 @@ ROLLBACK;
|
||||
-- Should fail. Invalid attribute
|
||||
CREATE OPERATOR #@%# (
|
||||
leftarg = int8, -- right unary
|
||||
procedure = numeric_fac,
|
||||
procedure = factorial,
|
||||
invalid_att = int8
|
||||
);
|
||||
|
||||
-- Should fail. At least leftarg or rightarg should be mandatorily specified
|
||||
CREATE OPERATOR #@%# (
|
||||
procedure = numeric_fac
|
||||
procedure = factorial
|
||||
);
|
||||
|
||||
-- Should fail. Procedure should be mandatorily specified
|
||||
|
Loading…
x
Reference in New Issue
Block a user