Skip to content

[Parser] Support ALTER TABLE column operations #149

@ajitpratap0

Description

@ajitpratap0

Summary

The parser does not fully support ALTER TABLE statements with column operations.

Current Behavior

ALTER TABLE users ADD COLUMN email VARCHAR(255)

Error: expected ADD, DROP, RENAME, or ALTER, got IDENT

Expected Behavior

Full support for ALTER TABLE column operations.

Operations to Support

-- ADD COLUMN
ALTER TABLE users ADD COLUMN email VARCHAR(255);
ALTER TABLE users ADD COLUMN created_at TIMESTAMP DEFAULT NOW();

-- DROP COLUMN
ALTER TABLE users DROP COLUMN temp_field;
ALTER TABLE users DROP COLUMN IF EXISTS old_field;

-- RENAME COLUMN
ALTER TABLE users RENAME COLUMN old_name TO new_name;

-- ALTER COLUMN (modify type)
ALTER TABLE users ALTER COLUMN age TYPE BIGINT;
ALTER TABLE users ALTER COLUMN name SET NOT NULL;
ALTER TABLE users ALTER COLUMN status SET DEFAULT 'active';
ALTER TABLE users ALTER COLUMN email DROP NOT NULL;

-- ADD CONSTRAINT
ALTER TABLE users ADD CONSTRAINT pk_users PRIMARY KEY (id);
ALTER TABLE orders ADD CONSTRAINT fk_user FOREIGN KEY (user_id) REFERENCES users(id);

-- DROP CONSTRAINT
ALTER TABLE users DROP CONSTRAINT constraint_name;

Priority

🟡 Medium - Important for DDL analysis and migration tools.

Impact

  • Battle test: 2 test failures
  • Important for schema evolution tracking

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingparser

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions