Modify ↓
Opened 12 years ago
Closed 12 years ago
#11204 closed defect (worksforme)
SQL error on custom query: column reference "id" is ambiguous
| Reported by: | Owned by: | ||
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | query system | Version: | |
| Severity: | normal | Keywords: | |
| Cc: | ebouaziz@… | Branch: | |
| Release Notes: | |||
| API Changes: | |||
| Internal Changes: | |||
Description
Trac version 1.1.2dev, Python 2.7.3, PostgreSQL 9.1, psycopg2 2.4.5
In the View tickets tab, run a custom query with a custom field in the filters, then in the resulting table, click on a row name on top of the row to order the results.
I get this error:
ProgrammingError: column reference "id" is ambiguous LINE 7: ...'reopened') AND (COALESCE(c."soc",'')='xyz')) OR id in (692... ^
In the logs, I get:
2013-06-12 19:29:16,924 Trac[main] ERROR: Internal Server Error:.
Traceback (most recent call last):
File "/local/engine/trac/trac/web/main.py", line 498, in _dispatch_request
dispatcher.dispatch(req)
File "/local/engine/trac/trac/web/main.py", line 214, in dispatch
resp = chosen_handler.process_request(req)
File "/local/engine/trac/trac/ticket/query.py", line 963, in process_request
return self.display_html(req, query)
File "/local/engine/trac/trac/ticket/query.py", line 1069, in display_html
tickets = query.execute(req, cached_ids=orig_list)
File "/local/engine/trac/trac/ticket/query.py", line 303, in execute
self.num_items = self._count(sql, args)
File "/local/engine/trac/trac/ticket/query.py", line 284, in _count
% sql, args)[0][0]
File "/local/engine/trac/trac/db/api.py", line 122, in execute
return db.execute(query, params)
File "/local/engine/trac/trac/db/util.py", line 121, in execute
cursor.execute(query, params)
File "/local/engine/trac/trac/db/util.py", line 65, in execute
return self.cursor.execute(sql_escape_percent(sql), args)
ProgrammingError: column reference "id" is ambiguous
LINE 7: ...'reopened') AND (COALESCE(c."soc",'')='xyz')) OR id in (692...
^
ProgrammingError: column reference "id" is ambiguous
The IterableCursor object is not instanciated with a logger, so I did a ugly hack and got the offending request and args:
SELECT COUNT(*) FROM (SELECT t.id AS id,t.summary AS summary,t.status AS status,t.type AS type,t.priority AS priority,t.milestone AS milestone,t.component AS component,t.time AS time,t.changetime AS changetime,priority.value AS priority_
FROM ticket AS t
LEFT JOIN (SELECT id,
(SELECT c.value FROM ticket_custom c WHERE c.ticket=t.id AND c.name='soc') AS "soc"
FROM ticket t) AS c ON (c.id=t.id)
LEFT OUTER JOIN enum AS priority ON (priority.type='priority' AND priority.name=priority)
WHERE (COALESCE(t.status,'') IN (%s,%s,%s) AND (COALESCE(c."soc",'')=%s)) OR id in (7013,6876,7029,3021,6875,7065,7824,6759,3326,4772)
ORDER BY COALESCE(t.component,'')='' DESC,t.component DESC,t.id) AS x
[u'assigned', u'new', u'reopened', u'xyz']
I don't know enough SQL to understand what is wrong here.
Attachments (0)
Change History (2)
comment:1 by , 12 years ago
comment:2 by , 12 years ago
| Resolution: | → worksforme |
|---|---|
| Status: | new → closed |
Please update to latest trunk.
Note:
See TracTickets
for help on using tickets.



It seems to be the same as comment:ticket:11140:4. The issue has been fixed in [11787].