Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 20/08/2019 11:42:04
- dimitri
- Membre
pg_stat_all_tables table partitionnée
Bonjour,
je travaille sur un entrepôt de données ou je génère la documentation (nom des champs, datatype, commentaire etc.) directement à partir des commentaires que je pose sur le modèle.
Je génère ma liste des tables avec cette requête :
select st.schemaname as table_schema, st.relname as table_name
FROM pg_catalog.pg_stat_all_tables as st
where st.schemaname = 'mon_schema'
et quand on sélectionne une table sur l'interface web je récupère les commentaires et les infos de la table pour générer une doc :
SELECT c.ordinal_position, st.schemaname as table_schema, st.relname as table_name,c.column_name, c.data_type, c.column_default, c.is_nullable, pgd.description
FROM pg_catalog.pg_statio_all_tables as st
inner join information_schema.columns c on (c.table_schema=st.schemaname and c.table_name=st.relname)
left join pg_catalog.pg_description pgd on (pgd.objoid=st.relid and pgd.objsubid=c.ordinal_position)
where st.schemaname = 'mon_schema'
Les 2 requêtes sont simplifiées mais c'est l'idée.
J'ai mis à jour postgresql vers la v11 cette année et j'ai introduit des tables partitionnées dans le modèle. Problème ! ma table "maitresse" ne se trouve pas dans pg_stat_all_tables, je n'ai que les partitions.
Dans mon interface je me retrouve avec la même table partitionnée sur l'année sur 20 ans d'historique ! avec les commentaires associés sur les 20 tables.
J'aimerais récupérer uniquement la table principale avec les commentaires associés.
Merci pour votre aide
Hors ligne
#2 20/08/2019 12:04:45
- rjuju
- Administrateur
Re : pg_stat_all_tables table partitionnée
Bonjour,
Utilisez plutôt pg_class (https://www.postgresql.org/docs/current … class.html) avec un filtre sur relkind pour récupérer uniquement les tables simples et partitionnées (et sur relispartition en cas de sous partitionnement).
Julien.
https://rjuju.github.io/
Hors ligne
Pages : 1