In 0.6, dialects.oracle.base.NUMBER derives from types.Numeric and
types.Integer. In 0.5.3, I think the equivalent is
databases.oracle.OracleNumeric, which just derives from types.Numeric.
There's a separate databases.oracle.OracleInteger which just derives
from types.Integer.

This new behavior breaks my code, because I have something which is
the equivalent of:

if isinstance(t, types.Integer):
  v = int(val)
elif isinstance(t, types.Numeric):
  v = Decimal(val)

(There's other stuff going on in this code, but this illustrates the
problem. Ignore typos, if any. The real code is table driven so
modifying the individual tests isn't so easy.)

t is the type of an Oracle column I'm trying to insert into, and val
is a string. In 0.5, this code works, but in 0.6 all of the numeric
columns match the first isinstance call, even ones with a specified
scale.

This isn't so much of a big deal to me, because in this specific case
I can just convert everything to Decimal and it will all just work. I
mention it here because it took me several days to diagnose and
understand the problem, so no doubt others will have this problem as
well.

Eric.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to