Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Not a Bug
-
2.2.6
-
None
Description
When I issue a batch REPLACE INTO statement (i.e. with PreparedStatement.addBatch() / executeBatch()) the very first set of parameters is ignored. This happens regardless of whether it would result in inserting or updating.
E.g. if I prepare `replace into test (id, active) values (?, ?)` with parameter sets (1, true), (2, true) and (3, true), the first one (1, true) is ignored:
- If there is a row with id=1, its `active` column is not updated;
- If there is no such row, it is not inserted;
- For all subsequent parameter sets it works as expected;
- It is really about the first parameter set, not e.g. the one with lowest `id`; if I reorder them, the one becoming first after reordering is ignored.
Note that other batch commands (INSERT INTO, UPDATE etc.) or REPLACE INTO executed as non-batch statement work as expected.
Attachments
Issue Links
- relates to
-
MDEV-17036 BULK with replace doesn't take the first parameter in account
-
- Closed
-
reproduced with code :
Statement stmt = sharedConnection.createStatement();
preparedStatement.addBatch();
preparedStatement.addBatch();
preparedStatement.addBatch();
preparedStatement.addBatch();
preparedStatement.executeBatch();
}
}
result is
1 false !!!!!
2 true
3 true
4 true
Connector send the expected data to server, so i've created issue
MDEV-17036server side