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...
721The same database object name is used repeatedly in case the same database object typeFind what database object names are used more than once in case the objects of the same type. If the names differ from each other only by digits or underscores, then consider these the same name. For instance, if there are base tables Person and Person2 (in the same schema or different schemas), then the query returns the name Person. Make sure that there is no duplication of implementation elements in the database.GeneralINFORMATION_SCHEMA+system catalog base tables2024-12-21 16:42MIT License
722The same name is used in different contexstsFind the names that are used in case of different types of elementsProblem detectionINFORMATION_SCHEMA+system catalog base tables2024-12-21 16:23MIT License
723The shortest names of database objects by object type"Names in software are 90 percent of what make software readable. You need to take the time to choose them wisely and keep them relevant. Names are too important to treat carelessly. Names should not cause confusion." (Robert C. Martin, Clean Code) Names should be expressive. Find the shortest (identifiers) names of user-defined objects by their type. These could be the first candidates of renaming in order to give to database objects better names.GeneralINFORMATION_SCHEMA+system catalog base tables2024-12-21 17:24MIT License
724The SQL-language routines with the body that is string literalFind SQL-language routines that have the body that is string literal, i.e., the body is not SQL-standard function body. Routines with a SQL-standard body are permitted starting from PostgreSQL 14.Problem detectionINFORMATION_SCHEMA+system catalog base tables2024-01-24 18:20MIT License
725The total number of physical lines of code in the bodies of user-defined SQL and PL/pgSQL functions/proceduresFind a numerical measure that describes the extent of the database public interface (virtual data layer) through which users access the database.Sofware measureINFORMATION_SCHEMA+system catalog base tables2021-11-04 21:02MIT License
726The usage of data type formatting functionsFind expressions that use a data type formatting function - to_char, to_number, to_date, to_timestamp.GeneralINFORMATION_SCHEMA+system catalog base tables2024-12-25 19:57MIT License
727The usage of double vs singular underscores or spaces in names as separator of name componentsImprove the readability of names. Find the number of names (identifiers) of user-defined database objects that contain two or more consecutive underscores or spaces as the separator of name components vs. the number of names that contain a single underscore or space to separate name components. Try to be consistent in the usage of underscores.Sofware measureINFORMATION_SCHEMA+system catalog base tables2024-12-21 17:16MIT License
728The use of xmin hidden column in views and routinesFind the number of views and materialized views that have a column with the xid type and the number of routines that contain a UPDATE or a DELETE statement that search condition refers to the xmin column. If one uses optimistic approach for dealing with the concurrent modifications of data, then xmin values should be presented by views and used in routines that modify or delete rows.Sofware measureINFORMATION_SCHEMA+system catalog base tables2021-11-04 11:56MIT License
729Three-valued logic (non-Boolean columns)Find non-foreign key columns of base tables that probably (based on the column name) contain values that represent truth values but do not have NOT NULL constraint. Use two-valued logic (TRUE, FALSE) instead of three-valued logic (TRUE, FALSE, UNKNOWN). Because NULL in a Boolean column means unknown make all the columns mandatory.Problem detectionINFORMATION_SCHEMA+system catalog base tables2021-03-20 14:07MIT License
730Too few rounds in case of calculating the hashFind user-defined routines where gen_salt function is used with the number of rounds that is smaller than 12. The number should be adjusted based on the hardware where the system resides. Password hashing should take at least 250 ms.Problem detectionINFORMATION_SCHEMA+system catalog base tables2021-10-25 17:21MIT License
731Too generic names (columns)Find the names of columns that are too generic. In SQL databases data/information is represented as values in columns. It is not a good style to use generic words like data, information, column, etc. In the names of columns. Moreover, avoid too generic column names like: id, tyyp, kood, aeg, kp,type, code, time, date, fk, pk.Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-01-15 10:33MIT License
732Too generic names (columns) (there is a column with a more specific name in the table)Find column names in case of which the same table has another column (with more specific name) that name contains the column name in the end or in the beginning. For instance, a base table has columns parent and root_parent and the former col-umn name is too generic, i.e., it should be more specific.Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-03-20 01:01MIT License
733Too generic names (parameters)Find the names of parameters that are too generic. The routines work with data/information. Thus, it is not a good style to use generic words like data, information, parameter, etc. In the names of parameters. Moreover, avoid too generic parameter names like: id, tyyp, kood, aeg, kp,type, code, time, date, fk, pk, param.Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-01-20 14:08MIT License
734Too generic names (parameters) (there is a parameter with a more specific name in the routine)Find parameter names in case of which the same routine has another parameter with the same mode but with more specific name, i.e., the name contains the parameter name in the end or in the beginning.Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-12-06 12:03MIT License
735Too generic names regarding persons and their names (columns of derived tables)Find derived table columns that name refers to the possibility that these contain person names. The names of derived table columns that contain person names should refer to the role that the corresponding entity type has in the view. For instance, if view active_product has a column with the name surname, then the column name does not give information what is the role of the person in the context of the view. Better name would be, for instance, registrator_surname.Problem detectionINFORMATION_SCHEMA+system catalog base tables2022-11-10 14:25MIT License
736Too generic names (routines)"Avoid using the same word for two purposes. Using the same term for two different ideas is essentially a pun" (Robert C. Martin, Clean Code) Do not use the Estonian words like 'lisa', 'muuda', 'kustuta' or the corresponding English words 'add', 'delete', 'update' as the names of routines because it would make the code much less understandable. What is the task of the routine f_add? Register people? Register orders? What? Do not refer to the generic concepts like data and information because all routines work with these.Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-01-07 20:38MIT License
737Too generic names (tables)Find the names of tables that are too generic. In SQL databases data/information is represented as values in columns. It is not a good style to use generic names like table, data, information, list etc. in the names of tables.Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-01-07 20:37MIT License
738Too many slashes in regular expressionsFind patterns of regular expressions where more than \ is written instead of \, e.g., \\s is used instead of \s to refer to a character class.Problem detectionINFORMATION_SCHEMA+system catalog base tables2024-12-21 11:15MIT License
739Too short names of database objects"Names in software are 90 percent of what make software readable. You need to take the time to choose them wisely and keep them relevant. Names are too important to treat carelessly. Names should not cause confusion." (Robert C. Martin, Clean Code) The names should be meaningful and searchable. Find the names (identifiers) of user-defined database objects that are shorter than three characters.Problem detectionINFORMATION_SCHEMA+system catalog base tables2024-12-21 17:27MIT License
740Too short or missing comments of derived tables and routinesFind views, materialized views, and user-defined routines that do not have a comment at all or the comment is shorter than twice the length of the object name, or the comment states that it is missing (TODO). You should give information to future developers and maintainers of the system (including the future version of yourself). Do not just repeat the name in the comment (with perhaps some rewording).Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-01-19 12:56MIT License