| 401 |
Perhaps a state machine is implemented with timestamp columns |
Find implementations of state machines that uses a set of columns with a timestamp type. |
Problem detection |
INFORMATION_SCHEMA only |
2025-11-07 10:11 |
MIT License |
View |
| 402 |
Perhaps a state machine is implemented with Boolean columns |
Find implementations of state machines that uses a set of one or more Boolean columns. These columns could have the type Boolean or could probably (based on the column name and non-participation in a foreign key) contain values that represent truth values. |
Problem detection |
INFORMATION_SCHEMA+system catalog base tables |
2025-11-07 10:11 |
MIT License |
View |
| 403 |
ON DELETE SET NULL is probably missing |
Find implementations of the adjacency list design pattern, where the corresponding foreign key columns are optional but the foreign key constraint does not have ON DELETE SET NULL compensating action. Implement adjacency list correctly. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 404 |
Frequency of column name lengths based on the table type |
Find in case of base tables, materialized views, and views the number of columns based on the length of the column name. |
Sofware measure |
INFORMATION_SCHEMA+system catalog base tables |
2025-11-07 10:11 |
MIT License |
View |
| 405 |
Table inheritance (path view) |
Find in case of each base table that participates in a table inheritance hierarchy the path to the table from the top-level table. Use table inheritance carefully because, for instance, certain constraints are not inherited and must be redefined on child tables. Also make sure that the identifier of each child table in an inheritance hierarchy is a hyponym of the identifier of its parent table. |
General |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 406 |
Recursive relationships with the same source and target |
Find incorrectly implemented adjacency lists. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 407 |
Textual columns that have a secondary index but the operator class for the column does not support pattern matching |
Find indexed textual columns where the indexing does not consider the possibility of pattern-based search. Such columns do not have an index where the used operator class makes the index suitable for use by queries involving pattern matching expressions. |
Problem detection |
INFORMATION_SCHEMA+system catalog base tables |
2025-11-07 10:11 |
MIT License |
View |
| 408 |
Identical indexes |
Find indexes that are identical, i.e., have the same properties, including uniqueness. The query considers all types of indexes, including indexes that have been automatically created to support a constraint and function-based indexes. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 409 |
Non-foreign key indexes that have been named as foreign key indexes |
Find indexes that are not on a foreign key column but the name of the index contains ixfk or idxfk. |
Problem detection |
INFORMATION_SCHEMA+system catalog base tables |
2025-11-07 10:11 |
MIT License |
View |
| 410 |
Unused indexes |
Find indexes that are not used by the DBMS. Remember that indexes are not a "free lunch" and they slow down the processes of updating data. |
Problem detection |
INFORMATION_SCHEMA+system catalog base tables |
2025-11-07 10:11 |
MIT License |
View |
| 411 |
Unused indexes (2) |
Find indexes that are not used by the DBMS. Remember that indexes are not a "free lunch" and they slow down the processes of updating data. |
Problem detection |
INFORMATION_SCHEMA+system catalog base tables |
2025-11-07 10:11 |
MIT License |
View |
| 412 |
Used indexes |
Find indexes that are used by the DBMS. |
General |
INFORMATION_SCHEMA+system catalog base tables |
2025-11-07 10:11 |
MIT License |
View |
| 413 |
Names of indexes that do not contain the table name |
Find indexes that do not support a declarative constraint and that are perhaps badly named. Table names make the names more expressive and user-friendly. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 414 |
Redundant indexes |
Find indexes that may be redundant. In addition to identical indexes it also considers indexes that cover the same columns and have the same properties except uniqueness. The query considers all types of indexes, including indexes that have been automatically created to support a constraint and function-based indexes. |
Problem detection |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 415 |
Constraint-supporting UNIQUE indexes with the same leading column |
Find indexes that support a uniqueness constraint and have the same leading column. |
General |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 416 |
All partial indexes |
Find indexes to a subset of table rows. |
General |
INFORMATION_SCHEMA+system catalog base tables |
2025-11-07 10:11 |
MIT License |
View |
| 417 |
All gin indexes |
Find indexes with less common access methods. Gin indexes are, for instance, used to speed up PostgreSQL's built in full text search. |
General |
INFORMATION_SCHEMA+system catalog base tables |
2025-11-07 10:11 |
MIT License |
View |
| 418 |
Tables that have associated user triggers |
Find information about tables that are associated with triggers. |
General |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 419 |
Table inheritance |
Find inheritance between base tables. Use table inheritance carefully because, for instance, certain constraints are not inherited and must be redefined on child tables. |
General |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |
| 420 |
Multiple inheritance |
Find instances of multiple inheriance of base tables. Make sure that multiple inheritance is indeed needed. |
General |
system catalog base tables only |
2025-11-07 10:11 |
MIT License |
View |