Query goal: | Find as to whether there are multiple different types used in case of columns that are meant for registering dates. |
Notes about the query: | The query considers both column names in English and Estonian. |
Query type: | Problem detection (Each row in the result could represent a flaw in the design) |
Query reliability: | Medium (Medium number of false-positive results) |
Query license: | MIT License |
Data source: | INFORMATION_SCHEMA only |
SQL query: | Click on query to copy it
WITH date_cols AS (SELECT table_schema, table_name, column_name, ordinal_position, data_type FROM INFORMATION_SCHEMA.columns WHERE (column_name ILIKE '%\_kp' OR (column_name ILIKE '%date' AND column_name NOT ILIKE '%update')) AND (table_schema, table_name) IN (SELECT table_schema, table_name FROM INFORMATION_SCHEMA.tables WHERE table_type='BASE TABLE') AND 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)) SELECT data_type, Count(*) AS nr_of_occurrences, string_agg( table_schema || '.' || table_name || '.' || column_name,';<br>' ORDER BY ordinal_position) AS columns FROM date_cols GROUP BY data_type HAVING (SELECT Count(*) AS c FROM (SELECT Count(*) AS nr_of_occurrences FROM date_cols GROUP BY data_type) AS foo)>1 ORDER BY Count(*) DESC, data_type; |
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 automatically | Queries, that results point to problems in the database. Each query in the collection produces an initial assessment. However, a human reviewer has the final say as to whether there is a problem or not . |
Category name | Category description |
---|---|
Data types | Queries of this category provide information about the data types and their usage. |
Inconsistencies | Queries of this catergory provide information about inconsistencies of solving the same problem in different places. |
Result quality depends on names | Queries of this category use names (for instance, column names) to try to guess the meaning of a database object. Thus, the goodness of names determines the number of false positive and false negative results. |