mirror of
https://github.com/tursodatabase/limbo.git
synced 2025-08-04 18:18:03 +00:00
72 lines
1.8 KiB
Tcl
Executable file
72 lines
1.8 KiB
Tcl
Executable file
#!/usr/bin/env tclsh
|
|
set testdir [file dirname $argv0]
|
|
source $testdir/tester.tcl
|
|
|
|
|
|
do_execsql_test_on_specific_db {:memory:} simple-rollback {
|
|
create table t (x);
|
|
insert into t values (1);
|
|
begin;
|
|
insert into t values (2);
|
|
rollback;
|
|
select * from t;
|
|
} {1}
|
|
|
|
do_execsql_test_on_specific_db {:memory:} simple-rollback-2 {
|
|
create table t (x);
|
|
begin;
|
|
insert into t values (1);
|
|
insert into t values (2);
|
|
rollback;
|
|
select * from t;
|
|
} {}
|
|
|
|
|
|
do_execsql_test_on_specific_db {:memory:} rollback-after-update {
|
|
create table t (x);
|
|
insert into t values (1);
|
|
insert into t values (2);
|
|
begin;
|
|
update t set x = x + 10;
|
|
rollback;
|
|
select * from t;
|
|
} {1 2}
|
|
|
|
do_execsql_test_on_specific_db {:memory:} rollback-after-delete {
|
|
create table t (x);
|
|
insert into t values (1);
|
|
insert into t values (2);
|
|
insert into t values (3);
|
|
begin;
|
|
delete from t where x = 2;
|
|
rollback;
|
|
select * from t order by x;
|
|
} {1 2 3}
|
|
|
|
do_execsql_test_on_specific_db {:memory:} rollback-mixed-operations {
|
|
create table t (x);
|
|
insert into t values (1);
|
|
insert into t values (2);
|
|
begin;
|
|
insert into t values (3);
|
|
update t set x = x + 10 where x = 1;
|
|
delete from t where x = 2;
|
|
rollback;
|
|
select * from t order by x;
|
|
} {1 2}
|
|
|
|
# The point of this test was to test we drop dirty pages after rollback by inserting into another table so that
|
|
# pages used are different.
|
|
do_execsql_test_on_specific_db {:memory:} insert-after-rollback {
|
|
create table t (x);
|
|
create table t2 (x);
|
|
insert into t values (1);
|
|
insert into t values (2);
|
|
begin;
|
|
insert into t values (3);
|
|
update t set x = x + 10 where x = 1;
|
|
delete from t where x = 2;
|
|
rollback;
|
|
insert into t2 values (1);
|
|
select * from t2 order by x;
|
|
} {1}
|