fix tests and revert change in behavior when primary_key_from_op != primary_key_from_db && index.is_empty()

This commit is contained in:
Louis Dureuil 2024-11-18 10:13:04 +01:00
parent 677d7293f5
commit c202f3dbe2
No known key found for this signature in database
2 changed files with 4 additions and 10 deletions

View File

@ -4601,7 +4601,7 @@ mod tests {
snapshot!(primary_key.is_none(), @"false"); snapshot!(primary_key.is_none(), @"false");
// The second batch should contains only one task that fails because it tries to update the primary key to `bork`. // The second batch should contains only one task that fails because it tries to update the primary key to `bork`.
handle.advance_one_failed_batch(); handle.advance_one_successful_batch();
snapshot!(snapshot_index_scheduler(&index_scheduler), name: "second_task_fails"); snapshot!(snapshot_index_scheduler(&index_scheduler), name: "second_task_fails");
// The third batch should succeed and only contains one task. // The third batch should succeed and only contains one task.

View File

@ -777,15 +777,9 @@ pub fn retrieve_or_guess_primary_key<'a>(
match primary_key_from_op { match primary_key_from_op {
// we did, and it is different from the DB one // we did, and it is different from the DB one
Some(primary_key_from_op) if primary_key_from_op != primary_key_from_db => { Some(primary_key_from_op) if primary_key_from_op != primary_key_from_db => {
// is the index empty? return Ok(Err(UserError::PrimaryKeyCannotBeChanged(
if index.number_of_documents(rtxn)? == 0 { primary_key_from_db.to_string(),
// change primary key )));
(primary_key_from_op, true)
} else {
return Ok(Err(UserError::PrimaryKeyCannotBeChanged(
primary_key_from_db.to_string(),
)));
}
} }
_ => (primary_key_from_db, false), _ => (primary_key_from_db, false),
} }