Seq nr | Name | Goal | Type | Data source | Last update▼ | License | ... |
---|---|---|---|---|---|---|---|
181 | Grantable usage privileges | Find usage privileges that the carrier of the privilege can in turn grant to others, i.e., the privileges have been given WITH GRANT OPTION. The number of privileges that can be passed on should be as small as possible. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2024-01-07 13:43 | MIT License | |
182 | Grantable roles | Find roles that a member can grant to others, i.e., the role has been granted with ADMIN OPTION. The number of privileges that can be passed on should be as small as possible. | Problem detection | system catalog base tables only | 2024-01-07 13:42 | MIT License | |
183 | Granted roles | Find membership relations between roles. | General | system catalog base tables only | 2024-01-07 13:30 | MIT License | |
184 | Perhaps a too long SQL routine | A large routine may have multiple tasks that should be split between multiple routines that have a more focused task. Find the SQL routines where the number of statements (logical lines of code) is bigger than 5. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2024-01-04 16:39 | MIT License | |
185 | Extension routines in the schema "public" | Find extensions that routines are in the schema public. | General | system catalog base tables only | 2024-01-04 11:56 | MIT License | |
186 | Insufficient number of user-defined triggers+rules | There must be user-defined triggers and/or rules for at least n (three in this case) tasks in the database. It also means that one should create at least three triggers and/or rules in the database. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2024-01-04 11:47 | MIT License | |
187 | Insufficient number of user-defined triggers+rules (based on number of tasks) | There must be user-defined triggers and/or rules for at least n (three in this case) tasks in the database. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2024-01-04 11:46 | MIT License | |
188 | Different tasks of triggers | Find different tasks that are solved by using triggers, i.e., different triggers on the same table or different tables that do the same thing are considered to solve one task. | General | INFORMATION_SCHEMA+system catalog base tables | 2024-01-04 00:53 | MIT License | |
189 | Columns with BOOLEAN type that do have a good name | The prefic of the name should be "is_" or "has_" or "can_" (in English) or "on_" (in Estonian). Worse: agreed, kinnitatud. Better: is_agreement, on_kinnitatud. | General | INFORMATION_SCHEMA+system catalog base tables | 2024-01-03 09:56 | MIT License | |
190 | Columns with BOOLEAN type that do not have a good name | The phrase "is_" or "has_" or "can_" (in English) or "on_" (in Estonian) should be used in the name - preferably in the beginning. Worse: agreed, kinnitatud. Better: contract_is_agreed, leping_on_kinnitatud. Perhaps the best: is_contract_agreed or is_agreement, on_leping_kinnitatud, on_kinnitatud. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2024-01-03 09:56 | MIT License | |
191 | Inconsistent naming of columns with BOOLEAN type | Find as to whether some columns with the type Boolean start with a prefix ("is", "has", "can", "on") and some do not. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2024-01-03 09:54 | MIT License | |
192 | Names of columns with the type BOOLEAN | The naming of BOOLEAN columns must be consistent. For the better readability the names of such columns could have prefix "is_" (in English) or "on_" (in Estonian) | General | INFORMATION_SCHEMA+system catalog base tables | 2024-01-03 09:41 | MIT License | |
193 | Perhaps the type of a base table column should be BOOLEAN (based on column names) | Find base table columns that based on the name seem to hold truth values. Find columns that name starts with "is_" or "has_" or "can_" or "on_" and that do not have Boolean type. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2024-01-03 09:41 | MIT License | |
194 | Perhaps the type of a parameter should be BOOLEAN (based on parameter names) | Find routine parameters that based on the name seem to hold truth values. Find parameters that name starts with "is_" or "has_" or "can_" or "on_" and that do not have Boolean type. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2024-01-03 00:10 | MIT License | |
195 | Perhaps 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 detection | INFORMATION_SCHEMA only | 2024-01-01 12:14 | MIT License | |
196 | Simple check constraints with multiple tasks | Find 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 detection | INFORMATION_SCHEMA+system catalog base tables | 2024-01-01 11:42 | MIT License | |
197 | All table CHECK constraints that cover at leat one column | Find all CHECK constraints (except NOT NULL) that are associated with a base table or a foreign table column. It is useful to enforce as many constraints at database level as possible. In this way one improves data quality as well as gives extra information to the database users (including the DBMS engines, development environments, and applications). | General | INFORMATION_SCHEMA only | 2024-01-01 11:27 | MIT License | |
198 | Multiple tables share the same state classifier | Find cases where multiple tables share the same state classifier. For each main entity type one should create a separate state classifier table. Even if the classifier values are the same in case of two entity types for now these may become different in the future. Having a shared state classifier table usually means very simplistic state machines (states active and inactive) that could point to the gaps in analysis. | Problem detection | system catalog base tables only | 2023-12-30 15:51 | MIT License | |
199 | Perhaps last update time trigger is missing | Find base tables that have a column for last update time but the table does not have associated before update row level trigger for changing the last update time. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2023-12-30 15:22 | MIT License | |
200 | Perhaps an overcomplicated constraint expression that compares the result of a Boolean expression with a Boolean value | Find table and domain CHECK constraints that compare the result of a Boolean expression with a Boolean value. If you can choose between two logically equivalent Boolean expressions choose the more simple expression. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2023-12-30 11:57 | MIT License |