Hi,
In my quest to solve Oracle bugs, I found the function datetime_cast_sql() in
the Oracle backend. It causes a problem these days, because it gets in the way
of querying a date as string (mydate__startswith='2005'). It is a function
that is defined as a no-op in the base backend, and overridden, among core
backends, only in Oracle. Removing the override, currently, just makes one
more test pass, and if we decide to remove it from the base, code in several
other places may become simpler (will not need to special-case datetime
values).
I was able to track the history of this function, into the mists of time. In
the beginning, code to cast strings into dates for Oracle was mixed in with
the general querying code. Then came the boulder-oracle-sprint of 2006-2007,
where, at some point, that piece of code was factored out to a module-level
function get_datetime_cast_sql(), which was defined in all backends as a no-op
except Oracle; this was later refactored into the DatabaseOperations class we
know today.
However, at about the same time that the DatabaseOperations was created, the
Oracle backend made another change: It started setting the session's datetime
format on login. This, as far as I understand, makes the special casting
operation redundant -- and current test results support my understanding.
So -- I want to fix, now, the thing that was, well, not broken, but bent, in
2007. And my question to you -- especially, those of you who participated in
the boulder sprint -- can you think of any reason why I shouldn't?
Thanks,
Shai.
PS: In the mainline commit history, the entire boulder-oracle-sprint shows up
as one commit, but its detailed history is in the attic/boulder-oracle-sprint
branch.
--
You received this message because you are subscribed to the Google Groups
"Django developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-developers?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.