You can find configuration settings for roles and databases in the catalog table pg_db_role_setting
.
This query retrieves any settings for a given role or database:
SELECT r.rolname, d.datname, rs.setconfigFROM pg_db_role_setting rsLEFT JOIN pg_roles r ON r.oid = rs.setroleLEFT JOIN pg_database d ON d.oid = rs.setdatabaseWHERE r.rolname = 'myrole' OR d.datname = 'mydb';
If nothing is set, the next lower instance determines the default state of the search_path
, which is postgresql.conf
in this case or command-line options at server start. Related:
To unsetany settings of a role or database - the search_path
in this particular example:
ALTER ROLE myrole RESET search_path;
Or:
ALTER DATABASE mydb RESET search_path;
Or:
ALTER ROLE myrole in DATABASE mydb RESET search_path;
Never manipulate data in the system catalog (pg_catalog.*
) manually. Use DDL commands as instructed in the manual for ALTER ROLE
and ALTER DATABASE
.
Essentially, the RESET
command deletes a row from pg_db_role_setting
allowing the base setting to take effect again. I wouldn't call that convoluted.