Opened 19 years ago
Last modified 9 years ago
#2164 closed defect
DB error when submitting Custom Query using custom fields against Postgres — at Version 1
Reported by: | Owned by: | daniel | |
---|---|---|---|
Priority: | high | Milestone: | 0.9 |
Component: | ticket system | Version: | 0.9b2 |
Severity: | critical | Keywords: | postgresql, custom, query |
Cc: | Branch: | ||
Release Notes: | |||
API Changes: | |||
Internal Changes: |
Description (last modified by )
I added a single custom field in trac.ini called "customer". When attempting to submit a Custom Query where the "customer" field is used as a condition I get a DB error. This problem occured (with slightly different behavior) by using either of the two recommended postgresql python bindings.
Trac.ini (excerpt):
[ticket-custom] customer = select customer.label = Customer customer.options = none|Company1|Company2|Company3|Company4 customer.value = 0
Environment:
- PostgreSQL - 7.4.8
- Python - 2.3.5
- Apache - 2.0.46
- Trac - 0.9b2 (also happened with 0.9b1)
Traceback: Traceback (most recent call last): File "/opt/trac/lib/python2.3/site-packages/trac/web/modpython_frontend.py", line 206, in handler dispatch_request(mpr.path_info, mpr, env) File "/opt/trac/lib/python2.3/site-packages/trac/web/main.py", line 139, in dispatch_request dispatcher.dispatch(req) File "/opt/trac/lib/python2.3/site-packages/trac/web/main.py", line 107, in dispatch resp = chosen_handler.process_request(req) File "/opt/trac/lib/python2.3/site-packages/trac/ticket/query.py", line 393, in process_request self.display_html(req, query) File "/opt/trac/lib/python2.3/site-packages/trac/ticket/query.py", line 507, in display_html tickets = query.execute(db) File "/opt/trac/lib/python2.3/site-packages/trac/ticket/query.py", line 140, in execute cursor.execute(sql) ProgrammingError: ERROR: relation reference "customer" cannot be used in an expression SELECT t.id AS id,t.summary AS summary,t.status AS status,t.owner AS owner,t.type AS type,t.priority AS priority,t.time AS time,t.changetime AS changetime,priority.value AS priority_value,customer.value AS customer FROM ticket AS t LEFT OUTER JOIN ticket_custom AS customer ON (id=customer.ticket AND customer.name='customer') LEFT OUTER JOIN enum AS priority ON (priority.type='priority' AND priority.name=priority) WHERE COALESCE(t.status,'') IN ('new','assigned','reopened') AND COALESCE(customer,'')='' AND COALESCE(t.owner,'')!='myuser' ORDER BY COALESCE(t.priority,'')='',priority.value,t.id
Note:
See TracTickets
for help on using tickets.
(reformatting of description)