On 22/08/2025 14:15, myzhen wrote:
> The order of all schemas in OprCacheKey.search_path should be
> meaningless.
No, operators live in schemas, just like tables and functions. To
demonstrate:
create schema schema1;
create schema schema2;
create function schema1.plus(int, int) RETURNS int AS $$ SELECT $1 + $1
$$ LANGUAGE SQL;
create function schema2.minus(int, int) RETURNS int AS $$ SELECT $1 - $1
$$ LANGUAGE SQL;
CREATE OPERATOR schema1.@+-@ (LEFTARG = int, RIGHTARG = int, FUNCTION=plus);
CREATE OPERATOR schema2.@+-@ (LEFTARG = int, RIGHTARG = int,
FUNCTION=minus);
postgres=# set search_path=schema1,schema2;
SET
postgres=# select 1 @+-@ 1;
?column?
----------
2
(1 row)
postgres=# set search_path=schema2,schema1;
SET
postgres=# select 1 @+-@ 1;
?column?
----------
0
(1 row)
- Heikki