Mi chiedo come interrogare la definizione di una vista materializzata in Postgres. Per riferimento, quello che speravo di fare è molto simile a quello che puoi fare per una visione normale:
SELECT * FROM information_schema.views WHERE table_name = 'some_view';
che ti dà le seguenti colonne:
table_catalog
table_schema
table_name
view_definition
check_option
is_updatable
is_insertable_into
is_trigger_updatable
is_trigger_deletable
is_trigger_insertable_into
È possibile per viste materializzate?
Dalla mia ricerca finora, sembra che le opinioni materializzate siano deliberatamente escluse da information_schema, perché
Information_schema può mostrare solo oggetti esistenti nello standard SQL.
( http://www.postgresql.org/message-id/3794.1412980686@sss.pgh.pa.us )
Dal momento che sembrano essere completamente esclusi da information_schema, non sono sicuro di come procedere, ma quello che mi piacerebbe fare è duplice:
- Chiedere se esiste una particolare vista materializzata. (Finora l'unico modo che ho trovato per farlo è provare a creare una vista mat con lo stesso nome e vedere se esplode.)
- Quindi interroga la definizione della vista materializzata (simile alla
view_definition
colonna attivatainformation_schema.views
).
SELECT to_regclass('some_schema.some_mat_view')
- se trovato, non deve essere un MV, però. Dettagli: stackoverflow.com/questions/20582500/…