CoolFace
Modelpublic

AryaWu/sqlite

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
dataversion1.test88 linesDownload Raw Back to test
1# 2018-07-182#3# The author disclaims copyright to this source code.  In place of4# a legal notice, here is a blessing:5#6#    May you do good and not evil.7#    May you find forgiveness for yourself and forgive others.8#    May you share freely, never taking more than you give.9#10#***********************************************************************11#12# Test case for SQLITE_FCNTL_DATA_VERSION13#14 15set testdir [file dirname $argv0]16source $testdir/tester.tcl17 18# Construct a database and get its initial data version19sqlite3 db test.db20do_test dataversion1-100 {21  db eval {22    CREATE TABLE t1(x);23    INSERT INTO t1(x) VALUES(99);24    SELECT * FROM t1;25  }26} {99}27set dv1 [file_control_data_version db main]28 29# The data version does not change by ATTACH or by changes to30# other schemas within the same connection.31#32do_test dataversion1-101 {33  db eval {34    ATTACH ':memory:' AS aux1;35    CREATE TABLE aux1.t2(y);36    CREATE TEMP TABLE t3(z);37  }38  file_control_data_version db main39} $dv140 41# The data version does change when SQL modifies the table42do_test dataversion1-110 {43  db eval {44    UPDATE t1 SET x=x+1;45  }46  set dv2 [file_control_data_version db]47  expr {$::dv1==$dv2}48} {0}49 50# But the data version is constant if there are changes to other51# schemas52set dv1 [file_control_data_version db main]53do_test dataversion1-120 {54  db eval {55    UPDATE t2 SET y=y+1;56  }57  file_control_data_version db58} $dv159 60# Changes to the database via another connection are not detected61# until there is a read transaction.62#63sqlite3 db2 test.db64do_test dataversion1-130 {65  db2 eval {66    SELECT * FROM t167  }68} {100}69do_test dataversion1-131 {70  file_control_data_version db71} $dv172do_test dataversion1-132 {73  db2 eval {74    UPDATE t1 SET x=x+1;75  }76  set dv2 [file_control_data_version db]77  expr {$::dv1==$dv2}78} {1}79do_test dataversion1-133 {80  db eval {SELECT * FROM t1}81  set dv2 [file_control_data_version db]82  expr {$::dv1==$dv2}83} {0}84 85 86   87finish_test88