Catalog of PostgreSQL queries for finding information about a PostgreSQL database and its design problems

AND
AND
AND
ANDFrom where does the query gets its information?
AND
AND

There are 996 queries.

Seq nrNameGoalTypeData sourceLast updateLicense...
761Perhaps a routine does not have a real taskFind the routines where the only action is to return an argument value, a constant value, NULL or return the value of OLD or NEW variable in case of trigger functions.Problem detectionINFORMATION_SCHEMA+system catalog base tables2021-11-05 12:09MIT License
762The size of base tables and their indexesFind the size of base tables without indexes, size of the indexes of the table, total size of the table (including its indexes) and percentage of the index size from the total size. If the size of indexes of a table is relatively high, then check as to whether all the indexes are needed.Generalsystem catalog base tables only2023-10-27 20:38MIT License
763The generic names (columns) (aggregate view)Find the too generic column names and the number of their occurrences.Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-01-15 10:34MIT License
764The longest names of database objectsFind the TOP 3 longest (identifiers) names of user-defined objects.GeneralINFORMATION_SCHEMA+system catalog base tables2024-12-21 17:26MIT License
765The number of columns based on table typeFind the total number of columns in the different types of tables as well as average number of columns in the tables as well as minimal and maximal number of columns.Sofware measureINFORMATION_SCHEMA+system catalog base tables2022-11-10 14:12MIT License
766The number of default valuesFind the total number of columns with a default value as well as the number of columns with different kinds of default values (the number of columns where the default is used to implement surrogate key, the number of columns where the default is not used to implement surrogate key, the number of columns with a static default value, the number of columns with a dynamic default value).Sofware measureINFORMATION_SCHEMA only2021-11-22 13:26MIT License
767Incorrect check of NULLsFind the use of =NULL and <>NULL in case of table level check constraints, domain level check constraints, WHEN clauses of triggers, WHERE clauses of rules, subqueries of derived tables, and bodies of routines. Write correct code. In order to determine as to whether a value is missing or not one has to use the IS [NOT] NULL predicate. NULL is the marker in SQL that denotes a missing value. Although it is often called "NULL value", one cannot treat it as an ordinary value, i.e., use it in comparisons as a value.Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-11-12 12:10MIT License
768Incorrect specification of logical or in regular expressionsFind the use of regular expressions where logical or is incorrectly specified, i.e., (| or |).Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-11-24 12:07MIT License
769The same trigger function is used in case of multiple tablesFind trigger functions that are used in case of more than one table. Although it is legal, one must be careful when changing the functions in order to avoid unwanted consequences.GeneralINFORMATION_SCHEMA only2020-12-25 14:50MIT License
770Trigger functions with a conditional statementFind trigger functions that contain a conditional (IF or CASE) but do not contain a SELECT statement before these. The latter condition is for the reason that one cannot use a subquery in the WHEN clause. Thus, if one wants to make a query and decide the further action based on the results of the query, then one must do it within the body of the function.Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-11-19 12:07MIT License
771Triggers with the same name in different schemasFind trigger names that are used in a database in more than one schema. Different things should have different names. But here different triggers have the same name. Also make sure that this is not a duplication.GeneralINFORMATION_SCHEMA+system catalog base tables2020-11-06 14:51MIT License
772Triggers that are used to calculate tsvector values react to a wrong set of eventsFind triggers on base tables that are used to calculate tsvector values that react to a wrong set of events, i.e., react to the DELETE event or do not react to the INSERT and UPDATE events.Problem detectionsystem catalog base tables only2023-11-07 10:14MIT License
773Triggers with arguments from the CREATE TRIGGER statementFind triggers that get an argument from the CREATE TRIGGER statement.GeneralINFORMATION_SCHEMA+system catalog base tables2023-12-22 12:35MIT License
774Update prevention may prevent legal updatesFind triggers that try prevent updating data in a certain column but prevent also certain legal updates - updates that write to a field a value that was in the field before the update.Problem detectionINFORMATION_SCHEMA+system catalog base tables2022-07-07 13:12MIT License
775Too generic names (unique indexes)Find unique indexes that have too generic names like "key" or the name contain too generic words like "data" (all constraints restrict data in the table), or the name is an abbreviation of a constraint type name.Problem detectionsystem catalog base tables only2023-01-08 10:38MIT License
776Too generic names (unique index columns)Find unique index (not associated with a constraint) columns with the names like id, identifikaator, code, kood, number, etc. The names could have underscores as the prefix or suffix. These are too generic names.Problem detectionsystem catalog base tables only2023-01-07 20:34MIT License
777Unlogged tablesFind unlogged tables. These may improve the performance of INSERT operations, but with the price of possibly loosing data - an unlogged table is automatically truncated after a crash or unclean shutdown.Generalsystem catalog base tables only2020-11-06 14:51MIT License
778Unnamed parametersFind unnamed parameters in PL/PGSQL routines that do not declare aliases for parameters and in SQL routines. Avoid unnamed parameters because dependency on position in case of referencing the parameters makes evolving the code more difficult. In case of unnamed parameters - if one changes the order of parameters in the routine signature, then one has to change the body of the routine in order to use correct references. The bigger is the number of parameters in a routine the more the unnamed parameters make it more difficult to understand the routine.Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-03-15 18:16MIT License
779Updatable views that do not have WITH CHECK OPTION constraintFind 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 detectionINFORMATION_SCHEMA only2023-10-29 10:33MIT License
780Views with the WITH LOCAL CHECK OPTION constraintFind 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 detectionINFORMATION_SCHEMA only2021-02-25 17:30MIT License