Query goal: | Find all derived tables that join two or more tables. |
Notes about the query: | In the returned subquery of view/materialized view the query replaces each newline character with the line break (br) tag for the better readability in case the query result is displayed in a web browser. In the result the keyword USING is denoted with bold font. |
Query type: | General (Overview of some aspect of the database.) |
Query license: | MIT License |
Data source: | INFORMATION_SCHEMA+system catalog |
SQL query: | Click on query to copy it
WITH view_defs AS (SELECT views.table_schema, views.table_name, 'VIEW' AS type, views.view_definition FROM information_schema.views WHERE table_schema NOT IN (SELECT schema_name FROM INFORMATION_SCHEMA.schemata WHERE schema_name<>'public' AND schema_owner='postgres' AND schema_name IS NOT NULL) UNION SELECT schemaname, matviewname, 'MATERIALIZED VIEW' AS type, definition FROM pg_catalog.pg_matviews) SELECT table_schema, table_name, type, regexp_replace(regexp_replace(view_definition,'[\r\n]','<br>','g'),'USING','<b>USING</b>','gi') AS definition FROM view_defs WHERE view_definition~*'([[:space:]]JOIN[[:space:]]|FROM[[:space:]].*,.*(WHERE|GROUP[[:space:]]+BY|ORDER[[:space:]]+BY))' ORDER BY table_schema, table_name, type; |
Collection name | Collection description |
---|---|
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 |
---|---|
Derived tables | Queries of this category provide information about the derived tables (views, materialized views), which are used to implement virtual data layer. |
Syntactics | Queries of this category provide information about syntactic mistakes. |