On Sunday, January 15, 2023, 金 <jinbi...@126.com> wrote: > > postgres=# \df fun1 > > List of functions > > Schema | Name | Result data type | Argument data types > | Type > > --------+------+------------------+------------------------- > ---------------------------+------ > > public | fun1 | record | arg1 integer, OUT arg2 integer, INOUT > arg3 integer | func > (1 row) >
Working as documented. > > postgres=# SELECT pg_function_is_visible(16386); > pg_function_is_visible > ------------------------ > t > (1 row) > > > postgres=# SELECT pg_function_is_visible(16389); --Should display t? > pg_function_is_visible > ------------------------ > f > (1 row) > No, visible means is the one found by looking through the current search_path, and the one in s1 is not visible for the very reason that the one in public is visible. You need to read the Patterns section of the psql documentation where the behavior to expect is described. David J.