Rule Sources

Many rules are inspired by or directly ported from other tools. This page lists the sources of each rule.

Exclusive rules

No exclusive rules available.

Rules from other sources

Eugene

Eugene Rule Name Rule Name
E11 addSerialColumn
E3 preferJsonb
E4 runningStatementWhileHoldingAccessExclusive
E9 lockTimeoutWarning
W12 multipleAlterTable
W13 creatingEnum

Squawk

Squawk Rule Name Rule Name
adding-field-with-default addingFieldWithDefault
adding-foreign-key-constraint addingForeignKeyConstraint
adding-not-null-field addingNotNullField
adding-required-field addingRequiredField
adding-serial-primary-key-field addingPrimaryKeyConstraint
ban-char-field banCharField
ban-concurrent-index-creation-in-transaction banConcurrentIndexCreationInTransaction
ban-drop-column banDropColumn
ban-drop-database banDropDatabase
ban-drop-not-null banDropNotNull
ban-drop-table banDropTable
ban-truncate-cascade banTruncateCascade
changing-column-type changingColumnType
constraint-missing-not-valid constraintMissingNotValid
disallow-unique-constraint disallowUniqueConstraint
prefer-big-int preferBigInt
prefer-bigint-over-int preferBigintOverInt
prefer-bigint-over-smallint preferBigintOverSmallint
prefer-identity preferIdentity
prefer-robust-stmts preferRobustStmts
prefer-text-field preferTextField
prefer-timestamptz preferTimestamptz
renaming-column renamingColumn
renaming-table renamingTable
require-concurrent-index-creation requireConcurrentIndexCreation
require-concurrent-index-deletion requireConcurrentIndexDeletion
transaction-nesting transactionNesting

pgfence

pgfence Rule Name Rule Name
add-constraint-exclude avoidAddingExclusionConstraint
alter-enum-add-value avoidAlterEnumAddValue
attach-partition avoidAttachingPartition
create-trigger avoidCreateTrigger
delete-without-where banDeleteWithoutWhere
detach-partition requireConcurrentDetachPartition
drop-schema banDropSchema
drop-trigger banDropTrigger
enable-disable-trigger avoidEnableDisableTrigger
missing-idle-timeout requireIdleInTransactionTimeout
missing-statement-timeout requireStatementTimeout
not-valid-validate-same-tx requireSeparateConstraintValidation
refresh-matview-blocking requireConcurrentRefreshMatview
refresh-matview-concurrent concurrentRefreshMatviewLock
reindex-non-concurrent requireConcurrentReindex
truncate banTruncate
update-in-migration banUpdateWithoutWhere
vacuum-full banVacuumFull
wide-lock-window avoidWideLockWindow