Edgewall Software

Opened 17 years ago

Closed 16 years ago

#2960 closed defect (fixed)

Search is broken with SQLite < 3.0

Reported by: Tim Hatch <trac@…> Owned by: Jonas Borgström
Priority: high Milestone: 0.10
Component: general Version: devel
Severity: major Keywords: sqlite2
Cc: Branch:
Release Notes:
API Changes:
Internal Changes:


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
  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 python-sqlite (supports SQLite 2.0) and 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 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.

Attachments (0)

Change History (6)

comment:1 by anonymous, 17 years ago

Keywords: sqlite2 added
Milestone: 0.10
Priority: normalhigh
Severity: normalmajor

#2976, #2980 marked as duplicates.

comment:2 by Christian Boos, 16 years ago

#3127 marked as duplicate.

comment:3 by Christian Boos, 16 years ago

… and #3133, plus I added a note on bulix.org to hopefully stop the flood of duplicate tickets.

comment:4 by Christian Boos, 16 years ago

(OTOH, this ticket will make a good test case for the ticket similarity code ;) )

comment:5 by Jonas Borgström, 16 years ago

Status: newassigned

comment:6 by Jonas Borgström, 16 years ago

Resolution: fixed
Status: assignedclosed

Fixed in r3326.

Modify Ticket

Change Properties
Set your email in Preferences
as closed The owner will remain Jonas Borgström.
The resolution will be deleted. Next status will be 'reopened'.
to The owner will be changed from Jonas Borgström to the specified user.

Add Comment

E-mail address and name can be saved in the Preferences .
Note: See TracTickets for help on using tickets.