Skip to content

Implement the Drizzle MySQL adapter #66

Description

@ian-pascoe

Part of #54.

Goal

Complete the MySQL dialect entry point and bind approved definitions to a host-owned common Drizzle MySQL database.

Change

  • Implement bindMysqlStore, DrizzleMysqlBindingError, Oracle MySQL version and engine checks, active transaction and InnoDB probes, Statement conversion, result normalization, Collection operations, candidate-key selection, stored-value readback, root mutation transactions, and structured conflict mapping.
  • Preserve the exact MySQL Drizzle result type and the approved literal or runtime transaction return types.
  • Compose Thread definitions through the existing generic createThreadStore seam.

Acceptance

  • All 28 MySQL-focused scenarios pass.
  • Base Store, SQL Statement, SQL Store, Transaction Store, combined SQL/Collection transaction, and plain plus transactional Core Runtime conformance pass.
  • Scheduled Job composition and a direct Drizzle Kit export smoke test pass.
  • Oracle MySQL 8.4+ is accepted; incompatible engines and unsafe key or table paths reject exactly as specified.
  • The adapter uses only public Drizzle APIs, creates no client, performs no DDL, and has no MySQL runtime Store tier or Thread binder.
  • Documentation, applicable changeset, focused Node.js and Bun checks, and pnpm run verify pass.

Source authority

Non-goals

No MariaDB or MySQL-compatible promise, native driver binder, host index creation, migration, preparation, streaming, batching, cancellation, or session-lock support.

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

    wayfinder:taskWayfinder prerequisite task ticket

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions