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



Reply via email to