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

AND
AND
ANDQueries of this catergory provide information about the use of default values.
ANDFrom where does the query gets its information?
AND
AND

There are 63 queries.

Seq nrNameGoalTypeData sourceLast updateLicense...
1All column DEFAULT valuesFind all the default values of base table, view, and foreign table columns.GeneralINFORMATION_SCHEMA only2022-10-31 10:18MIT License
2All column dynamic DEFAULT values values that do not invoke a sequenceFind all columns that have a dynamic default value, i.e., the value is returned by a function but the function is not for invoking a sequence.GeneralINFORMATION_SCHEMA only2021-11-15 15:57MIT License
3All columns of a base table have a default valueFind base tables where all the columns have a default value.Problem detectionINFORMATION_SCHEMA only2021-02-25 17:29MIT License
4All column static DEFAULT valuesFind all columns that have a static default value, i.e., the value is not returned by a function.GeneralINFORMATION_SCHEMA only2021-11-15 15:57MIT License
5All domain default valuesFind domains that specify a default values and columns that are defined based on the domain. Make sure that there are no unsuitable default values.GeneralINFORMATION_SCHEMA only2021-01-19 13:04MIT License
6All parameters with DEFAULT valuesFind parameters of user-defined routines that have a default value.GeneralINFORMATION_SCHEMA+system catalog base tables2020-11-06 14:51MIT License
7Base tables that have a surrogate key and all its unique constraints have an optional columnA surrogate key is a primary key that consist of one column. The values of this column do not have any meaning for the user and the system usually generates the values (integers) automatically. In case of defining a surrogate key in a table it is a common mistake to forget declaring existing natural keys in the table. If a key covers an optional column then it does not prevent duplicate rows where some values are missing and other values are equal. Because NULL is not a value and is not duplicate of another NULL the, follwing is possible: CREATE TABLE Uniq(a INTEGER NOT NULL,
b INTEGER,
CONSTRAINT ak_uniq UNIQUE (a, b));

INSERT INTO Uniq(a, b) VALUES (1, NULL);
INSERT INTO Uniq(a, b) VALUES (1, NULL);
Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-10-21 11:54MIT License
8Base tables that have a surrogate key and do not have any uniqueness constraintsA surrogate key is a key that consist of one column. The values of this column do not have any meaning for the user and the system generates the values (integers) automatically. In case of defining a surrogate key in a table it is a common mistake to forget declaring existing natural keys in the table. The query discards tables with only one column.Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-10-26 17:47MIT License
9Base tables that have only the surrogate key and do not have any other columnDo not create unnecessary tables. If a table has cardinality 1 (one column), then most probably the values in this column should not be system generated unique values.Problem detectionINFORMATION_SCHEMA only2021-03-08 00:41MIT License
10Candidate key columns that have a static default valueFind base table columns that are covered by a primary key or a unique constraint and that probably have a static default value.Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-11-12 11:32MIT License
11Candidate keys where all columns have a static default valueFind base table primary key and unique constraints where all columns probably have a static default value. Candidate key columns (columns that belong to the primary key or to an unique constraints) shouldn't have static default values unless you are enforcing a rule that a table can have at most one row. The point of default values is that system assigns them automatically. There cannot be multiple rows with the same key value.Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-11-12 11:33MIT License
12Cannot accommodate all the fractional seconds in case of table columnsThe precision of a timestamp type of a column must be able to accommodate all the fractional seconds of the default value of the column. Find table columns with the type timestamp without time zone(m) or timestamp with time zone(m) that have a default value LOCALTIMESTAMP(n) or CURRENT_TIMESTAMP(n) WHERE n>m.Problem detectionINFORMATION_SCHEMA only2021-02-25 17:30MIT License
13CHAR columns have a default value that length is shorter from the character maximum length of the columnChoose a suitable data type, field size, and default value. If the default value is shorter from the character maximum length, then spaces will be added to the end of the registered value.Problem detectionINFORMATION_SCHEMA only2021-02-25 17:30MIT License
14CHAR or VARCHAR columns have a default value that length is longer from the character maximum length of the columnFind table columns with CHAR or VARCHAR type that have a default value that length is longer from the character maximum length of the column. Choose a suitable data type, field size, and default value. If the value is longer, then it is impossible to register it in a field, i.e., it makes registration of data impossible (except if the excessive characters are spaces).Problem detectionINFORMATION_SCHEMA only2022-10-31 10:19MIT License
15CHECK constraints that perhaps do not consider 'infinity' and '-infinity' special valuesFind check constraints of base tables that cover exactly one column where the default value of the column is special value 'infinity' or '-infinity'. Find only such constraints that probably check a range of permitted values but do not consider that one of the values might be 'infinity' or '-infinity'. Such special values belong to the types DATE, TIMESTAMP, NUMERIC, REAL, and DOUBLE PRECISION.Problem detectionINFORMATION_SCHEMA+system catalog base tables2024-05-08 18:58MIT License
16Columns for registration and update timesFind base table columns that based on the names and data types are meant for registering registration time or update time. Make sure that the columns have the same properties.GeneralINFORMATION_SCHEMA only2023-11-26 16:51MIT License
17Columns of base tables that hold truth values but do not have a default value (Boolean columns)Find columns of base tables that have type BOOLEAN but do not have a default value. There are only two truth values - TRUE and FALSE - in case of two-valued logic. Often it should be possible to select one of these as the default value of a column that has BOOLEAN type.Problem detectionINFORMATION_SCHEMA only2023-11-09 13:14MIT License
18Columns of base tables that hold truth values but do not have a default value (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 a default value. There are only two truth values - TRUE and FALSE - in case of two-valued logic. It could be possible to select one of these as the default value in case of the columns.Problem detectionINFORMATION_SCHEMA+system catalog base tables2021-03-20 14:08MIT License
19Columns of base tables that hold truth values that do not have a default value although they could have it (Boolean columns)Find columns of base tables that have type BOOLEAN. Based on column names these implement a state machine or record agreements. At the same time the columns do not have a default value. There are only two truth values - TRUE and FALSE - in case of two-valued logic. It should be possible to select one of these as the default value of the column.Problem detectionINFORMATION_SCHEMA only2023-11-09 16:39MIT License
20Columns of base tables that hold truth values that do not have a default value although they could have it (non-Boolean columns)Find columns of base tables that do not have type BOOLEAN but are used to record Boolean values. Based on column names these implement a state machine or record agreements. At the same time the columns do not have a default value. There are only two truth values - TRUE and FALSE - in case of two-valued logic. It should be possible to select one of these as the default value of the column.Problem detectionINFORMATION_SCHEMA+system catalog base tables2023-11-09 16:40MIT License