Modify ↓
#6929 closed defect (fixed)
Search broken on Postgresql 8.3
Reported by: | Owned by: | Jonas Borgström | |
---|---|---|---|
Priority: | normal | Milestone: | 0.11 |
Component: | search system | Version: | devel |
Severity: | major | Keywords: | search, postgresql, 8.3 |
Cc: | nulleke76@… | Branch: | |
Release Notes: | |||
API Changes: | |||
Internal Changes: |
Description
Search needs more of the same explicit type casting that #6676 now does
Under trunk r6633, searching yields:
Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/Trac-0.11dev_r6621-py2.4.egg/trac/web/api.py", line 339, in send_error 'text/html') File "/usr/lib/python2.4/site-packages/Trac-0.11dev_r6621-py2.4.egg/trac/web/chrome.py", line 690, in render_template if not req.session or not int(req.session.get('accesskeys', 0)): File "/usr/lib/python2.4/site-packages/Trac-0.11dev_r6621-py2.4.egg/trac/web/api.py", line 168, in __getattr__ value = self.callbacks[name](self) File "/usr/lib/python2.4/site-packages/Trac-0.11dev_r6621-py2.4.egg/trac/web/main.py", line 256, in _get_session return Session(self.env, req) File "/usr/lib/python2.4/site-packages/Trac-0.11dev_r6621-py2.4.egg/trac/web/session.py", line 48, in __init__ self.get_session(sid) File "/usr/lib/python2.4/site-packages/Trac-0.11dev_r6621-py2.4.egg/trac/web/session.py", line 74, in get_session (sid, int(authenticated))) File "/usr/lib/python2.4/site-packages/Trac-0.11dev_r6621-py2.4.egg/trac/db/util.py", line 50, in execute return self.cursor.execute(sql_escape_percent(sql), args) File "/usr/lib/python2.4/site-packages/Trac-0.11dev_r6621-py2.4.egg/trac/db/util.py", line 50, in execute return self.cursor.execute(sql_escape_percent(sql), args) ProgrammingError: current transaction is aborted, commands ignored until end of transaction block
Postgresql says (a search for 'registry'):
2008-03-03 15:58:11 PST ERROR: operator does not exist: integer ~~* text at character 440 2008-03-03 15:58:11 PST HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts. 2008-03-03 15:58:11 PST STATEMENT: SELECT DISTINCT a.summary,a.description,a.reporter, a.type,a.id,a.time,a.status,a.resolution FROM ticket a LEFT JOIN ticket_change b ON a.id = b.ticket WHERE (b.field='comment' AND (b.newvalue ILIKE '%registry%' ESCAPE '/') ) OR (summary ILIKE '%registry%' ESCAPE '/' OR keywords ILIKE '%registry%' ESCAPE '/' OR description ILIKE '%registry%' ESCAPE '/' OR reporter ILIKE '%registry%' ESCAPE '/' OR cc ILIKE '%registry%' ESCAPE '/' OR id ILIKE '%registry%' ESCAPE '/')
So the search query is treating the id column as text when it's an integer. We need to change
id ILIKE '%registry%' ESCAPE '/'
to:
text(id) ILIKE '%registry%' ESCAPE '/'
Attachments (0)
Change History (4)
comment:1 by , 17 years ago
Cc: | added |
---|
comment:2 by , 17 years ago
Milestone: | → 0.11 |
---|---|
Status: | new → assigned |
comment:3 by , 17 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
comment:4 by , 10 years ago
Keywords: | search postgresql 8.3 → search, postgresql, 8.3 |
---|
Note:
See TracTickets
for help on using tickets.
Fixed [6652].