Hi John,
Yes, FTS3 does work with SQLCipher. If you are compiling from the command line try:
./configure CFLAGS="-DSQLITE_HAS_CODEC -DSQLITE_ENABLE_FTS3 -lcrypto"
make
When you fire up the ./sqlite3 you can run something like this to test:
sqlite> pragma key = 'test123';
sqlite> create table t1(a integer, b text);
sqlite> insert into t1(a,b) values (1, "this is test message number one");
sqlite> insert into t1(a,b) values (2, "this is test message number two");
sqlite> create virtual table t1_fts using fts3(a integer, b text);
sqlite> insert into t1_fts select * from t1;
sqlite> select * from t1 inner join t1_fts on t1.a = t1_fts.a where t1_fts.b match 'one';
1|this is test message number one|1|this is test message number one
sqlite> select * from t1 inner join t1_fts on t1.a = t1_fts.a where t1_fts.b match 'two';
2|this is test message number two|2|this is test message number two
sqlite> select * from t1 inner join t1_fts on t1.a = t1_fts.a where t1_fts.b match 'message';
1|this is test message number one|1|this is test message number one
2|this is test message number two|2|this is test message number two
If you are using SQLCipher on the iphone or with the XCode project you will need to adjust the Targets -> amalgamation -> Run Script -> Info -> General Script contents to include the proper define on the ./configure command line. You'll also need to add the define to the "Other C Flags" setting under Targets -> sqlcipher -> Info -> Build.
Cheers,
Stephen