Thread: SEQUENCE NAME syntax not documented for ALTER TABLE
The documentation for ALTER TABLE [1] doesn't make it clear that the following is allowed:
ALTER TABLE tbl ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY ( SEQUENCE NAME my_name );
It only references the sequence options allowed in CREATE SEQUENCE or ALTER SEQUENCE, unlike the CREATE TABLE [2] documentation, which does specifically state [3]:
> The available options include those shown for CREATE SEQUENCE,
> plus
SEQUENCE NAME name
, LOGGED
, and UNLOGGED
With best,
Rene Saarsoo
Rene Saarsoo <nene@triin.net> writes: > The documentation for ALTER TABLE [1] doesn't make it clear that the > following is allowed: > ... > It only references the sequence options allowed in CREATE SEQUENCE or ALTER > SEQUENCE, unlike the CREATE TABLE [2] documentation, which does > specifically state [3]: Huh? I see <varlistentry id="sql-altertable-desc-generated-identity"> <term><literal>ADD GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY</literal></term> <term><literal>SET GENERATED { ALWAYS | BY DEFAULT }</literal></term> <term><literal>DROP IDENTITY [ IF EXISTS ]</literal></term> <listitem> <para> These forms change whether a column is an identity column or change the generation attribute of an existing identity column. See <link linkend="sql-createtable"><command>CREATE TABLE</command></link> for details. Where do you see a pointer to CREATE SEQUENCE on that page? regards, tom lane
On Sun, 23 Mar 2025 at 17:31, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Where do you see a pointer to CREATE SEQUENCE on that page?
Sorry, my mistake. The page only points to ALTER SEQUENCE.
Now I also see that separate section about ADD GENERATED etc,
which I completely missed earlier. I was searching for a definition of
sequence_options
which is nowhere to be found on that page.
So I searched for the next best thing sequence_option (in singular)
and found the SET sequence_option section. I expected the definition
of sequence_options to just be the plural of sequence_option.
But confusingly it's not.
I personally would really prefer if this information was part of the main
syntax diagram, not somewhere deep inside the text. But I might be
an odd user of the documentation as I'm trying to write a parser for
PostgreSQL.
Regards,
Rene Saarsoo