Query goal: | Find inheritance between base tables. Use table inheritance carefully because, for instance, certain constraints are not inherited and must be redefined on child tables. |
Notes about the query: | The query outputs information as to whether the child is partition or not because internally PostgreSQL uses the inheritance mechanism in case of declarative partitioning. |
Query type: | General (Overview of some aspect of the database.) |
Query license: | MIT License |
Data source: | system catalog only |
SQL query: | Click on query to copy it
SELECT pn.nspname AS parent_schema, p.relname AS parent_table, pc.nspname AS child_schema, c.relname AS child_table, c.relispartition AS child_is_partition FROM pg_inherits pi INNER JOIN pg_class p ON pi.inhparent=p.oid INNER JOIN pg_namespace pn ON p.relnamespace=pn.oid INNER JOIN pg_authid AS ap ON pn.nspowner=ap.oid INNER JOIN pg_class c ON pi.inhrelid=c.oid INNER JOIN pg_namespace pc ON c.relnamespace=pc.oid INNER JOIN pg_authid AS ac ON pc.nspowner=ac.oid WHERE (pn.nspname='public' OR ap.rolname<>'postgres') AND (pc.nspname='public' OR ac.rolname<>'postgres') ORDER BY pn.nspname, p.relname, pc.nspname, c.relname; |
Collection name | Collection description |
---|---|
Find problems about base tables | A selection of queries that return information about the data types, field sizes, default values as well as general structure of base tables. Contains all the types of queries - problem detection, software measure, and general overview |
Find problems by overview | Queries that results point to different aspects of database that might have problems. A human reviewer has to decide based on the results as to whether there are problems or not . |
Category name | Category description |
---|---|
Comfortability of database evolution | Queries of this category provide information about the means that influence database evolution. |
Table inheritance | Queries of this category provide information about the inheritance between base tables. |