Hi,
For the record, I'm still here :)
Daniel, thanks for pushing this forward.
The main problem is indeed a clash between performance on integers and
accuracy on decimals, that is ultimately the result of cx_Oracle's
limitations: cx_Oracle does not return Python Decimals, only floats. To get
better precision than that of Python floats, it offers a global flag that makes
it return all numbers as strings, and then Python gets to decide what to do
with the number. Django sets this flag.
At the time of that old discussion, I was trying to solve not just the
performance issue, but some related API issues as well, where, in fact, I had
gotten things quite wrong. Having them right, and going to solve only the
perofrmance issue, I think we can make progress.
Another interesting direction, which could enable us to get the performance
improvements in Django without compromising precision (so it is available to
everyone by default), is to alleviate some of cx_Oracle limitations; but that
requires C programming. If you're up to that, talk to me (ref:
http://sourceforge.net/p/cx-oracle/mailman/message/32194748/ )
Shai.