diff --git a/core/rs/core/src/changes_vtab_write.rs b/core/rs/core/src/changes_vtab_write.rs index a543f78ab..bb95b2fab 100644 --- a/core/rs/core/src/changes_vtab_write.rs +++ b/core/rs/core/src/changes_vtab_write.rs @@ -714,8 +714,8 @@ unsafe fn merge_insert( if res.is_ok() && !insert_site_id.is_empty() { if let Err(rc) = insert_db_version((*tab).pExtData, insert_site_id, insert_db_vrsn) { let err = CString::new(format!( - "Unable to insert db version {} for site id {:?}", - insert_db_vrsn, insert_site_id + "Unable to insert db version {} for site id {:?}: {:?}", + insert_db_vrsn, insert_site_id, rc ))?; *errmsg = err.into_raw(); return Err(rc); diff --git a/core/rs/core/src/db_version.rs b/core/rs/core/src/db_version.rs index a888a676c..72e86c3bd 100644 --- a/core/rs/core/src/db_version.rs +++ b/core/rs/core/src/db_version.rs @@ -251,22 +251,17 @@ pub fn insert_db_version( reset_cached_stmt((*ext_data).pSetDbVersionStmt)?; return Err(rc); } - match (*ext_data).pSetDbVersionStmt.step() { - Ok(ResultCode::ROW) => { - last_db_versions.insert( - insert_site_id.to_vec(), - (*ext_data).pSetDbVersionStmt.column_int64(0), - ); - } - Ok(_) => {} - Err(rc) => { - reset_cached_stmt((*ext_data).pSetDbVersionStmt)?; - return Err(rc); - } - } + + let res = (*ext_data).pSetDbVersionStmt.step(); reset_cached_stmt((*ext_data).pSetDbVersionStmt)?; + if let Err(rc) = res { + return Err(rc); + } + + // this is still the biggest db version we've seen in this transaction. + last_db_versions.insert(insert_site_id.to_vec(), insert_db_vrsn); + Ok(()) } - Ok(()) } pub unsafe fn get_or_set_site_ordinal(