Skip to content

Problems using inserter with OnDuplicate.Ignore. #8

@TheFlyingFiddle

Description

@TheFlyingFiddle

When I run the following code:

auto client = new MySQLClient(...);
auto con = clieck.lockConnection();

con.use(my_db);
auto insert = inserter(con, OnDuplicate.Ignore, "users", "googleID");
foreach(i; 30 .. 40) {
insert.row(i);
}
insert.flush;

I get the following error on the flush call:
core.exception.AssertError@.dub\packages\mysql-lited-0.3.15\mysql-lited\src\mysql\packet.d(53): Assertion failure

0x0059A99B in _d_assert
0x0048E071 in void mysql.packet.InputPacket.skip(uint) at dub\packages\mysql-lited-0.3.15\mysql-lited\src\mysql\packet.d(54)
0x00477FD9 in D5mysql10connection84__T10ConnectionTS5mysql6socket10VibeSocketVE5mysql10connection17ConnectionA0698ACEAD000617DF0366730C40E1B2 at dub\packages\mysql-lited-0.3.15\mysql-lited\src\mysql\connection.d(691)


The table looks like this:
create table users ( id int auto_increment,
googleID bigint unsigned unique,
primary key(id))

When I use OnDuplicate.Error everything works fine. (unless i have duplicates ofc)
Am I using the inserter wrong or is there something else that is problematic?

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