Opened 5 years ago

Closed 4 years ago

Last modified 3 years ago

#14149 closed (fixed)

LIKE clauses fail in Oracle 9.2.0.7

Reported by: JirkaV Owned by: nobody
Component: Database layer (models, ORM) Version: 1.2
Severity: Keywords: oracle
Cc: ikelly, mboersma, andrewsk, tsawyer1 Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: UI/UX:

Description

Hi,

I've recently started using Oracle backend, connecting to a database I don't own or operate. I started seeing behaviour described in #5985 (DatabaseError: ORA-01425: escape character must be character string of length 1), fixed in r7412. Since I was hitting an issue that's been apparently fixed, I started digging in history and found that the fix was reverted in r12293 (related ticket: #11017). The fact that it might reintroduce the bug is actually mentioned in the ticket.

I'm happy monkeypatching my Oracle base.py as I may as well be the only person suffering from this issue these days. Mentioning it here mostly for the record, if someone searches for it in future. I'm also happy to help testing any suggested solutions if someone has an idea that would fix #5985 without breaking #11017 again.

For the record, the database I'm connecting to is 9.2.0.7 (I know, old).

Cheers

Jirka

Attachments (1)

14149.diff (3.0 KB) - added by ikelly 4 years ago.

Download all attachments as: .zip

Change History (14)

comment:1 Changed 4 years ago by thejaswi_puthraya

  • Component changed from Uncategorized to Database layer (models, ORM)
  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset

comment:2 Changed 4 years ago by ikelly

Argh! I'm really starting to hate this issue. The underlying Oracle bug that was uncovered in #11017 is supposed to have been fixed in 9.2.0.6. I've tested it myself in 9.2.0.8 and am reasonably confident that the current implementation works there. I'm flummoxed as to what might be causing it in your scenario.

comment:3 Changed 4 years ago by ikelly

  • Cc ikelly mboersma added

comment:4 Changed 4 years ago by ikelly

  • Summary changed from Oracle backend - conflict between two tickets to LIKE clauses fail in Oracle 9.2.0.7

comment:5 Changed 4 years ago by andrewsk

  • Cc andrewsk added

comment:6 Changed 4 years ago by tsawyer1

We've just upgraded Oracle 10.2.0.4 to 10.2.0.5 and I've started encountering this bug.

I've patched my Django to use LIKEC instead of LIKE and it seems ok.

comment:7 Changed 4 years ago by tsawyer1

  • Cc tsawyer1 added

comment:8 Changed 4 years ago by tsawyer1

We have support I can raise this with Oracle if required.

Changed 4 years ago by ikelly

comment:9 Changed 4 years ago by ikelly

  • Has patch set
  • Triage Stage changed from Unreviewed to Accepted

I've uploaded a patch against trunk that should fix this issue by choosing between LIKE and LIKEC at runtime, based on the discussion at http://groups.google.com/group/django-users/browse_thread/thread/360ad7db223af4da

Since I can't test this myself other than to verify that it doesn't break anything, I would appreciate it if those involved would test that this patch fixes the problem before I check it in.

comment:10 Changed 4 years ago by ikelly

  • milestone set to 1.3

comment:11 Changed 4 years ago by ikelly

  • Resolution set to fixed
  • Status changed from new to closed

(In [15299]) Fixed #14149: Initialize the Oracle connection.operators at connection time since some systems don't seem to like the "TRANSLATE" trick.

comment:12 Changed 4 years ago by ikelly

(In [15300]) [1.2.X] Fixed #14149: Initialize the Oracle connection.operators at connection time since some systems don't seem to like the "TRANSLATE" trick.

Backport of r15299 from trunk.

comment:13 Changed 3 years ago by jacob

  • milestone 1.3 deleted

Milestone 1.3 deleted

Note: See TracTickets for help on using tickets.
Back to Top