Re: ALTER TABLE atomicity with sub-commands

From: Erik Wienhold <ewie(at)ewie(dot)name>
To: t(at)gobet(dot)ar, pgsql-docs(at)lists(dot)postgresql(dot)org
Subject: Re: ALTER TABLE atomicity with sub-commands
Date: 2024-04-02 21:11:56
Message-ID: ylkb3aooldasy5qil6rgq4hqmdpitrw57jtgyybj7yngdmcrwu@s3knmnbzbldc
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs

On 2024-04-02 16:40 +0200, PG Doc comments form wrote:
> The following documentation comment has been logged on the website:
>
> Page: https://www.postgresql.org/docs/15/sql-altertable.html
> Description:
>
> It is not entirely clear (to me) that ALTER TABLE statements with
> comma-separated sub-commands are atomic. Despite of saying "perform X
> actions in one operation" in one of the examples, it is not explicitly said
> that the operation will be rolled back if one of the sub-commands fails.
>
> From the examples, we have:
>
> ALTER TABLE distributors
> ALTER COLUMN address TYPE varchar(80),
> ALTER COLUMN name TYPE varchar(100);
>
> Will the `address` column type change rollback if the `ALTER COLUMN name
> TYPE varchar(100)` subcommand fails?
>
> Currently reading the docs for version 15.

Yes, ALTER TABLE, like all statements, is one atomic change.

From BEGIN[1]:

By default (without BEGIN), PostgreSQL executes transactions in
“autocommit” mode, that is, each statement is executed in its own
transaction and a commit is implicitly performed at the end of the
statement (if execution was successful, otherwise a rollback is
done).

[1] https://www.postgresql.org/docs/15/sql-begin.html

--
Erik

In response to

Browse pgsql-docs by date

  From Date Subject
Next Message Rajan Pandey 2024-04-03 10:57:58 Postgres_FDW doc doesn't specify TYPE support in Remote Execution Options
Previous Message PG Doc comments form 2024-04-02 14:40:24 ALTER TABLE atomicity with sub-commands