Seq nr | Name | Goal | Type | Data source▲ | Last update | License | ... |
---|---|---|---|---|---|---|---|
201 | Unused foreign servers | Find foreign servers that do not have any associated foreign tables. | Problem detection | INFORMATION_SCHEMA only | 2021-02-25 17:30 | MIT License | |
202 | Updatable views that do not have WITH CHECK OPTION constraint | Find updatable views that do not have WITH CHECK OPTION constraint. WITH CHECK OPTION constraint prevents updates through the view that violate the predicate of the view. Such updates must be prevented. | Problem detection | INFORMATION_SCHEMA only | 2023-10-29 10:33 | MIT License | |
203 | Updatable views with WHERE clause that do not have WITH CHECK OPTION constraint | Find updatable views that restrict rows, i.e., have WHERE clause, but do not have WITH CHECK OPTION constraint. WITH CHECK OPTION constraint prevents updates through the view that violate the predicate of the view. Such updates must be prevented. | Problem detection | INFORMATION_SCHEMA only | 2024-01-14 17:11 | MIT License | |
204 | Updataple foreign tables that refer to another PostgreSQL table | Find foreign tables that have been defined based on postgresql_fwd foreign data wrapper and that are updatable. Make sure that updatability is in this case needed. | General | INFORMATION_SCHEMA only | 2020-11-06 17:15 | MIT License | |
205 | UPDATE triggers | Find all UPDATE triggers. Make sure that they specify a correct set of columns in which data modification will fire the trigger. | General | INFORMATION_SCHEMA only | 2023-12-22 09:47 | MIT License | |
206 | UPDATE triggers where updated columns have not been specified (the trigger could executed too often) | Find UPDATE triggers where updated columns are not specified. These triggers could be executed too often because unneeded executions are not prevented. | Problem detection | INFORMATION_SCHEMA only | 2024-12-23 09:53 | MIT License | |
207 | UPDATE triggers where WHEN clause has not been specified (the trigger could executed too often) | Find UPDATE triggers where WHEN clause is not specified. These triggers could be executed too often because unneeded executions are not prevented. | Problem detection | INFORMATION_SCHEMA only | 2024-12-23 09:54 | MIT License | |
208 | Use invocation of a precise function instead of casting in a default value expression | Be precise and write as little code as possible. Prefer expressions with simple invocations of functions like localtimestamp, current_timestamp, and current_date over expressions like (now())::date. Find table columns that have a default value that casts the type of the returned value of a non-deterministic function (now, localtimestamp, current_timestamp, and current_date). | Problem detection | INFORMATION_SCHEMA only | 2021-02-25 17:29 | MIT License | |
209 | Using an internal data type - name | Find base table columns that use type name that is used in system catalog tables. It is not a problem if the column is meant for recording identifiers of database objects. | General | INFORMATION_SCHEMA only | 2021-03-30 13:36 | MIT License | |
210 | Very similar domain names | Find pairs of names of domains that are very similar or even equal. | Problem detection | INFORMATION_SCHEMA only | 2024-11-30 12:07 | MIT License | |
211 | Views with the WITH LOCAL CHECK OPTION constraint | Find updatable views that have WITH LOCAL CHECK OPTION constraint. The predicate of a view is the conjunction of the predicates of its (directly and indirectly) underlying tables (both base tables and derived tables) as well as the predicate of the view itself. In case of using WITH LOCAL CHECK OPTION constraint "New rows are only checked against the conditions defined directly in the view itself. Any conditions defined on underlying base views are not checked (unless they also specify the CHECK OPTION)." (PostgreSQL manual) Thus, use instead WITH CASCADED CHECK option to instruct the system to check new rows against the entire predicate of the view. | Problem detection | INFORMATION_SCHEMA only | 2021-02-25 17:30 | MIT License | |
212 | A getter does not return a value | Find user-defined SQL and PL/pgSQL routines that do not return a value although the name suggest that it should return a value (starts with "get"). | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2023-01-06 14:24 | MIT License | |
213 | A large number of triggers | Show user-defined triggers if there are more than 9 different trigger routine bodies, i.e., different triggers on different tables that do the same thing count as one trigger. | General | INFORMATION_SCHEMA+system catalog base tables | 2023-12-25 11:23 | MIT License | |
214 | All covering indexes | Find all covering indexes, which include data from additional columns in leaf blocks. | General | INFORMATION_SCHEMA+system catalog base tables | 2020-12-23 11:54 | MIT License | |
215 | All declaratively partitioned tables | Find partitioned tables that have been implemented by using the declarative approach. Declarative partitioning is implemented in PostgreSQL starting from PostgreSQL 10. | General | INFORMATION_SCHEMA+system catalog base tables | 2020-11-06 15:13 | MIT License | |
216 | All derived tables that use joining tables | Find all derived tables that join two or more tables. | General | INFORMATION_SCHEMA+system catalog base tables | 2024-10-05 18:34 | MIT License | |
217 | All enumerated types | Find all enumerated types. | General | INFORMATION_SCHEMA+system catalog base tables | 2022-10-31 10:19 | MIT License | |
218 | 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 | 2020-11-06 14:51 | MIT License | |
219 | All non-unique indexes | Find secondary indexes that have been created in the database. | General | INFORMATION_SCHEMA+system catalog base tables | 2020-12-23 11:50 | MIT License | |
220 | All parameters with DEFAULT values | Find parameters of user-defined routines that have a default value. | General | INFORMATION_SCHEMA+system catalog base tables | 2020-11-06 14:51 | MIT License |