Prima di tutto, la tua query per i commenti sulla tabella può essere semplificata utilizzando un cast al tipo di identificatore oggetto appropriato :
SELECT description
FROM pg_description
WHERE objoid = 'myschema.mytbl'::regclass;
La parte dello schema è facoltativa. Se lo ometti, il tuo attuale search_path
decide la visibilità di qualsiasi tabella denominata mytbl
.
Meglio ancora , ci sono funzioni dedicate in PostgreSQL per semplificare e canonizzare queste query. Il manuale:
obj_description(
object_oid
, catalog_name
)
... ottieni un commento per un oggetto di database
shobj_description(
object_oid
, catalog_name
)
... ottieni un commento per un oggetto database condiviso
Descrizione per la tabella:
SELECT obj_description('myschema.mytbl'::regclass, 'pg_class');
Descrizione per database:
SELECT pg_catalog.shobj_description(d.oid, 'pg_database') AS "Description"
FROM pg_catalog.pg_database d
WHERE datname = 'mydb';
Come lo scopri?
Ebbene, leggere l'ottimo manuale è illuminante. :)
Ma in questo caso c'è un percorso più diretto:la maggior parte di psql
i meta comandi sono implementati con un semplice SQL. Avvia una sessione con psql -E
, per vedere la magia dietro le tende. Il manuale:
-E
--echo-hidden
Fai eco alle query effettive generate da \d
e altri comandi di barra rovesciata. Puoi usarlo per studiare le operazioni interne di psql. Equivale a impostare la variabile ECHO_HIDDEN
su on
.