Skip to content

Fix MySQL database name handling #177

@ethan-readyset

Description

@ethan-readyset

Description

When we connect to ReadySet as configured with a MySQL upstream and we specify a database name, the following sequence of operations fails:

CREATE TABLE t1 (x int);
INSERT INTO t1 (x) VALUES (1);

With an error that reads

thread 'test_db_name' panicked at 'called `Result::unwrap()` on an `Err` value: Server(ServerError { code: 1105, message: "Error during RPC (ReadySetHandle::table): Could not find table 't1'", state: "HY000" })'

If we fully qualify the table name with the database name in the INSERT INTO statement (e.g. INSERT INTO database_name.table_name …), the statement succeeds. It seems that ReadySet is mishandling the database name when it is connected to a MySQL upstream.

Expected behavior

Connecting to ReadySet using a database name, creating a table, and inserting a row without qualifying the table name with the database name succeeds.

Actual behavior

Explained above

Steps to reproduce

A minimal failing test can be found here: https://rs-paste.tail422d.ts.net/?6cf501bf73ab6147#EQdRXjUy4vg8fcEtz6mBmR1nSNCuHMbcT3r2KRKKiXLm

This test should be placed in the readyset-mysql/tests/integration.rs file

ReadySet version

commit hash 211fc79d877b695149d49c29f9251daef1ce0e46

Upstream DB type and version

N/A

Instance Details

N/A

Logs

Relevant logs listed above

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingfirst-issueCreated by Linear-GitHub Sync

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions