| 921 |
Duplicate foreign key constraints |
Find duplicate foreign key constraints, which involve the same columns and refer to the same set of columns. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 922 |
Duplicate independent (i.e., not created based on a table) composite types |
Find composite types with the same attributes (regardless of the order of attributes). Make sure that there is no duplication. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 923 |
Duplicate keys |
Find completely overlapping key (primary key, unique, and exclude where all operators are =) constraints. This is a form of duplication. It leads to the creation of multiple indexes to the same set of columns. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 924 |
Duplicate materialized views |
Find materialized views with exactly the same subquery. There should not be multiple materialized views with the same subquery. Do remember that the same task can be solved in SQL usually in multiple different ways. Thus, the exact copies are not the only possible duplication. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 925 |
Duplicate non-fuction based unique indexes |
Find pairs of non-function based unique indexes that cover the same set of columns. Include indexes that support a constraint (primary key, unique, exclude), i.e., these indexes have been automatically created due to the constraint declaration. For instance, it helps us to find unique indexes that have been defined to already unique columns. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 926 |
Duplicate rules |
Find multiple rules with the same definition (event, condition, action) on the same table. Do remember that the same task can be solved in SQL usually in multiple different ways. Thus, the exact copies are not the only possible duplication. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 927 |
Empty tables |
Find base tables where the number of rows is zero. If there are no rows in a table, then it may mean that one hasn't tested constraints that have been declared to the table or implemented by using triggers. It could also mean that the table is not needed because there is no data that should be registered in the table. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 928 |
Excessive privileges on databases, schemas, domains, types, languages, foreign data wrappers, and foreign servers |
Find excessive privileges on databases, schemas, domains, collations, sequences, foreign data wrappers, and foreign servers that are probably not needed by a typical application. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 929 |
Exclude constraint instead of simple UNIQUE |
Find exclude constraints that implement a simple UNIQUE constraint. The checking might be slower compared to UNIQUE constraint. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 930 |
Extension routines |
Find all routines that belong to an extension. |
General |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 931 |
Extension routines in the schema "public" |
Find extensions that routines are in the schema public. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 932 |
Extensions that are available but are not installed |
Try to use as much the possibilities of the DBMS as possible. On the other hand, do not install extensions that are not needed in order not to overcomplicate the database. |
General |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 933 |
Foreign key column has a simple check constraint that is attached directly to the table |
Find foreign key columns that are covered by a simple check constraint, i.e., the constraint involves only one column. Look only constraints that are directly associated with the table, i.e., are not specified through a domain. Perhaps the constraint should be defined on the referenced candidate key column. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 934 |
Foreign key constraint references to the columns of a UNIQUE constraint not to the columns of the PRIMARY KEY constraint |
Find foreign key constraints that reference to a UNIQUE constraint columns not to the PRIMARY KEY constraint columns. This is legal in SQL. However, a tradition is to refer to the primary key columns. If most of the foreign keys refer to the primary key columns, then it raises a question as to whether this kind of design decision has a good reason in a particular case or whether it is an inconsistency. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 935 |
Foreign key constraint references to the columns of a UNIQUE constraint not to the columns of the PRIMARY KEY constraint while the referenced table has the primary key |
Find foreign key constraints that reference to a UNIQUE constraint columns not to the PRIMARY KEY constraint columns while at the same time the referenced table does have the primary key. This is legal in SQL. However, a tradition is to refer to the primary key columns. If most of the foreign keys refer to the primary key columns, then it raises a question as to whether this kind of design decision has a good reason in a particular case or whether it is an inconsistency. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 936 |
Foreign key references to a unique index columns not a unique key columns |
Find foreign key constraints that reference to the columns that are covered by a unique index not a unique key. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 937 |
Foreign key refers to a table that has at least one subtable in the inheritance hierarchy |
Find foreign key constraints that refer to a base table that has at least one subtable in the inheritance hierarchy. Rows of the subtable do not belong to the supertable in terms of checking the referential integrity. Let us assume that there is a table T with a subtable Tsub. Let us also assume that table B has a foreign key that refers to the table T. If a row is inserted into Tsub, then this row cannot be referenced from B. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 938 |
Foreign keys with ON DELETE CASCADE |
This query identifies all foreign key constraints that use ON DELETE CASCADE for the purpose of a design audit. The results must be manually reviewed to verify that each use case correctly implements a specific conceptual relationship. According to design principles, ON DELETE CASCADE is only appropriate for implementing generalization hierarchies (is-a relationships), compositions (strong ownership), or the existential dependency of a non-main entity on a main entity. Any usage outside of these patterns is considered a potential design flaw. |
General |
system catalog base tables only |
2025-11-08 10:51 |
MIT License |
View |
| 939 |
Foreign keys with ON UPDATE CASCADE |
This query generates a list of all foreign key constraints that are defined with the ON UPDATE CASCADE action. This list must be manually audited to enforce the design principle that this action should be applied exclusively to relationships involving mutable, natural keys. Any instance found referencing an immutable surrogate key should be considered a design flaw and remediated. |
General |
system catalog base tables only |
2025-11-08 10:40 |
MIT License |
View |
| 940 |
Function Upper or Lower is used in an index on a non-textual column |
Find function-based indexes that are based on function Upper or Lower but have been defined on a non-textual column. Such indexes support case insensitive search but in case of non-textual columns this does not have a meaning. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |