Re:Re: Improve cache hit rate for OprCacheHash

myzhen <zhenmingyang@yeah.net>

From: myzhen <zhenmingyang@yeah.net>
To: "Heikki Linnakangas" <hlinnaka@iki.fi>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-08-22T14:08:52Z
Lists: pgsql-hackers
Thanks for your reply,If multiple exact matches are found, it selects the first schema in activeSearchPath as the result. Therefore, the order of search_path is indeed meaningful.











At 2025-08-22 20:18:06, "Heikki Linnakangas" <hlinnaka@iki.fi> wrote:
>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