Catalog of PostgreSQL queries for finding information about a PostgreSQL database and its design problems

AND
AND
AND
ANDFrom where does the query gets its information?
AND
AND

There are 961 queries.

Seq nrNameGoalTypeData sourceLast updateLicense...
381Inconsistency between the name and the type of a base table column (timestamps)Find base table columns that name refers to the possibility that these are used to register timestamps. Find the columns that do not have an appropriate data type. Column names should reflect the data that is possible to record in the column. For instance, in case of temporal data the column name should indicate as to whether we record dates or timestamps. If the column type is "timestamp", then the suffix of the column name should be "aeg" (Estonian) or "time" (English).Problem detectionINFORMATION_SCHEMA only2021-03-28 15:12MIT License
382Inconsistency between the type and the default value of a column (date and timestamp values)Find table columns with timestamp/date types that data type and dynamically found default value have a different type.Problem detectionINFORMATION_SCHEMA only2021-02-25 17:29MIT License
383Inconsistency between the type and the default value of a column (time values)Find table columns with time types, which data type and dynamically found default value have a different type.Problem detectionINFORMATION_SCHEMA only2021-02-25 17:29MIT License
384Inconsistency (code vs. id) of naming foreign key and referenced candidate key columnsNaming of foreign key and referenced candidate key columns should be consistent. It cannot be so that in one table a value is labeled "id" like some surrogate key value and in another it "turns" into human-usable "code" or vice versa. An example:

Person(person_id, name)
Primary Key (person_id)

E_mail_address(e_mail_address_id, person_code, address)
Primary Key (e_mail_address_id)
Foreign key (person_code) References Person (person_id)
Problem detectionsystem catalog base tables only2021-02-25 17:30MIT License
385Inconsistency of using column data types/field sizes in case of columns that implement relationshipsFind foreign key constraints where the candidate key columns (belong to a PRIMARY KEY/UNIQUE constraint) and foreign key columns do not have the same data type and field size. Primary key/unique columns and foreign key columns should have the same data type and field size. If, for instance, the primary key column has type INTEGER and foreign key column has type SMALLINT, then one cannot use all the primary key values as foreign key values.Problem detectionINFORMATION_SCHEMA+system catalog base tables2021-03-10 12:13MIT License
386Inconsistency of using parameter data typesFind parameters of routines that have the same name but a different type. Parameters that have the same name should have, in general, the same data type as well, assuming that the routines, which have the parameters, have different names, i.e., there is no overloading in play.Problem detectionINFORMATION_SCHEMA+system catalog base tables2021-02-25 17:29MIT License
387Inconsistent chain of relationships in terms of using ON UPDATE CASCADEIn case of a chain of relationships between tables (where the primary key and the foreign key have the same columns) the use of ON UPDATE CASCADE should be consistent - either all the involved foreign keys have ON UPDATE CASCADE compensating action or none of these have it. For instance, in the next example there is inconsistency, because if one changes the person_code in table Person, then the modification does not succeed because it does not cascade to the table Product. It is unclear as to whether it should be possible to change the person_code or not.

Person (person_code, surname)
Primary key (person_code)

Worker(person_code)
Primary key (person_code)
Foreign key (person_code) References Person (person_code) ON UPDATE CASCADE

Product(product_code, registrator)
Primary key (product_code)
Foreign key (registrator) References Worker (person_code) ON UPDATE NO ACTION
Problem detectionsystem catalog base tables only2021-02-25 17:30MIT License
388Inconsistent data type usage in case of registering a dateFind as to whether there are multiple different types used in case of columns that are meant for registering dates.Problem detectionINFORMATION_SCHEMA only2021-03-21 18:32MIT License
389Inconsistent data type usage in case of registering a symbolFind whether the database uses both CHAR(1) and VARCHAR(1) columns to register a single symbol.Problem detectionINFORMATION_SCHEMA only2021-02-25 17:30MIT License
390Inconsistent data type usage in case of registering sums of moneyFind as to whether both the numeric type and integer types are used in case of columns that are meant for register data about prices.Problem detectionINFORMATION_SCHEMA only2021-03-21 18:32MIT License
391Inconsistent field sizes of columns for addressesFind as to whether columns for holding e-mail addresses, phone numbers, ip addresses, zip codes, ordinary addresses, or file addresses have inconsistent field sizes across tables.Problem detectionINFORMATION_SCHEMA only2023-11-01 12:53MIT License
392Inconsistent means of concatenation in various database objectsFind as to different database objects use different means to concatenate text (format function, concat function, concat_ws function, || operator).Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-10-28 17:36MIT License
393Inconsistent means to calculate tsvector valuesFind as to whether in the database there are multiple ways to calculate tsvector values, i.e., by using a generated column and by not using a generated column.Problem detectionINFORMATION_SCHEMA only2023-11-07 11:35MIT License
394Inconsistent names of database objects that are used to manage the state of main objects in the database"Names in software are 90 percent of what make software readable. You need to take the time to choose them wisely and keep them relevant. Names are too important to treat carelessly. Names should not cause confusion." (Robert C. Martin, Clean Code) The naming must be consistent. One should avoid mixing synonyms like "seisund", "staatus", and "olek" in Estonian or "state" and "status" in English and stick with one term. For instance, it is a bad practice to use word "state" in table names but word "status" in function names.Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-03-18 17:13MIT License
395Inconsistent naming of columns with BOOLEAN typeFind as to whether some columns with the type Boolean start with a prefix ("is", "has", "can", "on") and some do not.Problem detectionINFORMATION_SCHEMA+system catalog base tables2024-01-03 09:54MIT License
396Inconsistent naming of comment columnsFind columns of tables that start with the word comment or komment but end differently (excluding numbers). Return result only if there is more than one naming variant of such columns in the database. For instance, a column has the name "comment" but another "comments".Problem detectionINFORMATION_SCHEMA+system catalog base tables2022-11-15 14:09MIT License
397Inconsistent precision and scale usage in case of registering sums of moneyFind as to whether different precisions/scales are used in case of registering data about sums of money in different columns.Problem detectionINFORMATION_SCHEMA only2021-03-29 13:07MIT License
398Inconsistent referencing to character classesFind as to whether regular expressions use inconsistently references to character classes: [^\s], [^\d], [^\w], [^[:space:]], [^[:digit:]], [^[:word:]] vs [^\S], [^\D], [^\W].Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-11-09 12:02MIT License
399Inconsistent referencing to character classes (digits)Find as to whether different syntaxes (e.g., 0-9 vs [[:digit:]] or \d) are used to refer to the character class of digits within the same database.Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-11-01 11:57MIT License
400Inconsistent referencing to character classes (shorthand vs long name)Find as to whether different syntaxes (e.g., \s vs [[:space:]]) are used to refer to character classes within the same database.Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-11-01 11:57MIT License