Seq nr | Name | Goal | Type | Data source▲ | Last update | License | ... |
---|---|---|---|---|---|---|---|
601 | Perhaps unnecessary DECLARE section in a PL/pgSQL routine (2) | Find PL/pgSQL routines that perhaps unnecessarily contain DECLARE section. More specifically, find routines with the DECLARE section where the keyword DECLARE is followed by BEGIN, i.e., the DECLARE section is empty. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2023-12-23 13:39 | MIT License | |
602 | Perhaps unnecessay regular expression | Find occurrences of possibly pointless regular expressions - i.e., value contains zero or more symbols. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2024-12-27 18:37 | MIT License | |
603 | Perhaps updating of modification time is missing | Find routines with SQL-standard body that seem to update data in a table that has a column for modification time but the routine does not seem to update the modification time while updating the row and the table does not seem to have an UPDATE trigger that changes the modification time. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2024-12-23 11:55 | MIT License | |
604 | Perhaps USING syntax could be used for joining in the subqueries of derived tables | Find derived tables that use newer join syntax where join conditions are written in the WHERE clause but do not use USING synatx. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2023-11-10 14:14 | MIT License | |
605 | PL/pgSQL functions with consecutive RETURN clauses | Find PL/pgSQL functions with consecutive RETURN clauses. Only the first RETURN will be used, others are unnecessary. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2021-12-16 11:38 | MIT License | |
606 | PL/pgSQL functions without the RETURN clause | The return value of a function cannot be left undefined. If control reaches the end of the top-level block of the function without hitting a RETURN statement, a run-time error will occur. This restriction does not apply to functions with output parameters and functions returning void, however. In those cases a RETURN statement is automatically executed if the top-level block finishes. It also does not apply to trigger functions that only task is to raise an exception. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2023-10-29 11:13 | MIT License | |
607 | PL/pgSQL routines that use a cursor | Working with sets of rows rather than processing each row separately is more effective. | General | INFORMATION_SCHEMA+system catalog base tables | 2021-11-04 11:54 | MIT License | |
608 | PL/pgSQL routine with plain SELECT | Find PL/pgSQL that contain a SELECT statement that is not a SELECT … INTO statement. This is not permitted in PL/pgSQL routines. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2021-10-25 17:07 | MIT License | |
609 | Pointlessly returned value | The value that is returned by a function should depend on something. If you do not have anything meaningful to return (for instance, the function always returns true, false, NULL, or the same number), then write VOID instead of the return type. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2021-11-04 15:01 | MIT License | |
610 | Polymorphic routines | Find routines that have a parameter (input or output) that can have values from different types. This parameter has one of the PostgreSQL polymorphic types. The set of polymorphic types in PostgreSQL is a proper subset of its pseudo-types. The use of such a parameter allows a single routine definition to operate on many different data types, with the specific data type(s) being determined by the data types actually passed to it in a particular call. | General | INFORMATION_SCHEMA+system catalog base tables | 2021-11-04 13:12 | MIT License | |
611 | Potentially a classifier is missing (based on field sizes) | Find columns that are not covered by a primary key, unique, and foreign key constraint but have a textual type with the maximum field size 3 or less. | General | INFORMATION_SCHEMA+system catalog base tables | 2021-03-10 13:07 | MIT License | |
612 | Potentially a classifier table is missing (based on field sizes) | Find columns that are not covered by a primary key, unique, and foreign key constraint but have a textual type with the maximum field size 3 or less and where the column name does not refer to names or comments. Return only data about these columns where there is no table with a similar name. Return data only about tables that could be referenced from more than one table. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2021-03-18 20:08 | MIT License | |
613 | Potentially missing PRIMARY KEY or UNIQUE constraints (based on column names) | Find columns of base tables that name refers to the possibility that it contains unique values but the column does not belong to any PRIMARY KEY/UNIQUE constraint. If something has to be unique, then it must be said to the system so that it could use the information for internal optimizations and enforce the constraint. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2023-11-17 18:09 | MIT License | |
614 | Potentially missing PRIMARY KEY or UNIQUE constraints (based on foreign keys) | All the keys must be enforced. Find base tables that implement M:N relationship types and that allow multiple relationships of the same type between the same entities. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2021-02-25 17:29 | MIT License | |
615 | Potentially missing PRIMARY KEY or UNIQUE constraints (based on sequence generators) | Find columns of base tables that contain automatically generated unique values but do not belong to any PRIMARY KEY/UNIQUE constraint. If something has to be unique, then it must be said to the system so that it could use the information for internal optimizations and enforce the constraint. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2021-03-07 20:53 | MIT License | |
616 | Potentially missing PRIMARY KEY or UNIQUE constraints (based on UUIDs) | If something has to be unique, then it must be said to the system so that it could use the information for internal optimizations and enforce the constraint. Find columns that contain Universally Unique Identifiers but are not a part of any simple PRIMARY KEY/UNIQUE constraint and are also not part of a foreign key. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2022-11-03 11:18 | MIT License | |
617 | Potentially missing sequence generators (based on column names and types) | Find surrogate key columns that do not have an associated sequence generator. Surrogate key values must be generated by using the system (the sequence generator mechanism in case of PostgreSQL). If there are no sequence generators, then there is a question as to whether there are no surrogate keys in the database at all (could be possible and OK) or (more probable) developers have forgotten to implement the generation of surrogate keys. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2021-03-08 00:44 | MIT License | |
618 | Potentially unnecessary use of sequence generators | Find simple natural key columns that are associated with a sequence generator. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2021-03-07 21:06 | MIT License | |
619 | Precise comparison with pattern matching in CHECK constraints | Find CHECK constraints that use precise comparison (= or <>) with a regular expression or LIKE pattern. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2023-11-01 17:13 | MIT License | |
620 | Predefined character classes must be between double square brackets | Find regular expressions that do not have predefined character classes between double square brackets, e.g., [:digit:] instead of [[:digit:]]. | Problem detection | INFORMATION_SCHEMA+system catalog base tables | 2023-11-22 17:34 | MIT License |