Skip to content

The MySQL engine needs a real MySQL (MariaDB is covered) #316

Description

@WaylandYang

The mysql engine (#303, PR #315) has never talked to a real server. The machine it was written on runs a Docker daemon whose internal proxy cannot reach the registry, so no MySQL image could be started there.

The type table — the part that fails silently, by turning a column into nulls — was checked against the driver's own ColumnType::name and per-type compatible predicates rather than against a live server, and that found two real defects before merge (unsigned integers carry a UNSIGNED suffix in the reported type name; DECIMAL is excluded from both the f64 and String decoders). So the risk that remains is not the mapping but the shape of three statements:

  • the information_schema.columns query in fetch_schema (column names differ from Postgres: column_type, column_comment)
  • SET SESSION TRANSACTION READ ONLY, and the two timeout spellings — max_execution_time on MySQL, max_statement_time on MariaDB. The MariaDB branch is reached only when the MySQL form fails, so it has never executed
  • a real round trip: mount a database, sync the schema, ask a question in Chat, and compare the answer against the same query run directly

Worth covering MySQL and MariaDB separately, since the timeout branch is the one difference between them that this engine cares about. TiDB, OceanBase, Doris or StarRocks would each be a bonus — they speak the same protocol, but nobody has confirmed that their information_schema answers the same way.

Same standing as #240, #241 and #242 for the HTTP engines: it needs someone with the thing running, not more code.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions