Eugene 🔒 lint report of examples/E2/bad/1.sql

This is a human readable SQL script safety report generated by eugene. Keep in mind that lints can be ignored by adding a -- eugene: ignore E123 comment to the SQL statement or by passing --ignore E123 on the command line.

The migration script passed all the checks ✅

Statement number 1

SQL

-- 1.sql
create table authors(
    id integer generated always as identity
        primary key,
    name text
)

No checks matched for this statement. ✅

Eugene 🔒 lint report of examples/E2/bad/2.sql

This is a human readable SQL script safety report generated by eugene. Keep in mind that lints can be ignored by adding a -- eugene: ignore E123 comment to the SQL statement or by passing --ignore E123 on the command line.

The migration script did not pass all the checks ❌

Statement number 1

SQL

-- 2.sql
set local lock_timeout = '2s'

No checks matched for this statement. ✅

Statement number 2

SQL

alter table authors
    alter column name set not null

Lints

Validating table with a new NOT NULL column

ID: E2

A column was changed from NULL to NOT NULL. This blocks all table access until all rows are validated. A safer way is: Add a CHECK constraint as NOT VALID, validate it later, then make the column NOT NULL.

Statement takes AccessExclusiveLock on public.authors by setting name to NOT NULL blocking reads until all rows are validated.