Estou lendo o PostgreSQL: Up and Running da Oreilly , e na seção Organizando seu banco de dados usando esquemas , ele diz que search_path
pode ser definido no nível do banco de dados:
Por exemplo, se quiséssemos que todos os objetos em contrib fossem acessíveis sem qualificação de esquema, alteraríamos nosso banco de dados da seguinte maneira:
ALTER DATABASE mydb SET search_path="$user",public,contrib;
No entanto, depois de digitar o comando acima, ainda não consigo me referir a tabelas em esquemas que public
não sejam qualificá-los:
ALTER DATABASE auth SET search_path="$user",public,staging;`
\d users
Dá:
Did not find any relation named "users".
Mas se eu usar \d staging.users
, funciona.
SHOW search_path;
Dá:
search_path
----------------
"$user",public
O padrão substitui o valor por banco de dados definido search_path
com ? Se for esse o caso, qual é a utilidade do valor por banco de dados?postgresql.conf
ALTER DATABASE ... SET search_path