--- /dev/null
+# 2014 June 17
+#
+# The author disclaims copyright to this source code. In place of
+# a legal notice, here is a blessing:
+#
+# May you do good and not evil.
+# May you find forgiveness for yourself and forgive others.
+# May you share freely, never taking more than you give.
+#
+#*************************************************************************
+# This file implements regression tests for SQLite library. The
+# focus of this script is testing the FTS5 module.
+#
+
+source [file join [file dirname [info script]] fts5_common.tcl]
+set testprefix fts5aa
+
+# If SQLITE_ENABLE_FTS3 is defined, omit this file.
+ifcapable !fts5 {
+ finish_test
+ return
+}
+
++if 1 {
++
+do_execsql_test 1.0 {
+ CREATE VIRTUAL TABLE t1 USING fts5(a, b, c);
+ SELECT name, sql FROM sqlite_master;
+} {
+ t1 {CREATE VIRTUAL TABLE t1 USING fts5(a, b, c)}
+ t1_data {CREATE TABLE 't1_data'(id INTEGER PRIMARY KEY, block BLOB)}
+ t1_content {CREATE TABLE 't1_content'(id INTEGER PRIMARY KEY, c0, c1, c2)}
+ t1_docsize {CREATE TABLE 't1_docsize'(id INTEGER PRIMARY KEY, sz BLOB)}
+ t1_config {CREATE TABLE 't1_config'(k PRIMARY KEY, v) WITHOUT ROWID}
+}
+
+do_execsql_test 1.1 {
+ DROP TABLE t1;
+ SELECT name, sql FROM sqlite_master;
+} {
+}
+
+#-------------------------------------------------------------------------
+#
+reset_db
+do_execsql_test 2.0 {
+ CREATE VIRTUAL TABLE t1 USING fts5(x,y);
+}
+do_execsql_test 2.1 {
+ INSERT INTO t1 VALUES('a b c', 'd e f');
+}
+do_execsql_test 2.2 {
+ SELECT fts5_decode(id, block) FROM t1_data WHERE id==10
+} {
+ {{structure idx=0} {lvl=0 nMerge=0 {id=27723 h=1 leaves=1..1}}}
+}
+do_execsql_test 2.3 {
+ INSERT INTO t1(t1) VALUES('integrity-check');
+}
+
+#-------------------------------------------------------------------------
+#
+reset_db
+do_execsql_test 3.0 {
+ CREATE VIRTUAL TABLE t1 USING fts5(x,y);
+}
+foreach {i x y} {
+ 1 {g f d b f} {h h e i a}
+ 2 {f i g j e} {i j c f f}
+ 3 {e e i f a} {e h f d f}
+ 4 {h j f j i} {h a c f j}
+ 5 {d b j c g} {f e i b e}
+ 6 {a j a e e} {j d f d e}
+ 7 {g i j c h} {j d h c a}
+ 8 {j j i d d} {e e d f b}
+ 9 {c j j d c} {h j i f g}
+ 10 {b f h i a} {c f b b j}
+} {
+ do_execsql_test 3.$i.1 { INSERT INTO t1 VALUES($x, $y) }
+ do_execsql_test 3.$i.2 { INSERT INTO t1(t1) VALUES('integrity-check') }
+ if {[set_test_counter errors]} break
+}
+
+#-------------------------------------------------------------------------
+#
+reset_db
+do_execsql_test 4.0 {
+ CREATE VIRTUAL TABLE t1 USING fts5(x,y);
+ INSERT INTO t1(t1, rank) VALUES('pgsz', 32);
+}
+foreach {i x y} {
+ 1 {g f d b f} {h h e i a}
+ 2 {f i g j e} {i j c f f}
+ 3 {e e i f a} {e h f d f}
+ 4 {h j f j i} {h a c f j}
+ 5 {d b j c g} {f e i b e}
+ 6 {a j a e e} {j d f d e}
+ 7 {g i j c h} {j d h c a}
+ 8 {j j i d d} {e e d f b}
+ 9 {c j j d c} {h j i f g}
+ 10 {b f h i a} {c f b b j}
+} {
+ do_execsql_test 4.$i.1 { INSERT INTO t1 VALUES($x, $y) }
+ do_execsql_test 4.$i.2 { INSERT INTO t1(t1) VALUES('integrity-check') }
+ if {[set_test_counter errors]} break
+}
+
+#-------------------------------------------------------------------------
+#
+reset_db
+do_execsql_test 5.0 {
+ CREATE VIRTUAL TABLE t1 USING fts5(x,y);
+ INSERT INTO t1(t1, rank) VALUES('pgsz', 32);
+}
+foreach {i x y} {
+ 1 {dd abc abc abc abcde} {aaa dd ddd ddd aab}
+ 2 {dd aab d aaa b} {abcde c aaa aaa aaa}
+ 3 {abcde dd b b dd} {abc abc d abc ddddd}
+ 4 {aaa abcde dddd dddd abcde} {abc b b abcde abc}
+ 5 {aab dddd d dddd c} {ddd abcde dddd abcde c}
+ 6 {ddd dd b aab abcde} {d ddddd dddd c abc}
+ 7 {d ddddd ddd c abcde} {c aab d abcde ddd}
+ 8 {abcde aaa aab c c} {ddd c dddd b aaa}
+ 9 {abcde aab ddddd c aab} {dddd dddd b c dd}
+ 10 {ddd abcde dddd dd c} {dddd c c d abcde}
+} {
+ do_execsql_test 5.$i.1 { INSERT INTO t1 VALUES($x, $y) }
+ do_execsql_test 5.$i.2 { INSERT INTO t1(t1) VALUES('integrity-check') }
+ if {[set_test_counter errors]} break
+}
+
+#-------------------------------------------------------------------------
+#
+breakpoint
+reset_db
+do_execsql_test 6.0 {
+ CREATE VIRTUAL TABLE t1 USING fts5(x,y);
+ INSERT INTO t1(t1, rank) VALUES('pgsz', 32);
+}
+
+do_execsql_test 6.1 {
+ INSERT INTO t1(rowid, x, y) VALUES(22, 'a b c', 'c b a');
+ REPLACE INTO t1(rowid, x, y) VALUES(22, 'd e f', 'f e d');
+}
+
+do_execsql_test 6.2 {
+ INSERT INTO t1(t1) VALUES('integrity-check')
+}
+
+#-------------------------------------------------------------------------
+#
+reset_db
+expr srand(0)
+do_execsql_test 7.0 {
+ CREATE VIRTUAL TABLE t1 USING fts5(x,y,z);
+ INSERT INTO t1(t1, rank) VALUES('pgsz', 32);
+}
+
+proc doc {} {
+ set v [list aaa aab abc abcde b c d dd ddd dddd ddddd]
+ set ret [list]
+ for {set j 0} {$j < 20} {incr j} {
+ lappend ret [lindex $v [expr int(rand()*[llength $v])]]
+ }
+ return $ret
+}
+
+proc dump_structure {} {
+ db eval {SELECT fts5_decode(id, block) AS t FROM t1_data WHERE id=10} {
+ foreach lvl [lrange $t 1 end] {
+ set seg [string repeat . [expr [llength $lvl]-2]]
+ puts "[lrange $lvl 0 1] $seg"
+ }
+ }
+}
+
+for {set i 1} {$i <= 10} {incr i} {
+ do_test 7.$i {
+ for {set j 0} {$j < 10} {incr j} {
+ set x [doc]
+ set y [doc]
+ set z [doc]
+ set rowid [expr int(rand() * 100)]
+ execsql { REPLACE INTO t1(rowid,x,y,z) VALUES($rowid, $x, $y, $z) }
+ }
+ execsql { INSERT INTO t1(t1) VALUES('integrity-check'); }
+ } {}
+}
+
+#-------------------------------------------------------------------------
+#
+reset_db
+do_execsql_test 8.0 {
+ CREATE VIRTUAL TABLE t1 USING fts5(x, prefix="1,2,3");
+ INSERT INTO t1(t1, rank) VALUES('pgsz', 32);
+}
+
+do_execsql_test 8.1 {
+ INSERT INTO t1 VALUES('the quick brown fox');
+ INSERT INTO t1(t1) VALUES('integrity-check');
+}
+
+
+#-------------------------------------------------------------------------
+#
+reset_db
+
+expr srand(0)
+
+do_execsql_test 9.0 {
+ CREATE VIRTUAL TABLE t1 USING fts5(x,y,z, prefix="1,2,3");
+ INSERT INTO t1(t1, rank) VALUES('pgsz', 32);
+}
+
+proc doc {} {
+ set v [list aaa aab abc abcde b c d dd ddd dddd ddddd]
+ set ret [list]
+ for {set j 0} {$j < 20} {incr j} {
+ lappend ret [lindex $v [expr int(rand()*[llength $v])]]
+ }
+ return $ret
+}
+
+proc dump_structure {} {
+ db eval {SELECT fts5_decode(id, block) AS t FROM t1_data WHERE id=10} {
+ foreach lvl [lrange $t 1 end] {
+ set seg [string repeat . [expr [llength $lvl]-2]]
+ puts "[lrange $lvl 0 1] $seg"
+ }
+ }
+}
+
+for {set i 1} {$i <= 10} {incr i} {
+ do_test 9.$i {
+ for {set j 0} {$j < 100} {incr j} {
+ set x [doc]
+ set y [doc]
+ set z [doc]
+ set rowid [expr int(rand() * 100)]
+ execsql { REPLACE INTO t1(rowid,x,y,z) VALUES($rowid, $x, $y, $z) }
+ }
+ execsql { INSERT INTO t1(t1) VALUES('integrity-check'); }
+ } {}
+ if {[set_test_counter errors]} break
+}
+
+#-------------------------------------------------------------------------
+#
+reset_db
+do_execsql_test 10.0 {
+ CREATE VIRTUAL TABLE t1 USING fts5(x,y);
+}
+set d10 {
+ 1 {g f d b f} {h h e i a}
+ 2 {f i g j e} {i j c f f}
+ 3 {e e i f a} {e h f d f}
+ 4 {h j f j i} {h a c f j}
+ 5 {d b j c g} {f e i b e}
+ 6 {a j a e e} {j d f d e}
+ 7 {g i j c h} {j d h c a}
+ 8 {j j i d d} {e e d f b}
+ 9 {c j j d c} {h j i f g}
+ 10 {b f h i a} {c f b b j}
+}
+foreach {rowid x y} $d10 {
+ do_execsql_test 10.1.$rowid.1 { INSERT INTO t1 VALUES($x, $y) }
+ do_execsql_test 10.1.$rowid.2 { INSERT INTO t1(t1) VALUES('integrity-check') }
+}
+foreach rowid {5 9 8 1 2 4 10 7 3 5 6} {
+ do_execsql_test 10.2.$rowid.1 { DELETE FROM t1 WHERE rowid = $rowid }
+ do_execsql_test 10.2.$rowid.2 { INSERT INTO t1(t1) VALUES('integrity-check') }
+}
+foreach {rowid x y} $d10 {
+ do_execsql_test 10.3.$rowid.1 { INSERT INTO t1 VALUES($x, $y) }
+ do_execsql_test 10.3.$rowid.2 { INSERT INTO t1(t1) VALUES('integrity-check') }
+}
+
+do_execsql_test 10.4.1 { DELETE FROM t1 }
+do_execsql_test 10.4.2 { INSERT INTO t1(t1) VALUES('integrity-check') }
+
+#-------------------------------------------------------------------------
+#
+do_catchsql_test 11.1 {
+ CREATE VIRTUAL TABLE t2 USING fts5(a, b, c, rank);
+} {1 {reserved fts5 column name: rank}}
+do_catchsql_test 11.2 {
+ CREATE VIRTUAL TABLE rank USING fts5(a, b, c);
+} {1 {reserved fts5 table name: rank}}
+
+#-------------------------------------------------------------------------
+#
+do_execsql_test 12.1 {
+ CREATE VIRTUAL TABLE t2 USING fts5(x,y);
+} {}
+
+do_catchsql_test 12.2 {
+ SELECT t2 FROM t2 WHERE t2 MATCH '*stuff'
+} {1 {unknown special query: stuff}}
+
+do_test 12.3 {
+ set res [db one { SELECT t2 FROM t2 WHERE t2 MATCH '* reads ' }]
+ string is integer $res
+} {1}
+
+#-------------------------------------------------------------------------
+#
+reset_db
+do_execsql_test 13.1 {
+ CREATE VIRTUAL TABLE t1 USING fts5(x);
+ INSERT INTO t1(rowid, x) VALUES(1, 'o n e'), (2, 't w o');
+} {}
+
+do_execsql_test 13.2 {
+ SELECT rowid FROM t1 WHERE t1 MATCH 'o';
+} {2 1}
+
+do_execsql_test 13.4 {
+ DELETE FROM t1 WHERE rowid=2;
+} {}
+
+do_execsql_test 13.5 {
+ SELECT rowid FROM t1 WHERE t1 MATCH 'o';
+} {1}
+
+do_execsql_test 13.6 {
+ SELECT rowid FROM t1 WHERE t1 MATCH '.';
+} {}
+
++}
++#-------------------------------------------------------------------------
++#
++reset_db
++do_execsql_test 14.1 {
++ CREATE VIRTUAL TABLE t1 USING fts5(x, y);
++ INSERT INTO t1(t1, rank) VALUES('pgsz', 32);
++ WITH d(x,y) AS (
++ SELECT NULL, 'xyz xyz xyz xyz xyz xyz'
++ UNION ALL
++ SELECT NULL, 'xyz xyz xyz xyz xyz xyz' FROM d
++ )
++ INSERT INTO t1 SELECT * FROM d LIMIT 200;
++}
++
++do_test 14.2 {
++ set nRow 0
++ db eval { SELECT * FROM t1 WHERE t1 MATCH 'xyz' } {
++ db eval {
++ BEGIN;
++ CREATE TABLE t2(a, b);
++ ROLLBACK;
++ }
++ incr nRow
++ }
++ set nRow
++} {200}
++
++do_test 14.3 {
++ set nRow 0
++ db eval { BEGIN; }
++ db eval { SELECT * FROM t1 WHERE t1 MATCH 'xyz' } {
++ db eval {
++ SAVEPOINT aaa;
++ CREATE TABLE t2(a, b);
++ ROLLBACK TO aaa;
++ RELEASE aaa;
++ }
++ incr nRow
++ }
++ set nRow
++} {200}
++
+finish_test
+
+
- C Add\sextra\sfault\sinjection\stests\sto\sfts5.
- D 2015-01-20T20:34:17.734
-C Fix\sanother\sinstance\sof\san\sincorrect\svalue\sfor\sKeyInfo.nXField\son\sa\nsorting\sindex.\s\sTicket\s[f97c4637102a3ae72b79].
-D 2015-01-20T03:04:29.620
++C Merge\slatest\strunk\schanges\swith\sthis\sbranch.
++D 2015-01-21T06:36:07.043
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
- F Makefile.in 7cd23e4fc91004a6bd081623e1bc6932e44828c0
+ F Makefile.in 5407a688f4d77a05c18a8142be8ae5a2829dd610
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
- F Makefile.msc b363b90fe1bfc3b87d190f2f728a126c00d9ce09
- F Makefile.vxworks 034289efa9d591b04b1a73598623119c306cbba0
+ F Makefile.msc 4c057774e6138b9023fc16ec05639ddd3329b152
+ F Makefile.vxworks e1b65dea203f054e71653415bd8f96dcaed47858
F README.md d58e3bebc0a4145e0f2a87994015fdb575a8e866
F VERSION d846487aff892625eb8e75960234e7285f0462fe
F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
F autoconf/tea/Makefile.in d55bcc63832caf0309c2ff80358756116618cfca
F autoconf/tea/README 3e9a3c060f29a44344ab50aec506f4db903fb873
F autoconf/tea/aclocal.m4 52c47aac44ce0ddb1f918b6993e8beb8eee88f43
- F autoconf/tea/configure.in 93d43c79e936fb16556e22498177d7e8571efa04
-F autoconf/tea/configure.ac 93d43c79e936fb16556e22498177d7e8571efa04
++F autoconf/tea/configure.ac 93d43c79e936fb16556e22498177d7e8571efa04 w autoconf/tea/configure.in
F autoconf/tea/doc/sqlite3.n e1fe45d4f5286ee3d0ccc877aca2a0def488e9bb
F autoconf/tea/license.terms 13bd403c9610fd2b76ece0ab50c4c5eda933d523
F autoconf/tea/pkgIndex.tcl.in 3ef61715cf1c7bdcff56947ffadb26bc991ca39d
F ext/fts3/README.syntax a19711dc5458c20734b8e485e75fb1981ec2427a
F ext/fts3/README.tokenizers e0a8b81383ea60d0334d274fadf305ea14a8c314
F ext/fts3/README.txt 8c18f41574404623b76917b9da66fcb0ab38328d
- F ext/fts3/fts3.c 8b6cceb3e0be22da26d83a3cec0e0e337e6b8ec6
+ F ext/fts3/fts3.c 5c464816508e40feb3c61f1f5566551764698fc8
-F ext/fts3/fts3.h 3a10a0af180d502cecc50df77b1b22df142817fe
+F ext/fts3/fts3.h 62a77d880cf06a2865052726f8325c8fabcecad7
F ext/fts3/fts3Int.h 53d4eca1fb23eab00681fb028fb82eb5705c1e21
F ext/fts3/fts3_aux.c 5c211e17a64885faeb16b9ba7772f9d5445c2365
F ext/fts3/fts3_expr.c 40123785eaa3ebd4c45c9b23407cc44ac0c49905
F ext/fts3/tool/fts3view.c 3986531f2fc0ceca0c89c31ec7d0589b6adb19d6
F ext/fts3/unicode/CaseFolding.txt 8c678ca52ecc95e16bc7afc2dbf6fc9ffa05db8c
F ext/fts3/unicode/UnicodeData.txt cd07314edb62d49fde34debdaf92fa2aa69011e7
-F ext/fts3/unicode/mkunicode.tcl a2567f9d6ad6779879a2e394c120ad8718557e65
+F ext/fts3/unicode/mkunicode.tcl 4199cb887040ee3c3cd59a5171ddb0566904586e
+F ext/fts5/extract_api_docs.tcl 55a6d648d516f35d9a1e580ac00de27154e1904a
+F ext/fts5/fts5.c 0ba5a8f27e1aa4deab82f0fc295d55f67dfe7f34
+F ext/fts5/fts5.h f931954065693898d26c51f23f1d27200184a69a
+F ext/fts5/fts5Int.h b593d5ff5f0cc6493778f88bc19db1dea42e003b
+F ext/fts5/fts5_aux.c 549aef152b0fd46020f5595d861b1fd60b3f9b4f
+F ext/fts5/fts5_buffer.c 32dd3c950392346ca69a0f1803501766c5c954f9
+F ext/fts5/fts5_config.c 33534ca25198cc62c54ff7d285d455c57ad19399
+F ext/fts5/fts5_expr.c 8a0e643768666dc2bffe74104141274809699808
+F ext/fts5/fts5_hash.c 63fa8379c5f2ac107d47c2b7d9ac04c95ef8a279
+F ext/fts5/fts5_index.c 8c34dd95f780ff4010af75643a1960bbde70045d
+F ext/fts5/fts5_storage.c 8bc9e5b6654e1545e9513def277ef3f025921664
+F ext/fts5/fts5_tcl.c 1293fac2bb26903fd3d5cdee59c5885ba7e620d5
+F ext/fts5/fts5_tokenize.c 7c61d5c35c3449597bdeaa54dd48afe26852c7b0
+F ext/fts5/fts5_unicode2.c 9c7dd640d1f014bf5c3ee029759adfbb4d7e95a9
+F ext/fts5/fts5parse.y 777da8e5819f75c217982c79c29d014c293acac9
+F ext/fts5/mkportersteps.tcl 5acf962d2e0074f701620bb5308155fa1e4a63ba
+F ext/fts5/test/fts5_common.tcl 08e939096a07eb77a7a986613e960f31d3cab2cc
- F ext/fts5/test/fts5aa.test ad7eb7ace215e999a0bda9aa078dbdade20afa1e
++F ext/fts5/test/fts5aa.test 770dbb37108a8d3531ec1240b71a404121adb554
+F ext/fts5/test/fts5ab.test 91a3faac09ad9fab5f71494db6e4071963281536
+F ext/fts5/test/fts5ac.test 48181b7c873da0e3b4a3316760fcb90d88e7fbd8
+F ext/fts5/test/fts5ad.test 3b01eec8516d5631909716514e2e585a45ef0eb1
+F ext/fts5/test/fts5ae.test 014d5be2f5f70407fb032d4f27704116254797c3
+F ext/fts5/test/fts5af.test c2501ec2b61d6b179c305f5d2b8782ab3d4f832a
+F ext/fts5/test/fts5ag.test ec3e119b728196620a31507ef503c455a7a73505
+F ext/fts5/test/fts5ah.test 749855d1f457ecbf8e54b25a92e55a84cc689151
+F ext/fts5/test/fts5ai.test f20e53bbf0c55bc596f1fd47f2740dae028b8f37
+F ext/fts5/test/fts5aj.test 05b569f5c16ea3098fb1984eec5cf50dbdaae5d8
+F ext/fts5/test/fts5ak.test dc7bcd087dea0451ec40bba173962a0ba3a1d8ce
+F ext/fts5/test/fts5al.test 633fdb3d974629d01ba7734d180dbc2ad8ed772a
+F ext/fts5/test/fts5auxdata.test c69b86092bf1a157172de5f9169731af3403179b
+F ext/fts5/test/fts5content.test 4234e0b11e003fe1e80472aa637f70464396fdd0
+F ext/fts5/test/fts5ea.test 04695560a444fcc00c3c4f27783bdcfbf71f030c
+F ext/fts5/test/fts5eb.test 728a1f23f263548f5c29b29dfb851b5f2dbe723e
+F ext/fts5/test/fts5fault1.test 2c077402045f0b4e69ae1de6cfa51b0c4c5044c2
+F ext/fts5/test/fts5near.test 3f9f64e16cac82725d03d4e04c661090f0b3b947
+F ext/fts5/test/fts5optimize.test 0028c90a7817d3e576d1148fc8dff17d89054e54
+F ext/fts5/test/fts5porter.test 50322599823cb8080a99f0ec0c39f7d0c12bcb5e
+F ext/fts5/test/fts5prefix.test 4610dfba4460d92f23a8014874a46493f1be77b5
+F ext/fts5/test/fts5rebuild.test 2a5e98205393487b4a732c8290999af7c0b907b4
+F ext/fts5/test/fts5tokenizer.test b34ae592db66f6e89546d791ce1f905ba0b3395c
+F ext/fts5/test/fts5unicode.test 79b3e34eb29ce4929628aa514a40cb467fdabe4d
+F ext/fts5/test/fts5unicode2.test 64a5267fd6082fcb46439892ebd0cbaa5c38acee
+F ext/fts5/tool/loadfts5.tcl 17c9771fb225b6b7ddd02a698fc7f320eadd7b15
F ext/icu/README.txt d9fbbad0c2f647c3fdf715fc9fd64af53aedfc43
F ext/icu/icu.c d415ccf984defeb9df2c0e1afcfaa2f6dc05eacb
F ext/icu/sqliteicu.h 728867a802baa5a96de7495e9689a8e01715ef37
F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
F magic.txt 8273bf49ba3b0c8559cb2774495390c31fd61c60
- F main.mk c2e1899c04ef129d5d3c947b1b313f0c97358d72
-F main.mk e392561ffe17fc4dad945eef852400d5bf2911a0
++F main.mk 13e0f64976aa3df394b06b43006d8b3625cd7719
F mkopcodec.awk c2ff431854d702cdd2d779c9c0d1f58fa16fa4ea
F mkopcodeh.awk c6b3fa301db6ef7ac916b14c60868aeaec1337b5
F mkso.sh fd21c06b063bb16a5d25deea1752c2da6ac3ed83
F src/legacy.c ba1863ea58c4c840335a84ec276fc2b25e22bc4e
F src/lempar.c 7274c97d24bb46631e504332ccd3bd1b37841770
F src/loadext.c 86bd4e2fccd520b748cba52492ab60c4a770f660
- F src/main.c cb121abd60a4ec512ad3ad7273f649e691d252ef
-F src/main.c 05bf368c934cc73d02906030846eb4d1818c10f7
++F src/main.c aacb8f370a15d96f62cd1493556b0ba71f13859d
F src/malloc.c 740db54387204c9a2eb67c6d98e68b08e9ef4eab
F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
- F src/mem1.c faf615aafd8be74a71494dfa027c113ea5c6615f
+ F src/mem1.c abe6ee469b6c5a35c7f22bfeb9c9bac664a1c987
F src/mem2.c f1940d9e91948dd6a908fbb9ce3835c36b5d83c3
F src/mem3.c 61c9d47b792908c532ca3a62b999cf21795c6534
F src/mem5.c 61eeb90134f9a5be6c2e68d8daae7628b25953fb
F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d
F src/status.c 81712116e826b0089bb221b018929536b2b5406f
F src/table.c e7a09215315a978057fb42c640f890160dbcc45e
- F src/tclsqlite.c 36d0331f5084b3ffef003a5f98151088c1f72d8a
- F src/test1.c 041c4edf2f9c49a329add297e26ee86a83852f51
- F src/test2.c 98049e51a17dc62606a99a9eb95ee477f9996712
- F src/test3.c 1c0e5d6f080b8e33c1ce8b3078e7013fdbcd560c
- F src/test4.c 9b32d22f5f150abe23c1830e2057c4037c45b3df
-F src/tclsqlite.c b8014393a96a9781bb635c8b1f52fc9b77a2bfcf
++F src/tclsqlite.c d2a15339103ff7c61ab7766ea8f4f549997e6590
+ F src/test1.c 00a74fbc6604e1bcd240726a9ff8d0cc123374e7
+ F src/test2.c 577961fe48961b2f2e5c8b56ee50c3f459d3359d
+ F src/test3.c 64d2afdd68feac1bb5e2ffb8226c8c639f798622
+ F src/test4.c d168f83cc78d02e8d35567bb5630e40dcd85ac1e
F src/test5.c 5a34feec76d9b3a86aab30fd4f6cc9c48cbab4c1
F src/test6.c 41cacf3b0dd180823919bf9e1fbab287c9266723
- F src/test7.c 72b732baa5642f795655ba1126ea032af46ecfd2
- F src/test8.c 54ccd7b1df5062f0ecbf50a8f7b618f8b1f13b20
+ F src/test7.c 9c89a4f1ed6bb13af0ed805b8d782bd83fcd57e3
+ F src/test8.c 610e3d523018ca63b08081795e76794a2121ec38
F src/test9.c bea1e8cf52aa93695487badedd6e1886c321ea60
F src/test_async.c 21e11293a2f72080eda70e1124e9102044531cd8
F src/test_autoext.c dea8a01a7153b9adc97bd26161e4226329546e12
F src/test_backup.c 3875e899222b651e18b662f86e0e50daa946344e
F src/test_blob.c 1f2e3e25255b731c4fcf15ee7990d06347cb6c09
F src/test_btree.c 2e9978eca99a9a4bfa8cae949efb00886860a64f
- F src/test_config.c c07a375b1eb4e56ed9fc70bc210649c8ff01718d
-F src/test_config.c e7b2e1634324d746aa5e1c7e0929470e8be27953
++F src/test_config.c 0f5843ef860a6d8381c1d4aafed4f74080584732
F src/test_demovfs.c 69b2085076654ebc18014cbc6386f04409c959a9
F src/test_devsym.c e7498904e72ba7491d142d5c83b476c4e76993bc
F src/test_fs.c ced436e3d4b8e4681328409b8081051ce614e28f
F src/vdbe.h 6fc69d9c5e146302c56e163cb4b31d1ee64a18c3
F src/vdbeInt.h 9bb69ff2447c34b6ccc58b34ec35b615f86ead78
F src/vdbeapi.c 4bc511a46b9839392ae0e90844a71dc96d9dbd71
- F src/vdbeaux.c 07ef87c6d4b5abdf13ff33babb10205702fdab0a
+ F src/vdbeaux.c f06d38c71d7f533348c09869d69fd1b647042a5b
F src/vdbeblob.c 4af4bfb71f6df7778397b4a0ebc1879793276778
F src/vdbemem.c 31d8eabb0cd78bfeab4e5124c7363c3e9e54db9f
- F src/vdbesort.c 80e40d889ebb536cb7a5ac4c12fa2a4662bc9181
+ F src/vdbesort.c 6d64c5448b64851b99931ede980addc3af70d5e2
F src/vdbetrace.c 7e4222955e07dd707a2f360c0eb73452be1cb010
-F src/vtab.c c08ec66f45919eaa726bf88aa53eb08379d607f9
+F src/vtab.c ec672a0b5d507f24b9294c0696dbd2fd2ce9b122
F src/wal.c 85353539f2d9d0c91ebd057c32525b1e1aa3335e
F src/wal.h df01efe09c5cb8c8e391ff1715cca294f89668a4
F src/walker.c c253b95b4ee44b21c406e2a1052636c31ea27804
F test/pcache.test b09104b03160aca0d968d99e8cd2c5b1921a993d
F test/pcache2.test a83efe2dec0d392f814bfc998def1d1833942025
F test/percentile.test 4243af26b8f3f4555abe166f723715a1f74c77ff
- F test/permutations.test b18313202c6a706cc25feaf0726ff333694cc9e1
-F test/permutations.test f9cc1dd987986c9d4949211c7a4ed55ec9aecba1
++F test/permutations.test 62ff8c49738c72a70b034ecc31957bee437f76ff
F test/pragma.test aa16dedfe01c02c8895169012f7dfde9c163f0d5
F test/pragma2.test aea7b3d82c76034a2df2b38a13745172ddc0bc13
F test/pragma3.test 6f849ccffeee7e496d2f2b5e74152306c0b8757c
F tool/genfkey.README cf68fddd4643bbe3ff8e31b8b6d8b0a1b85e20f4
F tool/genfkey.test 4196a8928b78f51d54ef58e99e99401ab2f0a7e5
F tool/getlock.c f4c39b651370156cae979501a7b156bdba50e7ce
- F tool/lemon.c 3ff0fec22f92dfb54e62eeb48772eddffdbeb0d6
+ F tool/lemon.c 1864c4fe4a72b1bb28f1792b60504804fe82c5d2
F tool/lempar.c 01ca97f87610d1dac6d8cd96ab109ab1130e76dc
+F tool/loadfts.c 76b6589ab5efcdc9cfe16d43ab5a6c2618e44bd4
F tool/logest.c eef612f8adf4d0993dafed0416064cf50d5d33c6
- F tool/mkautoconfamal.sh 5dc5010e2e748a9e1bba67baca5956a2c2deda7b
+ F tool/mkautoconfamal.sh d1a2da0e15b2ed33d60af35c7e9d483f13a8eb9f
F tool/mkkeywordhash.c dfff09dbbfaf950e89af294f48f902181b144670
F tool/mkopts.tcl 66ac10d240cc6e86abd37dc908d50382f84ff46e
F tool/mkpragmatab.tcl 07a5124cf2dbafa1b375eefcf8ac4227028b0f8b
F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
- F tool/mksqlite3c-noext.tcl 88a1e3b0c769773fb7a9ebb363ffc603a4ac21d8
- F tool/mksqlite3c.tcl 18fc267758af3cd00ffce9346f9dc807c14c5507
+ F tool/mksqlite3c-noext.tcl 9ef48e1748dce7b844f67e2450ff9dfeb0fb4ab5
-F tool/mksqlite3c.tcl cfde806851c413db7689b9cb74a4eeb92539c601
++F tool/mksqlite3c.tcl c63fdd4a6a264e1b03c3cc67ea48d496c51fbc16
F tool/mksqlite3h.tcl ba24038056f51fde07c0079c41885ab85e2cff12
- F tool/mksqlite3internalh.tcl b6514145a7d5321b47e64e19b8116cc44f973eb1
+ F tool/mksqlite3internalh.tcl eb994013e833359137eb53a55acdad0b5ae1049b
F tool/mkvsix.tcl 52a4c613707ac34ae9c226e5ccc69cb948556105
F tool/offsets.c fe4262fdfa378e8f5499a42136d17bf3b98f6091
F tool/omittest.tcl 34d7ac01fe4fd18e3637f64abe12c40eca0f6b97
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
- P 75f3d17f864072dfa2caee182b86cc4b9972d691
- R 2673080f53da5e5812b6adb8f1a6e570
-P f7201bb0cdc9e1425c68599b32434de2231dca36
-Q +dc711db44ec424a7850231a39088229c23238f1b
-R 62321acc2f9c598a0f3d605f6dbddb80
-U drh
-Z 8cb1f44c22f57ba114489669ef914874
++P f45a0dc0a8911c8aac5a1028ac4f543a709656e7 0077f64510f9b9ce90032df2696cb242d097ab84
++R e06147bbdf5a4901c5e35690744486d9
+U dan
- Z 0775369c7a1d21779f81072190cb8e04
++Z a4fb835870b87f88f9fea880f3a15d66