Skip to content

Implement DROP TRIGGER end-to-end#35

Open
krleonid wants to merge 4 commits intomainfrom
feature/drop-trigger
Open

Implement DROP TRIGGER end-to-end#35
krleonid wants to merge 4 commits intomainfrom
feature/drop-trigger

Conversation

@krleonid
Copy link
Copy Markdown
Owner

@krleonid krleonid commented Apr 5, 2026

Wire up the parser, binder, and executor for DROP TRIGGER so it actually removes triggers from the catalog instead of throwing "not yet supported".

  • Parser: transform PG_OBJECT_TRIGGER into ExtraDropTriggerInfo with the base table reference (supports unqualified, schema-qualified, and catalog-qualified table names).
  • Binder: resolve the table, stamp catalog/schema onto DropInfo, and register the catalog modification. IF EXISTS guards only the trigger, not the table (PostgreSQL-compatible).
  • Executor: look up the table, call DuckTableEntry::DropTrigger, and respect IF EXISTS semantics.
  • Tests: functional tests (including catalog-qualified tables), parse-error tests, and WAL replay test.

Made-with: Cursor

Wire up the parser, binder, and executor for DROP TRIGGER so it
actually removes triggers from the catalog instead of throwing
"not yet supported".

- Parser: transform PG_OBJECT_TRIGGER into ExtraDropTriggerInfo with
  the base table reference (supports unqualified, schema-qualified,
  and catalog-qualified table names).
- Binder: resolve the table, stamp catalog/schema onto DropInfo, and
  register the catalog modification. IF EXISTS guards only the
  trigger, not the table (PostgreSQL-compatible).
- Executor: look up the table, call DuckTableEntry::DropTrigger, and
  respect IF EXISTS semantics.
- Tests: functional tests (including catalog-qualified tables),
  parse-error tests, and WAL replay test.

Made-with: Cursor
@krleonid krleonid force-pushed the feature/drop-trigger branch from 8861e2d to 9e57c68 Compare April 5, 2026 19:55
krleonid added 3 commits April 6, 2026 08:56
- Add drop_trigger.test and drop_trigger_wal.test to skip lists in
  force_storage.json and verify_fetch_row.json (triggers require
  v2.0.0 storage, matching the existing create_trigger skip entries).
- Fail loudly in ReplayDropTrigger when the WAL entry has an empty
  table name instead of silently skipping the drop.

Made-with: Cursor
Triggers require v2.0.0 storage, matching the existing create_trigger
skip entries in these configs.

Made-with: Cursor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant