SQLite

Check-in [9df0195780]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Add extra test cases for deferred page allocation.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | begin-concurrent
Files: files | file ages | folders
SHA3-256: 9df0195780306a26709e87daabf9d426856aebf2082060b98818f2d48c7472ec
User & Date: dan 2017-05-26 16:51:15.019
Context
2017-05-26
18:18
Adjust the bitvec related sqlite3_log messages added by [9527089b]. (check-in: a7e0e7a483 user: dan tags: begin-concurrent)
16:51
Add extra test cases for deferred page allocation. (check-in: 9df0195780 user: dan tags: begin-concurrent)
16:15
Fix a problem with deferred page allocation in transactions that revert page allocations by savepoint rollbacks. (check-in: a4a3bbe646 user: dan tags: begin-concurrent)
Changes
Side-by-Side Diff Show Whitespace Changes Patch
Changes to test/concurrent4.test.
38
39
40
41
42
43
44









































45
46
47
48
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89







+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+




    DELETE FROM t1 WHERE rowid = 1000;
}

do_execsql_test 1.2 { ROLLBACK TO abc }
do_execsql_test 1.3 { COMMIT }
do_execsql_test 1.4 { PRAGMA integrity_check } {ok}

do_multiclient_test tn {
  do_test 2.$tn.1 {
    sql1 {
      PRAGMA journal_mode = wal;
      CREATE TABLE t1(a, b);
      WITH s(i) AS (SELECT 1 UNION ALL SELECT i+1 FROM s WHERE i<100)
        INSERT INTO t1 SELECT randomblob(400), randomblob(400) FROM s;

      CREATE TABLE t2(a, b);
      WITH s(i) AS (SELECT 1 UNION ALL SELECT i+1 FROM s WHERE i<100)
        INSERT INTO t2 SELECT randomblob(400), randomblob(400) FROM s;
    }

    sql1 {
      BEGIN CONCURRENT;
        INSERT INTO t1 VALUES(randomblob(3000), randomblob(3000));
    }
  } {}

  do_test 2.$tn.2 {
    sql2 {
      WITH s(i) AS (SELECT 1 UNION ALL SELECT i+1 FROM s WHERE i<10)
        INSERT INTO t2 SELECT randomblob(400), randomblob(400) FROM s;
    }
    sql2 {
      DELETE FROM t2 WHERE rowid<10;
    }
  } {}

  do_test 2.$tn.3 {
    sql1 {
      COMMIT;
      PRAGMA integrity_check;
    }
  } {ok}
  do_test 2.$tn.4 {
    sql2 {
      PRAGMA integrity_check;
    }
  } {ok}
}


finish_test