$ ./bin/sqlite3 --version
3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668

$ ./bin/sqlite3 -batch < /tmp/test.sql
--- 1 ---
0
--- 2 ---
1

$ ./bin/sqlite3 --version
3.8.7 2014-09-30 19:04:41 5ce05757aac80b99c3b2141cd301809f8e28e661

/bin/sqlite3 -batch < /tmp/test.sql
--- 1 ---
0
--- 2 ---
0

The SQL is below. Perhaps someone can see if I'm doing something wrong?

BEGIN TRANSACTION;

CREATE TABLE t(
       id INTEGER PRIMARY KEY AUTOINCREMENT
       ,key TEXT NOT NULL
       ,value0 DEFAULT ''
       ,value1 DEFAULT ''
);

CREATE VIRTUAL TABLE t_fts USING FTS4 (
       content="t",tokenize=unicode61 "tokenchars=-_"
       ,key
       ,value0
       ,value1
);

CREATE TRIGGER t_bu BEFORE UPDATE ON t BEGIN
    DELETE FROM t_fts WHERE docid = old.id;
END;

CREATE TRIGGER t_bd BEFORE DELETE ON t BEGIN
    DELETE FROM t_fts WHERE docid = old.id;
END;

CREATE TRIGGER t_au AFTER UPDATE ON t BEGIN
       INSERT INTO t_fts(
              docid
              ,key
              ,value0
              ,value1
)
        VALUES (
               new.rowid
               ,new.key
               ,new.value0
               ,new.value1
);
END;

CREATE TRIGGER t_ai AFTER INSERT ON t BEGIN
       INSERT INTO t_fts(
              docid
              ,key
              ,value0
              ,value1
)
        VALUES (
               new.rowid
               ,new.key
               ,new.value0
               ,new.value1
);

END;

COMMIT;

BEGIN TRANSACTION;

SELECT '--- 1 ---';
SELECT COUNT(*) FROM t_fts WHERE t_fts MATCH '*l0l* *h4x*';

COMMIT;

BEGIN TRANSACTION;

INSERT INTO t(key,value0,value1) VALUES('$key','l0l','h4x');

COMMIT;

SELECT '--- 2 ---';
SELECT COUNT(*) FROM t_fts WHERE t_fts MATCH '*l0l* *h4x*';

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to