-C Fix\san\soff-by-one\serror\sin\stest\sfunction\sfts5_decode().
-D 2015-09-29T12:19:51.430
+C Ensure\sthat\sthe\sxSavepoint()\svirtual\stable\smethod\sis\scorrectly\sinvoked\sif\sthere\sare\salready\sopen\ssavepoints\s(or\sstatement\stransactions)\sthe\sfirst\stime\sa\svirtual\stable\sis\swritten\swithin\sa\stransaction.
+D 2015-09-29T16:41:23.689
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 2143eeef6d0cc26006ae5fc4bb242a4a8b973412
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F src/vdbemem.c 19b3036aa4d676e7103b0fb5efd6327da455f915
F src/vdbesort.c f5009e7a35e3065635d8918b9a31f498a499976b
F src/vdbetrace.c 8befe829faff6d9e6f6e4dee5a7d3f85cc85f1a0
-F src/vtab.c 2ecfe020c10e0a0c7b078203fdba2fae844744bc
+F src/vtab.c 9a6d8818c8a2477ce547f064701b5e955b25d894
F src/vxworks.h c18586c8edc1bddbc15c004fa16aeb1e1342b4fb
F src/wal.c 18b0ed49830cf04fe2d68224b41838a73ac6cd24
F src/wal.h df01efe09c5cb8c8e391ff1715cca294f89668a4
F test/fts3b.test e93bbb653e52afde110ad53bbd793f14fe7a8984
F test/fts3c.test fc723a9cf10b397fdfc2b32e73c53c8b1ec02958
F test/fts3comp1.test a0f5b16a2df44dd0b15751787130af2183167c0c
-F test/fts3conf.test ee8500c86dd58ec075e8831a1e216a79989436de
+F test/fts3conf.test 6c7faa66bfb0e90c2c073c029c08b58ea5023922
F test/fts3corrupt.test 2710b77983cc7789295ddbffea52c1d3b7506dbb
F test/fts3corrupt2.test 6d96efae2f8a6af3eeaf283aba437e6d0e5447ba
F test/fts3cov.test e0fb00d8b715ddae4a94c305992dfc3ef70353d7
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P c5566bb39c8d9b58f77380b81a873429575c7d5c
-R 8c1c5df148af89b61b9ed44613e1cccf
+P 3a9f076250d9559d8ea94ba44095ba3ddbc5542d
+R 756fa6b717967f5524da70e2a3635809
U dan
-Z c6128292281c17956918fd20bfe641c1
+Z 7ea154fd75a363e5d81a988ffd47237f
SELECT quote(matchinfo(t3, 'na')) FROM t3 WHERE t3 MATCH 'one'
} {X'0200000002000000'}
+#-------------------------------------------------------------------------
+# Test that the xSavepoint is invoked correctly if the first write
+# operation within a transaction is to a virtual table.
+#
+do_catchsql_test 4.1.1 {
+ CREATE VIRTUAL TABLE t0 USING fts4;
+ BEGIN;
+ INSERT INTO t0(rowid, content) SELECT
+ 1, 'abc' UNION ALL SELECT
+ 2, 'def' UNION ALL SELECT
+ 1, 'ghi';
+} {1 {constraint failed}}
+do_execsql_test 4.1.2 {
+ COMMIT;
+}
+do_execsql_test 4.1.3 {
+ SELECT * FROM t0 WHERE t0 MATCH 'abc';
+ INSERT INTO t0(t0) VALUES('integrity-check');
+} {}
+
+do_execsql_test 4.2.1 {
+ CREATE VIRTUAL TABLE t01 USING fts4;
+ BEGIN;
+ SAVEPOINT abc;
+ INSERT INTO t01 VALUES('a b c');
+ ROLLBACK TO abc;
+ COMMIT;
+}
+do_execsql_test 4.2.2 {
+ SELECT * FROM t01 WHERE t01 MATCH 'b';
+ INSERT INTO t01(t01) VALUES('integrity-check');
+} {}
+
finish_test
+