mirror of
https://github.com/aljazceru/turso.git
synced 2025-12-18 17:14:20 +01:00
add test that demonstrates issue 3083 can be closed
This commit is contained in:
@@ -355,6 +355,47 @@ fn test_mvcc_concurrent_insert_basic() {
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_mvcc_update_same_row_twice() {
|
||||
let tmp_db = TempDatabase::new_with_opts(
|
||||
"test_mvcc_update_same_row_twice.db",
|
||||
turso_core::DatabaseOpts::new().with_mvcc(true),
|
||||
);
|
||||
let conn1 = tmp_db.connect_limbo();
|
||||
|
||||
conn1.execute("CREATE TABLE test (id INTEGER PRIMARY KEY, value TEXT)")
|
||||
.unwrap();
|
||||
|
||||
conn1.execute("INSERT INTO test (id, value) VALUES (1, 'first')")
|
||||
.unwrap();
|
||||
|
||||
conn1.execute("UPDATE test SET value = 'second' WHERE id = 1")
|
||||
.unwrap();
|
||||
|
||||
let stmt = conn1
|
||||
.query("SELECT value FROM test WHERE id = 1")
|
||||
.unwrap()
|
||||
.unwrap();
|
||||
let row = helper_read_single_row(stmt);
|
||||
let Value::Text(value) = &row[0] else {
|
||||
panic!("expected text value");
|
||||
};
|
||||
assert_eq!(value.as_str(), "second");
|
||||
|
||||
conn1.execute("UPDATE test SET value = 'third' WHERE id = 1")
|
||||
.unwrap();
|
||||
|
||||
let stmt = conn1
|
||||
.query("SELECT value FROM test WHERE id = 1")
|
||||
.unwrap()
|
||||
.unwrap();
|
||||
let row = helper_read_single_row(stmt);
|
||||
let Value::Text(value) = &row[0] else {
|
||||
panic!("expected text value");
|
||||
};
|
||||
assert_eq!(value.as_str(), "third");
|
||||
}
|
||||
|
||||
fn helper_read_all_rows(mut stmt: turso_core::Statement) -> Vec<Vec<Value>> {
|
||||
let mut ret = Vec::new();
|
||||
loop {
|
||||
|
||||
Reference in New Issue
Block a user