Informationen från information_schema.schemata
beror på vilken roll du är kopplad till, så det är inte riktigt rätt synsätt att fråga för att upptäcka scheman i allmänhet.
dokumentet på information_schema.schemata
i 9.3
säger:
Men det är inte helt klart (åtminstone för mig) från just den meningen varför du inte kan se public
.
I ett inlägg på e-postlistan har Tom Lane en förklaring som går lite längre:
Se http://www.postgresql.org/message-id/[email protected]
Hans slutsats:
som ser exakt ut som problemet i den här frågan.
Nedersta raden:använd pg_namespace
istället för information_schema.schemata
Detta ändrades i version 9.4 för att överensstämma med vad användarna förväntar sig. Det aktuella dokumentet säger:
USAGE
privilegium på ett schema är nu tillräckligt för att få det från den här vyn.