#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

Reply via email to