Opened 12 years ago
Closed 11 years ago
#20647 closed Bug (duplicate)
Trying to get repr() or str() on a queryset that has been .select_for_update() causes oracle backend to throw ORA00907
| Reported by: | Owned by: | nobody | |
|---|---|---|---|
| Component: | Database layer (models, ORM) | Version: | 1.5 | 
| Severity: | Normal | Keywords: | oracle | 
| Cc: | Triage Stage: | Accepted | |
| Has patch: | no | Needs documentation: | no | 
| Needs tests: | no | Patch needs improvement: | no | 
| Easy pickings: | no | UI/UX: | no | 
Description (last modified by )
Doing anything that would get a string representation of any QuerySet that has been selected for update (.select_of_update()) on oracle backend causes the following stacktrace
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/python2.6/site-packages/django/db/models/query.py", line 77, in __repr__ data = list(self[:REPR_OUTPUT_SIZE + 1]) File "/usr/lib/python2.6/site-packages/django/db/models/query.py", line 92, in __len__ self._result_cache.extend(self._iter) File "/usr/lib/python2.6/site-packages/django/db/models/query.py", line 301, in iterator for row in compiler.results_iter(): File "/usr/lib/python2.6/site-packages/django/db/models/sql/compiler.py", line 775, in results_iter for rows in self.execute_sql(MULTI): File "/usr/lib/python2.6/site-packages/django/db/models/sql/compiler.py", line 840, in execute_sql cursor.execute(sql, params) File "/usr/lib/python2.6/site-packages/django/db/backends/oracle/base.py", line 717, in execute six.reraise(utils.DatabaseError, utils.DatabaseError(*tuple(e.args)), sys.exc_info()[2]) File "/usr/lib/python2.6/site-packages/django/db/backends/oracle/base.py", line 710, in execute return self.cursor.execute(query, self._param_generator(params)) django.db.utils.DatabaseError: ORA-00907: missing right parenthesis
Attachments (1)
Change History (3)
by , 12 years ago
| Attachment: | 20647-test.diff added | 
|---|
comment:1 by , 12 years ago
| Triage Stage: | Unreviewed → Accepted | 
|---|
comment:2 by , 11 years ago
| Description: | modified (diff) | 
|---|---|
| Resolution: | → duplicate | 
| Status: | new → closed | 
As can be seen in the stack trace, this is because the query is sliced for presentation -- which means this is really a duplicate of the more focused #23147.
The test case should be added when the problem is solved, though.
  Note:
 See   TracTickets
 for help on using tickets.
    
Reproduced with the attached regression test.