Thanks very much for the pointer, Ramiro. It was indeed changes to the "extra_select" QS param that caused Oracle problems, and I've taken a similar approach to yours in fixing it.
Rather than flag "row_number()" as an extra_select parameter (and then try to clean up after it later), Oracle now just uses the default set_limits and clear_limits methods and does all extra query munging in its as_sql() method. And instead of doing an outer SELECT *, we SELECT specific columns (or aliases) by name and ignore our row_number() column, which is only used in the WHERE clause. This seems to fix most of the failures. I'll check it in soon when I'm sure it's not causing any new problems. On Aug 18, 2:20 pm, "Ramiro Morales" <[EMAIL PROTECTED]> wrote: > Matt, > > On Mon, Aug 18, 2008 at 4:04 PM, Matt Boersma <[EMAIL PROTECTED]> wrote: > > > Here is Leo Soto's buildbot, so you can see what I'm talking about: > >http://certenium.ingenium.cl:8080/hudson/job/django-trunk/ > > > I'll do my best to fix some of these as time permits, but I'm hoping > > others will pull together to rectify this quickly. Thanks! > > Some of these failures might be related to the changes in the `extra_select` > (and `extra_select_params` that got deleted) Query class attributes introduced > in r8426 because, as you know, the Oracle backend (and the MS SQL Server > backends) uses `extra_select` to insert a synthetic placeholder needed to use > the ORDER_BY function to emulate LIMIT+OFFSET. > > FWIW, in my work on a MS SQL Server backed I circumvented the bulk of the > problem by accident (actually, because this is one of the things that allowed > me to get a whole bunch of the Django test suite to start passing on SQL > Server 2005 whose SQL dialect also has the ORDER_BY function) some time ago by > migrating away from using `extra_select` to using the `ordering_aliases` > attribute to handle the placeholder by appending to it: > > http://code.google.com/p/django-pyodbc/source/browse/branches/ramiro/... > > Later on during the lifetime of the query, the `execute_sql()` Query method > will take care of ignoring that alias. > > This also allowed me to do away with the `set_limits()` and `clear_limit()` > custom Query class methods. > > I don't know if this is also possible for the Oracle backend, hopefully it is. > > HTH, > > -- > Ramiro Morales --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to django-developers@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-developers?hl=en -~----------~----~----~----~------~----~------~--~---