#2960: Search is broken with SQLite < 3.0
-------------------------------------------+--------------------------------
Reporter: Tim Hatch <[EMAIL PROTECTED]> | Owner: jonas
Type: defect | Status: new
Priority: normal | Milestone:
Component: general | Version: devel
Severity: normal | Keywords:
-------------------------------------------+--------------------------------
I have a Debian box that's been running Trac nicely for a while, but
recently encountered a search error, pointing at use of {{{ESCAPE}}}.
Here's the traceback:
{{{
Traceback (most recent call last):
File "/usr/lib/python2.3/site-packages/trac/web/main.py", line 299, in
dispatch_request
dispatcher.dispatch(req)
File "/usr/lib/python2.3/site-packages/trac/web/main.py", line 175, in
dispatch
resp = chosen_handler.process_request(req)
File "/usr/lib/python2.3/site-packages/trac/Search.py", line 184, in
process_request
results += list(source.get_search_results(req, terms, filters))
File "/usr/lib/python2.3/site-packages/trac/ticket/api.py", line 193, in
get_search_results
args + args2)
File "/usr/lib/python2.3/site-packages/trac/db/util.py", line 47, in
execute
return self.cursor.execute(sql_escape_percent(sql), args)
File "/usr/lib/python2.3/site-packages/sqlite/main.py", line 255, in
execute
self.rs = self.con.db.execute(SQL % parms)
DatabaseError: near "ESCAPE": syntax error
}}}
This is caused by using SQLite 2.0, which works for everything else...
just not for search. The relevant Debian packages are
[http://packages.debian.org/python-sqlite python-sqlite] (supports SQLite
2.0) and [http://package.debian.org/python-pysqlite2 python-pysqlite2]
(which supports SQLite 3.0). I only had the first installed on this box,
and the database was 2.0 format. The {{{ESCAPE}}} clause was
[http://www.sqlite.org/cvstrac/tktview?tn=324 added for 3.0]. After
installing {{{python-pysqlite2}}} and running the standard 2.0->3.0
upgrade procedure for the database, it now works great.
I believe this worked fine before r2940, as that is when {{{ESCAPE}}} was
first added to source:trunk/trac/Search.py . The easy solution is to just
upgrade any servers to {{{pysqlite2}}} for SQLite 3.0.
--
Ticket URL: <http://projects.edgewall.com/trac/ticket/2960>
The Trac Project <http://trac.edgewall.com/>
_______________________________________________
Trac-Tickets mailing list
[email protected]
http://lists.edgewall.com/mailman/listinfo/trac-tickets