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 996 queries.

Seq nrNameGoalTypeData sourceLast updateLicense...
621Perhaps brackets are missing in a regular expression that uses OR logical operationFind regular expressions where choice between alternatives has no brackets. Thus, instead of '(a|b|c)' there is 'a|b|c'. An example: '^a|b|c$' -permits in the string symbol "|" but '^(a|b|c)$' does not permit in the string symbol "|".Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-11-09 20:22MIT License
622Perhaps character class [[:alnum:]] could be usedPerhaps regular expressions that refer to character classes alnum and digit could be simplified.Problem detectionINFORMATION_SCHEMA+system catalog base tables2024-11-02 09:32MIT License
623Perhaps check constraint names contain incorrect or unnecessary wordsFind names of check constraints (either associated with a base table or a domain) that names contain words that are not needed in the name. For instance, constraints cannot ensure the correctness of data and thus the word correct should not be used in the names. Words like "valid" or phrases like "follows_rules" are just noise because all the constraint ensure that the registered data values are valid and follow certain rules.Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-10-06 14:10MIT License
624Perhaps checking of file extension is incorrectFind check constraints of tables that use a regular expression to check as to whether a registered string ends with an appropriate file extension. However, the expression does not put the dot sign into the square brackets nor does have the escape character \before it, i.e., it is interpreted as a single character not as the dot sign in the expression. In regular expressions the dot (.) matches any single character except the newline character.Problem detectionINFORMATION_SCHEMA only2023-11-08 15:29MIT License
625Perhaps CHECK should be associated with a domainFind cases where multiple columns with the same domain have exactly the same CHECK constraint that is directly associated with the table.Problem detectionINFORMATION_SCHEMA+system catalog base tables2024-11-23 15:03MIT License
626Perhaps Count(*) is wrongly usedFind user-defined routines and derived tables (views/materialized views) that have a subquery that invokes Count aggregate function like this - Count(*), uses outer join, and grouping. In case of grouping you do not want to get an answer that an empty group contains one member.Problem detectionINFORMATION_SCHEMA+system catalog base tables2021-10-25 16:40MIT License
627Perhaps default value 'infinity' is missingFind optional base table columns that have a timestamp type and do not have a default value.Problem detectionINFORMATION_SCHEMA only2024-11-28 14:58MIT License
628Perhaps duplicate check of empty strings (ver 2)Find columns that have a check that prevents the empty string in the column but there is already another check on the column that enforces the constraint.Problem detectionINFORMATION_SCHEMA+system catalog base tables2021-12-20 11:30MIT License
629Perhaps excessive privileges to use base tablesFind excessive privileges to use base tabes (for others than the owner of the base table). The excessive privileges are all that are not SELECT, INSERT, UPDATE, DELETE.Problem detectionINFORMATION_SCHEMA+system catalog base tables2021-02-25 17:29MIT License
630Perhaps excessive privileges to use viewsFind non-SELECT privileges to use views (for others than the owner of the view). Perhaps there should be only the privilege to make queries (SELECT statements based on the views) and data modification takes place by using routines. REFERENCES and TRIGGER privileges are definitely not needed.Problem detectionINFORMATION_SCHEMA+system catalog base tables2021-02-25 17:29MIT License
631Perhaps inconsistent use of temporal functionsFind routines that use temporal functions CURRENT_TIMESTAMP, LOCALTIMESTAMP, or now() that is inconsistent with the default values of the columns that are used by the routine, e.g., function uses a column with the default value LOCALTIMESTAMP but the routine uses function CURRENT_TIMESTAMP or now().Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-12-10 17:11MIT License
632Perhaps inconsistent use of temporal functions (2)Find as to whether in the same database more than one of these functions is used at the same time - now(), localtimestamp, current_timestamp.Problem detectionINFORMATION_SCHEMA+system catalog base tables2024-12-12 00:20MIT License
633Perhaps incorrect check of permitted timestamp valuesFind base table columns with a timestamp type and a simple check constraint that checks as to whether the timestamp values are within an appropriate range of values. Find constraints where the check of the upper bound of the range is perhaps incorrect.Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-11-09 10:27MIT License
634Perhaps incorrect column name (based on default values)Find columns of base tables that have the default value CURRENT_USER or SESSION_USER but the name of the column does not refer to the fact that it contains usernames.Problem detectionINFORMATION_SCHEMA only2024-01-01 12:14MIT License
635Perhaps incorrect default valeFind columns of base tables that have default value CURRENT_USER.Problem detectionINFORMATION_SCHEMA only2023-12-30 11:32MIT License
636Perhaps incorrect use of 'NULL'Find Boolean expressions, queries, routines, and default values that refer to value 'NULL'. Perhaps NULL was intended instead. 'NULL' is a string (a value) but NULL is a special marker for denoting missing value.Problem detectionINFORMATION_SCHEMA+system catalog base tables2021-11-04 13:19MIT License
637Perhaps incorrect WHEN clauseFind row level triggers that have action condition (WHEN clause) but the Boolean expression in its specifications does not refer to neither NEW nor OLD variable.Problem detectionINFORMATION_SCHEMA only2021-02-25 17:30MIT License
638Perhaps IS DISTINCT FROM should be used instead of <> in WHEN clausesUse a right predicate in trigger condition in order to ensure that the trigger executes always when it has to but not more often. IS DISTINCT FROM treats NULL as if it was a known value, rather than unknown. It would be relevant if a column that is referenced in the action condition is optional, i.e., permits NULLs.GeneralINFORMATION_SCHEMA only2024-12-23 12:27MIT License
639Perhaps is not a snake case - date, time, or by is not preceded by an underscoreFind names that perhaps do not use the snake_case naming style because the name ends with the phrase "date", "time", "by" that is not preceded by an underscore. Prefer snake_case over PascalCase and camelCase in names.Problem detectionINFORMATION_SCHEMA+system catalog base tables2024-12-23 13:56MIT License
640Perhaps is not snake_case - Boolean-indicating prefix without underscoreFind names of types, domains, columns, and parameters that perhaps do not use the snake_case naming style because the name starts with "is", "has", or "on" that is not followed by an underscore. Prefer snake_case over PascalCase and camelCase in names.Problem detectionINFORMATION_SCHEMA+system catalog base tables2024-12-21 15:44MIT License