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.
The
mysqlengine (#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::nameand per-typecompatiblepredicates rather than against a live server, and that found two real defects before merge (unsigned integers carry aUNSIGNEDsuffix in the reported type name;DECIMALis excluded from both thef64andStringdecoders). So the risk that remains is not the mapping but the shape of three statements:information_schema.columnsquery infetch_schema(column names differ from Postgres:column_type,column_comment)SET SESSION TRANSACTION READ ONLY, and the two timeout spellings —max_execution_timeon MySQL,max_statement_timeon MariaDB. The MariaDB branch is reached only when the MySQL form fails, so it has never executedWorth 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_schemaanswers the same way.Same standing as #240, #241 and #242 for the HTTP engines: it needs someone with the thing running, not more code.