Great tool, and much appreciated.
Thank you once again for SA, Mike.
On 11/12/06, Michael Bayer <[EMAIL PROTECTED]> wrote:
Hey gang -
I put 0.3.1 out. this is a bugfix release, which includes some fairly
important ORM fixes to the newly reworked eager loading and query
options, as well as some fixes regarding flushing of very involved
self-referential or circularly-dependent object structures.
Another interesting change which I am puzzled why it hadn't come up on
the mailing list more often is that the flush process will more
aggressively load in dependent objects when the lead object is being
deleted - this is to insure that constraint violations don't occur even
if a bunch of child objects needed to be lazy-loaded so that they can
be updated/deleted as well. The feature can be disabled using the
"passive_deletes" flag, which you may want to use if your database
already has ON DELETE CASCADE rules set up.
This release includes code coverage built in to the unit test framework
using the coverage.py module, which can be enabled by specifying the
--coverage flag to any unittest script. Full instructions are in the
unittest README.
0.3.1
- Engine/Pool:
- some new Pool utility classes, updated docs
- "use_threadlocal" on Pool defaults to False (same as create_engine)
- fixed direct execution of Compiled objects
- create_engine() reworked to be strict about incoming **kwargs. all
keyword
arguments must be consumed by one of the dialect, connection pool, and
engine
constructors, else a TypeError is thrown which describes the full set
of
invalid kwargs in relation to the selected dialect/pool/engine
configuration.
- Databases/Types:
- MySQL catches exception on "describe" and reports as
NoSuchTableError
- further fixes to sqlite booleans, weren't working as defaults
- fix to postgres sequence quoting when using schemas
- ORM:
- the "delete" cascade will load in all child objects, if they were
not
loaded already. this can be turned off (i.e. the old behavior) by
setting
passive_deletes=True on a relation().
- adjustments to reworked eager query generation to not fail on
circular
eager-loaded relationships (like backrefs)
- fixed bug where eagerload() (nor lazyload()) option didn't properly
instruct the Query whether or not to use "nesting" when producing a
LIMIT query.
- fixed bug in circular dependency sorting at flush time; if object A
contained a cyclical many-to-one relationship to object B, and object B
was just attached to object A, *but* object B itself wasnt changed,
the many-to-one synchronize of B's primary key attribute to A's foreign
key
attribute wouldnt occur. [ticket:360]
- implemented from_obj argument for query.count, improves count
function
on selectresults [ticket:325]
- added an assertion within the "cascade" step of ORM relationships
to check
that the class of object attached to a parent object is appropriate
(i.e. if A.items stores B objects, raise an error if a C is appended to
A.items)
- new extension sqlalchemy.ext.associationproxy, provides transparent
"association object" mappings. new example
examples/association/proxied_association.py illustrates.
- improvement to single table inheritance to load full hierarchies
beneath
the target class
- fix to subtle condition in topological sort where a node could
appear twice,
for [ticket:362]
- additional rework to topological sort, refactoring, for
[ticket:365]
- "delete-orphan" for a certain type can be set on more than one
parent class;
the instance is an "orphan" only if its not attached to *any* of those
parents
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---
