const char *zName /* New name of table */
){
Fts3Table *p = (Fts3Table *)pVtab;
- sqlite3 *db; /* Database connection */
+ sqlite3 *db = p->db; /* Database connection */
int rc; /* Return Code */
-
- db = p->db;
- rc = SQLITE_OK;
+
+ rc = sqlite3Fts3PendingTermsFlush(p);
+ if( rc!=SQLITE_OK ){
+ return rc;
+ }
+
fts3DbExec(&rc, db,
"ALTER TABLE %Q.'%q_content' RENAME TO '%q_content';",
p->zDb, p->zName, zName
-C Add\stests\sto\se_expr.test.
-D 2010-08-24T13:11:53
+C Fixes\sto\sallow\sfts3\stables\sto\sbe\srenamed\smid-transaction.
+D 2010-08-24T16:59:48
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 543f91f24cd7fee774ecc0a61c19704c0c3e78fd
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F ext/fts3/README.syntax a19711dc5458c20734b8e485e75fb1981ec2427a
F ext/fts3/README.tokenizers 998756696647400de63d5ba60e9655036cb966e9
F ext/fts3/README.txt 8c18f41574404623b76917b9da66fcb0ab38328d
-F ext/fts3/fts3.c e818310c473d7703f7818887a3537ec42ae0d528
+F ext/fts3/fts3.c f6436b3bcd67f8638f2acd80583d26d3fcd81de5
F ext/fts3/fts3.h 3a10a0af180d502cecc50df77b1b22df142817fe
F ext/fts3/fts3Int.h 70528ba8c33991699f96ecc64112122833cdbdb5
F ext/fts3/fts3_expr.c 42d5697731cd30fbeabd081bb3e6d3df5531f606
F src/utf.c 1baeeac91707a4df97ccc6141ec0f808278af685
F src/util.c 32aebf04c10e51ad3977a928b7416bed671b620b
F src/vacuum.c 241a8386727c1497eba4955933356dfba6ff8c9f
-F src/vdbe.c 66c262a923915e596379b1d597178e04c5d719e4
+F src/vdbe.c d735223ecacaa7f657f2e8fe3274cfc3fb4e3a04
F src/vdbe.h 4de0efb4b0fdaaa900cf419b35c458933ef1c6d2
F src/vdbeInt.h ffd68c4d4229227a5089bec53a1c635146177abc
F src/vdbeapi.c d0f4407e465f261780ad725c1caece7d66a6aa35
F test/fts3al.test 07d64326e79bbdbab20ee87fc3328fbf01641c9f
F test/fts3am.test 218aa6ba0dfc50c7c16b2022aac5c6be593d08d8
F test/fts3an.test a49ccadc07a2f7d646ec1b81bc09da2d85a85b18
-F test/fts3ao.test 0aa29dd4fc1c8d46b1f7cfe5926f7ac97551bea9
+F test/fts3ao.test 8fee868a0e131b98ce3e8907dc69936278e8b29a
F test/fts3atoken.test 25c2070e1e8755d414bf9c8200427b277a9f99fa
F test/fts3b.test e93bbb653e52afde110ad53bbd793f14fe7a8984
F test/fts3c.test fc723a9cf10b397fdfc2b32e73c53c8b1ec02958
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 7f2f71cc9e3c39093f09231f448576cff6afb5fe
-R aba17ed62d7523dad2435b92dcbb7f3b
+P 5c1c694ee1b3b71e20089412f6cba1847dc7f958
+R 25f3b83483bf6c0fefff05a4b75ff439
U dan
-Z 181c658325527cf2c74e166fe7d3a968
+Z 19f58c47941c660f7043731f7e66713a
execsql { SELECT a, b, c FROM t1 WHERE c MATCH 'two'; }
} {{one three four} {one four} {one two}}
+#---------------------------------------------------------------------
+# Test that it is possible to rename an fts3 table within a
+# transaction.
+#
+do_test fts3ao-4.1 {
+ execsql {
+ CREATE VIRTUAL TABLE t4 USING fts3;
+ INSERT INTO t4 VALUES('the quick brown fox');
+ }
+} {}
+do_test fts3ao-4.2 {
+ execsql {
+ BEGIN;
+ INSERT INTO t4 VALUES('jumped over the');
+ }
+} {}
+do_test fts3ao-4.3 { execsql { ALTER TABLE t4 RENAME TO t5; } } {}
+do_test fts3ao-4.4 { execsql { INSERT INTO t5 VALUES('lazy dog'); } } {}
+do_test fts3ao-4.5 { execsql COMMIT } {}
+do_test fts3ao-4.6 {
+ execsql { SELECT * FROM t5 }
+} {{the quick brown fox} {jumped over the} {lazy dog}}
+do_test fts3ao-4.7 {
+ execsql {
+ BEGIN;
+ INSERT INTO t5 VALUES('Down came a jumbuck to drink at that billabong');
+ ALTER TABLE t5 RENAME TO t6;
+ INSERT INTO t6 VALUES('Down came the troopers, one, two, three');
+ ROLLBACK;
+ SELECT * FROM t5;
+ }
+} {{the quick brown fox} {jumped over the} {lazy dog}}
+
finish_test
+