SQLite + FTS (full text search)

Terry Reedy tjreedy at udel.edu
Thu Jan 23 19:59:31 EST 2014


On 1/23/2014 8:24 AM, Asaf Las wrote:
> On Thursday, January 23, 2014 2:20:31 PM UTC+2, Mark Summerfield wrote:
>> Hi,
>> On my Debian stable 64-bit system, SQLite3 has FTS (full text search)
>> enabled (although at version 3 rather than the recommended version 4):
>>
>> Python 3.2.3 (default, Feb 20 2013, 14:44:27) [GCC 4.7.2] on linux2
>> Type "copyright", "credits" or "license()" for more information.
>>>>> import sqlite3
>>>>> con = sqlite3.connect(":memory:")
>>>>> cur = con.execute("pragma compile_options")
>>>>> for row in cur:
>> 	print(row)
>> ...
>> ('ENABLE_FTS3',)
>> ...
>> But on Windows when I use the official Python 3.3 32-bit binary
>> from www.python.org this is not enabled.

On 64 bit 3.4.0b2, the output is ('THREADSAFE=1',)

>> My guess is that on Debian, the packagers install a full SQLite 3
>> and the Python package uses that. But on Windows I think the Python
>> packagers bundle their own SQLite (quite rightly since it might not
>> already be installed).
>>
>> I'd like the Windows binary to include SQLite 3 with FTS4 support,
>> but I don't know how much work that involves or if it would make
>> the Python .msi file too big?
>>
>> Anyway, I guess if anyone else is interested in this they
>> could perhaps reply to indicate this?
>> If you're curious about the feature, it is documented here:
>>
>> http://www.sqlite.org/fts3.html
>
> It is compile time option.
> http://www.sqlite.org/compile.html#enable_fts3
> you have to build it with this option enabled.

If one clones the hg.python.org/cpython repository and runs 
Tools/buildbots/external.bat with minimal svn installed, it copies 
sqlite3 source into sqlite-3.8.1 with files
shell.c
sqlite3.c  # 5 mb
sqlite3.h
sqlite3ext.h

If that is everything needed for FTS and if pcbuild/ _sqlite3 and 
sqlite3 project files were altered to change the compile option and 
anything else needed ... then you would have FTS on Windows.
-- 
Terry Jan Reedy




More information about the Python-list mailing list