Skip to content

[YSQL] Feature support - ALTER TABLE #1124

Open
0 of 1 issue completed
Open
0 of 1 issue completed
@nocaway

Description

Jira Link: DB-1178
This is a master issue that keeps track of ALTER TABLE variants.
The checkmark means that the statement is already supported.

Add / remove / rename columns, constraints

Status Feature Comments
ALTER TABLE name ADD [COLUMN] [IF NOT EXISTS] colname
⬜️ ALTER TABLE name ADD [COLUMN] [IF NOT EXISTS] colname UNIQUE #6985
⬜️ ALTER TABLE name ADD [COLUMN] [IF NOT EXISTS] colname integer GENERATED ALWAYS AS IDENTITY [PRIMARY KEY]
ALTER TABLE name DROP [COLUMN] [IF NOT EXISTS] non_primary_column [RESTRICT | CASCADE]
⬜️ ALTER TABLE name DROP primary_column
ALTER TABLE name RENAME TO new_name
ALTER TABLE name RENAME COLUMN
ALTER TABLE name RENAME CONSTRAINT #3943
ALTER TABLE name ADD PRIMARY KEY #1104 Not an online operation!
ALTER TABLE name ADD FOREIGN KEY
ALTER TABLE name ADD UNIQUE constraint
ALTER TABLE name ADD CHECK constraint
⬜️ ALTER TABLE name ADD EXCLUDE constraints #3944
⬜️ ALTER TABLE name ADD DEFERRABLE / INITIALLY DEFERRED / INITIALLY IMMEDIATE constraints #1709
ALTER TABLE name DROP CONSTRAINT
ALTER TABLE name DROP CONSTRAINT primary_constraint #8735 Not an online operation!
⬜️ ALTER TABLE name ALTER CONSTRAINT #3945
⬜️ ALTER TABLE name VALIDATE CONSTRAINT #3946
⬜️ Make ALTER table PRIMARY KEY online operations #13274

Alter columns

Status Feature Comments
ALTER TABLE name ALTER [COLUMN] colname SET DEFAULT
ALTER TABLE name ALTER [COLUMN] colname DROP DEFAULT
ALTER TABLE name ALTER [COLUMN] colname SET NOT NULL
ALTER TABLE name ALTER [COLUMN] colname DROP NOT NULL
ALTER TABLE name ALTER [COLUMN] colname ADD GENERATED AS IDENTITY
ALTER TABLE name ALTER [COLUMN] colname SET GENERATED
ALTER TABLE name ALTER [COLUMN] colname SET sequence_option
ALTER TABLE name ALTER [COLUMN] colname RESTART sequence
ALTER TABLE name ALTER [COLUMN] colname DROP IDENTITY
ALTER TABLE name ALTER [COLUMN] colname [ SET DATA ] TYPE that does not require on-disk changes #4424
ALTER TABLE name ALTER [COLUMN] colname [ SET DATA ] TYPE that requires on-disk changes #1013
ALTER TABLE name ALTER [COLUMN] colname SET STATISTICS
⬜️ ALTER TABLE name ALTER [COLUMN] colname SET STORAGE
⬜️ ALTER TABLE name ALTER [COLUMN] colname SET ( attribute = value )
⬜️ ALTER TABLE name ALTER [COLUMN] colname RESET ( attribute )

Triggers, partitions and tablespaces

Status Feature Comments
ALTER TABLE name ENABLE TRIGGER (name ALL
ALTER TABLE name ENABLE ALWAYS TRIGGER
ALTER TABLE name ENABLE REPLICA TRIGGER
ALTER TABLE name DISABLE TRIGGER (name | ALL | USER)
ALTER TABLE name ATTACH PARTITION
ALTER TABLE name DETACH PARTITION
⬜️ ALTER TABLE ALL IN TABLESPACE
ALTER TABLE name SET TABLESPACE

Ownership and row level security

Status Feature Comments
ALTER TABLE name OWNER TO
ALTER TABLE name ENABLE ROW LEVEL SECURITY
ALTER TABLE name DISABLE ROW LEVEL SECURITY
ALTER TABLE name FORCE ROW LEVEL SECURITY
ALTER TABLE name NO FORCE ROW LEVEL SECURITY

Misc: schema, rules, IODs, table inheritance, clustering etc

Status Feature Comments
⬜️ ALTER TABLE name SET SCHEMA #3947
⬜️ ALTER TABLE name ENABLE RULE
⬜️ ALTER TABLE name DISABLE RULE
ALTER TABLE name SET WITHOUT OIDS
⬜️ ALTER TABLE name SET WITH OIDS
⬜️ ALTER TABLE name INHERITS
⬜️ ALTER TABLE name NO INHERIT
⬜️ ALTER TABLE name CLUSTER ON
⬜️ ALTER TABLE name SET WITHOUT CLUSTER
⬜️ ALTER TABLE name OF type_name
⬜️ ALTER TABLE name NOT OF
⬜️ ALTER TABLE name SET (storage_option = value)
⬜️ ALTER TABLE name RESET (storage_option)
⬜️ ALTER TABLE name SET LOGGED | UNLOGGED
⬜️ ALTER TABLE name REPLICA IDENTITY

Sub-issues

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/ysqlYugabyte SQL (YSQL)kind/enhancementThis is an enhancement of an existing featurepriority/mediumMedium priority issueroadmap-tracking-issueThis issue tracks a major roadmap item, and usually appears in the roadmap list.

    Type

    No type

    Projects

    • Status

      No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions