Quantcast
Viewing all articles
Browse latest Browse all 4

Answer by Erwin Brandstetter for What is the search_path for a given database and user?

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.


Viewing all articles
Browse latest Browse all 4

Trending Articles