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...
661Simple check constraints with multiple tasksFind simple check constraints, i.e., check constraints that cover one column that seem to have multiple tasks. The corresponding code smell in case of cleaning code is "G30: Functions Should Do One Thing". (Robert C. Martin, Clean Code)Problem detectionINFORMATION_SCHEMA+system catalog base tables2024-01-01 11:42MIT License
662Simple natural primary keysFind primary keys that consist of one column and that values are not generated by the system.GeneralINFORMATION_SCHEMA+system catalog base tables2021-03-08 00:47MIT License
663Small tablesFind tables that have one column or zero columns.GeneralINFORMATION_SCHEMA+system catalog base tables2021-03-07 10:52MIT License
664Some candidate key values cannot be used as foreign key valuesFind foreign key constraints in case of which some candidate key values cannot be used as foreign key values. 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
665Some CHECKS are associated with a domain and some with the base table columns that have the domainFind cases where some CHECKS are associated with a domain and some with the base table columns that have the domain. Avoid duplication of code. Write as little code as possible. If possible, move things "before the brackets" so to say. In this case it means declaring CHECKS at the level of the domain and not at the level of base table columns.Problem detectionINFORMATION_SCHEMA+system catalog base tables2021-02-25 17:29MIT License
666Some data modification functions return a value and some notFind as to whether there are data modification routines that return a value as well as data modification routines that do not return a value.Problem detectionINFORMATION_SCHEMA+system catalog base tables2024-12-16 00:02MIT License
667Something is still to do in routinesFind routines where comments contain TODO phrase.Problem detectionINFORMATION_SCHEMA+system catalog base tables2024-12-11 12:44MIT License
668Sometimes current_timestamp, sometimes now()Find as to whether you sometimes use current_timestamp function and sometimes now() function. These implement the same functionality.Problem detectionINFORMATION_SCHEMA+system catalog base tables2024-11-21 13:20MIT License
669Sometimes extract, sometimes date_partFind as to whether you sometimes use date_part function and sometimes extract function. These implement the same functionality.Problem detectionINFORMATION_SCHEMA+system catalog base tables2024-11-21 13:18MIT License
670Sometimes regexp_like, sometimes ~Find as to whether you sometimes use regexp_like function and sometimes ~ operator. These implement the same functionality. regexp_like function that was added to PostgreSQL 15 and provides the same functionality as ~ and ~* operators. Try to be consistent.Problem detectionINFORMATION_SCHEMA+system catalog base tables2024-11-21 12:36MIT License
671Sorting rows based on random values in derived tablesFind derived tables (views and materialized views) that sort rows based on random values. This can be used to find a random subset of rows. It is a computationally expensive operation.Problem detectionINFORMATION_SCHEMA+system catalog base tables2021-02-25 17:29MIT License
672Sorting rows based on random values in derived tables without limiting rowsFind derived tables (views and materialized views) that sort rows based on random values but do not limit the number of rows. This is unnecessary because without sorting the rows are returned in a unspecified order. Sorting based on random values is a computationally expensive operation.Problem detectionINFORMATION_SCHEMA+system catalog base tables2021-02-25 17:30MIT License
673Sorting rows based on random values in routinesFind routines that contain a statement that sorts rows based on random values. This can be used to find a random subset of rows. It is a computationally expensive operation.Problem detectionINFORMATION_SCHEMA+system catalog base tables2021-10-25 16:56MIT License
674Sorting rows based on random values in routines without limiting rowsFind routines that contain a statement that sorts rows based on random values but do not limit the number of rows. This is unnecessary because without sorting the rows are returned in a unspecified order. Sorting based on random values is a computationally expensive operation.Problem detectionINFORMATION_SCHEMA+system catalog base tables2021-10-25 16:57MIT License
675SQL function does not return a valueFind SQL functions that do not return a value (return VOID) but the SQL statement in the function has RETURNING clause.Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-02-27 17:28MIT License
676SQL functions that use optimistic approach for locking but do not return a valueFind SQL functions that use a hidden column of PostgreSQL tables - xmin - to implement optimistic locking but do not return any information to the invoker of the functions, i.e., whether the update/delete operation succeeded or not. The functions should let their invokers know as to whether the function succeeded in updating or deleting a row.Problem detectionINFORMATION_SCHEMA+system catalog base tables2024-11-30 10:02MIT License
677SQL routines that return the value of an input parameterFind SQL routines that return the value of an input parameter.Problem detectionINFORMATION_SCHEMA+system catalog base tables2025-01-20 14:23MIT License
678STATEMENT level triggers and ROW level AFTER triggers without RETURN NULLWrite correct code "The return value of a row-level trigger fired AFTER or a statement-level trigger fired BEFORE or AFTER is always ignored; it might as well be null." (PostgreSQL documentation)Problem detectionINFORMATION_SCHEMA+system catalog base tables2021-02-25 17:30MIT License
679STATEMENT level triggers that refer to the values of row variables NEW or OLDFind STATEMENT level triggers that refer to the values of row variables NEW or OLD. NEW and OLD are special variables that can only be used in row-level trigger procedures.Problem detectionINFORMATION_SCHEMA+system catalog base tables2021-12-20 14:23MIT License
680Stating the obviousFind database objects that name contains words "data" or "info". These are noise words because databases are meant for storing and manipulating data/information.Problem detectionINFORMATION_SCHEMA+system catalog base tables2024-12-21 17:14MIT License