Re: [sqlite] FTS4 Problem
On 12/25/2014 08:04 AM, Peter Truskier wrote: As I mentioned, I seem to have solved the problem by doing a "rebuild" command on the FTS4 table. But, as I thought about it further, I'm still confused as to why dropping, and then re-creating the virtual table didn't solve the problem as well. What am I missing? Creating an FTS4 table that uses the "content=" option does not automatically populate the FTS index. It just creates an empty FTS index that SQLite assumes the user will somehow take care of populating. Dan. Thanks, Peter On Dec 24, 2014, at 12:03 PM, Peter Truskierwrote: Thanks so much for the quick AND HELPFUL response! I had run the pragma, but was unaware of the command. When I ran the 'integrity-check' command on the virtual table, I got a "database disk image is malformed Error Code 11" Running the 'rebuild' command seems to have fixed the problem. I guess one of the triggers for keeping the virtual table up to date must have failed for some reason. Thank you again! -- Peter Truskier Berkeley, CA USA 1-510-495-6442 On Dec 24, 2014, at 11:47 AM, Richard Hipp wrote: Have you run integrity checks on the database file ( https://www.sqlite.org/pragma.html#pragma_integrity_check) and on the FTS4 tables (https://www.sqlite.org/fts3.html#integcheck)? Do they all look correct? On Wed, Dec 24, 2014 at 2:40 PM, Peter Truskier wrote: I have an sqlite database in which I've created a virtual table using FTS4. For nearly a year, we've been using it to do full text searching with no problem. The database contains a table of products (tblProducts) with columns id, SKU, itemDesc, etc. The virtual table is created like this: CREATE VIRTUAL TABLE tblFTSProducts USING fts4(content="tblProducts", SKU, itemDesc) A couple of days ago, full text searches (using "MATCH") suddenly stopped working - always returning an empty recordset with no error. The data in the virtual table appears to be correct. If I do a query on the virtual table like this: SELECT * FROM tblFTSProducts WHERE itemDesc LIKE '%inches%', I get a valid recordset containing the expected records. But, if I do this: SELECT * FROM tblFTSProducts WHERE tblFTSProducts MATCH 'inches', I get an empty recordset. I've checked the integrity of the database, and it is reported to be good. I've tried dropping and re-creating the virtual table, and still get the same behavior. Does anyone have any suggestion for what might suddenly cause this behavior after working for moths and months? Thanks, and happy holidays! ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users -- D. Richard Hipp d...@sqlite.org ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] FTS4 Problem
As I mentioned, I seem to have solved the problem by doing a "rebuild" command on the FTS4 table. But, as I thought about it further, I'm still confused as to why dropping, and then re-creating the virtual table didn't solve the problem as well. What am I missing? Thanks, Peter > On Dec 24, 2014, at 12:03 PM, Peter Truskierwrote: > > Thanks so much for the quick AND HELPFUL response! > > I had run the pragma, but was unaware of the command. When I ran the > 'integrity-check' command on the virtual table, I got a "database disk image > is malformed Error Code 11" > > Running the 'rebuild' command seems to have fixed the problem. I guess one of > the triggers for keeping the virtual table up to date must have failed for > some reason. > > Thank you again! > > -- > Peter Truskier > Berkeley, CA USA > 1-510-495-6442 > > > >> On Dec 24, 2014, at 11:47 AM, Richard Hipp wrote: >> >> Have you run integrity checks on the database file ( >> https://www.sqlite.org/pragma.html#pragma_integrity_check) and on the FTS4 >> tables (https://www.sqlite.org/fts3.html#integcheck)? Do they all look >> correct? >> >> On Wed, Dec 24, 2014 at 2:40 PM, Peter Truskier wrote: >> >>> I have an sqlite database in which I've created a virtual table using >>> FTS4. For nearly a year, we've been using it to do full text searching with >>> no problem. >>> >>> The database contains a table of products (tblProducts) with columns id, >>> SKU, itemDesc, etc. >>> >>> The virtual table is created like this: >>> >>> CREATE VIRTUAL TABLE tblFTSProducts USING fts4(content="tblProducts", >>> SKU, itemDesc) >>> >>> A couple of days ago, full text searches (using "MATCH") suddenly stopped >>> working - always returning an empty recordset with no error. The data in >>> the virtual table appears to be correct. >>> >>> If I do a query on the virtual table like this: >>> >>> SELECT * FROM tblFTSProducts WHERE itemDesc LIKE '%inches%', >>> >>> I get a valid recordset containing the expected records. But, if I do this: >>> >>> SELECT * FROM tblFTSProducts WHERE tblFTSProducts MATCH 'inches', >>> >>> I get an empty recordset. >>> >>> I've checked the integrity of the database, and it is reported to be good. >>> I've tried dropping and re-creating the virtual table, and still get the >>> same behavior. >>> >>> Does anyone have any suggestion for what might suddenly cause this >>> behavior after working for moths and months? >>> >>> Thanks, and happy holidays! >>> >>> >>> >>> ___ >>> sqlite-users mailing list >>> sqlite-users@sqlite.org >>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users >>> >> >> >> >> -- >> D. Richard Hipp >> d...@sqlite.org >> ___ >> sqlite-users mailing list >> sqlite-users@sqlite.org >> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] FTS4 Problem
Thanks so much for the quick AND HELPFUL response! I had run the pragma, but was unaware of the command. When I ran the 'integrity-check' command on the virtual table, I got a "database disk image is malformed Error Code 11" Running the 'rebuild' command seems to have fixed the problem. I guess one of the triggers for keeping the virtual table up to date must have failed for some reason. Thank you again! -- Peter Truskier Berkeley, CA USA 1-510-495-6442 > On Dec 24, 2014, at 11:47 AM, Richard Hippwrote: > > Have you run integrity checks on the database file ( > https://www.sqlite.org/pragma.html#pragma_integrity_check) and on the FTS4 > tables (https://www.sqlite.org/fts3.html#integcheck)? Do they all look > correct? > > On Wed, Dec 24, 2014 at 2:40 PM, Peter Truskier wrote: > >> I have an sqlite database in which I've created a virtual table using >> FTS4. For nearly a year, we've been using it to do full text searching with >> no problem. >> >> The database contains a table of products (tblProducts) with columns id, >> SKU, itemDesc, etc. >> >> The virtual table is created like this: >> >> CREATE VIRTUAL TABLE tblFTSProducts USING fts4(content="tblProducts", >> SKU, itemDesc) >> >> A couple of days ago, full text searches (using "MATCH") suddenly stopped >> working - always returning an empty recordset with no error. The data in >> the virtual table appears to be correct. >> >> If I do a query on the virtual table like this: >> >> SELECT * FROM tblFTSProducts WHERE itemDesc LIKE '%inches%', >> >> I get a valid recordset containing the expected records. But, if I do this: >> >> SELECT * FROM tblFTSProducts WHERE tblFTSProducts MATCH 'inches', >> >> I get an empty recordset. >> >> I've checked the integrity of the database, and it is reported to be good. >> I've tried dropping and re-creating the virtual table, and still get the >> same behavior. >> >> Does anyone have any suggestion for what might suddenly cause this >> behavior after working for moths and months? >> >> Thanks, and happy holidays! >> >> >> >> ___ >> sqlite-users mailing list >> sqlite-users@sqlite.org >> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users >> > > > > -- > D. Richard Hipp > d...@sqlite.org > ___ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Re: [sqlite] FTS4 Problem
Have you run integrity checks on the database file ( https://www.sqlite.org/pragma.html#pragma_integrity_check) and on the FTS4 tables (https://www.sqlite.org/fts3.html#integcheck)? Do they all look correct? On Wed, Dec 24, 2014 at 2:40 PM, Peter Truskierwrote: > I have an sqlite database in which I've created a virtual table using > FTS4. For nearly a year, we've been using it to do full text searching with > no problem. > > The database contains a table of products (tblProducts) with columns id, > SKU, itemDesc, etc. > > The virtual table is created like this: > >CREATE VIRTUAL TABLE tblFTSProducts USING fts4(content="tblProducts", > SKU, itemDesc) > > A couple of days ago, full text searches (using "MATCH") suddenly stopped > working - always returning an empty recordset with no error. The data in > the virtual table appears to be correct. > > If I do a query on the virtual table like this: > >SELECT * FROM tblFTSProducts WHERE itemDesc LIKE '%inches%', > > I get a valid recordset containing the expected records. But, if I do this: > >SELECT * FROM tblFTSProducts WHERE tblFTSProducts MATCH 'inches', > > I get an empty recordset. > > I've checked the integrity of the database, and it is reported to be good. > I've tried dropping and re-creating the virtual table, and still get the > same behavior. > > Does anyone have any suggestion for what might suddenly cause this > behavior after working for moths and months? > > Thanks, and happy holidays! > > > > ___ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > -- D. Richard Hipp d...@sqlite.org ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
[sqlite] FTS4 Problem
I have an sqlite database in which I've created a virtual table using FTS4. For nearly a year, we've been using it to do full text searching with no problem. The database contains a table of products (tblProducts) with columns id, SKU, itemDesc, etc. The virtual table is created like this: CREATE VIRTUAL TABLE tblFTSProducts USING fts4(content="tblProducts", SKU, itemDesc) A couple of days ago, full text searches (using "MATCH") suddenly stopped working - always returning an empty recordset with no error. The data in the virtual table appears to be correct. If I do a query on the virtual table like this: SELECT * FROM tblFTSProducts WHERE itemDesc LIKE '%inches%', I get a valid recordset containing the expected records. But, if I do this: SELECT * FROM tblFTSProducts WHERE tblFTSProducts MATCH 'inches', I get an empty recordset. I've checked the integrity of the database, and it is reported to be good. I've tried dropping and re-creating the virtual table, and still get the same behavior. Does anyone have any suggestion for what might suddenly cause this behavior after working for moths and months? Thanks, and happy holidays! ___ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users