hello again !

Just a week and a half ago, we put out version 0.6.2.   Wouldn't you know it, 
the very next day someone came along and reported an issue that wasn't hard to 
fix but I felt really, really had to go out.   The issue was #1845, any dirty 
object in a flush that had a many-to-many relationship would unconditionally 
load the collection fully.  Many-to-manys of course being subject to being very 
large collections in one direction quite often.  Yikes !   My apologies to 
anyone who's been putting up with that since 0.6.0.   So I'd recommend everyone 
using many-to-many relationships should upgrade.

Another biggish issue was that the auto-reconnect support wasn't working as 
intended with MySQL.   It was still "working" since MySQL-Python as well as 
OurSQL do a reconnect in any case.   But now our own pool-dispose-recreate 
phase should be kicking in as it does with other platforms.

A handful of other fixes got in too, quite a bit for just nine days.   

Download SQLAlchemy 0.6.3 at:

http://www.sqlalchemy.org/download.html

0.6.3
=====
- orm
  - Removed errant many-to-many load in unitofwork 
    which triggered unnecessarily on expired/unloaded 
    collections. This load now takes place only if 
    passive_updates is False and the parent primary 
    key has changed, or if passive_deletes is False 
    and a delete of the parent has occurred.
    [ticket:1845]

  - Column-entities (i.e. query(Foo.id)) copy their 
    state more fully when queries are derived from 
    themselves + a selectable (i.e. from_self(), 
    union(), etc.), so that join() and such have the 
    correct state to work from.  [ticket:1853]
    
  - Fixed bug where Query.join() would fail if
    querying a non-ORM column then joining without
    an on clause when a FROM clause is already
    present, now raises a checked exception the 
    same way it does when the clause is not
    present.  [ticket:1853]

  - Improved the check for an "unmapped class", 
    including the case where the superclass is mapped
    but the subclass is not.  Any attempts to access
    cls._sa_class_manager.mapper now raise 
    UnmappedClassError().  [ticket:1142]
    
  - Added "column_descriptions" accessor to Query,
    returns a list of dictionaries containing
    naming/typing information about the entities
    the Query will return.  Can be helpful for 
    building GUIs on top of ORM queries.

- mysql

  - The _extract_error_code() method now works 
    correctly with each MySQL dialect (
    MySQL-python, OurSQL, MySQL-Connector-Python,
    PyODBC).  Previously,
    the reconnect logic would fail for OperationalError
    conditions, however since MySQLdb and OurSQL
    have their own reconnect feature, there was no 
    symptom for these drivers here unless one 
    watched the logs.  [ticket:1848]

- oracle
  - More tweaks to cx_oracle Decimal handling. 
    "Ambiguous" numerics with no decimal place
    are coerced to int at the connection handler 
    level.  The advantage here is that ints
    come back as ints without SQLA type 
    objects being involved and without needless
    conversion to Decimal first.
    
    Unfortunately, some exotic subquery cases 
    can even see different types between 
    individual result rows, so the Numeric 
    handler, when instructed to return Decimal,
    can't take full advantage of "native decimal"
    mode and must run isinstance() on every value
    to check if its Decimal already. Reopen of
    [ticket:1840]



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

Reply via email to