0.4.5
=====
- orm
- - added a more aggressive check for "uncompiled mappers",
+ - Added a more aggressive check for "uncompiled mappers",
helps particularly with declarative layer [ticket:995]
-
- - Added comparable_property(), adds query Comparator behavior
- to regular, unmanaged Python properties
- - When attributes are expired on a pending instance, an error
- will not be raised when the "refresh" action is triggered
- and returns no result
+ - Added comparable_property(), adds query Comparator
+ behavior to regular, unmanaged Python properties
+
+ - When attributes are expired on a pending instance, an
+ error will not be raised when the "refresh" action is
+ triggered and returns no result
- - Fixed/covered case when using a False value as a polymorphic
- discriminator
+ - Fixed/covered case when using a False value as a
+ polymorphic discriminator
- Fixed bug which was preventing synonym() attributes from
being used with inheritance
-
- - fixed SQL function truncation of trailing underscores
+
+ - Fixed SQL function truncation of trailing underscores
[ticket:996]
-
+
- Session.execute can now find binds from metadata
- - adjusted the definition of "self-referential" to be
- any two mappers with a common parent (this affects
- whether or not aliased=True is required when joining
- with Query).
+ - Adjusted the definition of "self-referential" to be any
+ two mappers with a common parent (this affects whether or
+ not aliased=True is required when joining with Query).
- - made some fixes to the "from_joinpoint" argument to
- query.join() so that if the previous join was aliased
- and this one isn't, the join still happens successfully.
-
- - assorted "cascade deletes" fixes:
- - Fixed "cascade delete" operation of dynamic
- relations, which had only been implemented for
- foreign-key nulling behavior in 0.4.2 and not actual
- cascading deletes [ticket:895]
-
- - delete cascade without delete-orphan cascade on a
+ - Made some fixes to the "from_joinpoint" argument to
+ query.join() so that if the previous join was aliased and
+ this one isn't, the join still happens successfully.
+
+ - Assorted "cascade deletes" fixes:
+ - Fixed "cascade delete" operation of dynamic relations,
+ which had only been implemented for foreign-key
+ nulling behavior in 0.4.2 and not actual cascading
+ deletes [ticket:895]
+
+ - Delete cascade without delete-orphan cascade on a
many-to-one will not delete orphans which were
disconnected from the parent before session.delete()
is called on the parent (one-to-many already had
this).
-
- - delete cascade with delete-orphan will delete
- orphans whether or not it remains attached to its
- also-deleted parent.
-
+
+ - Delete cascade with delete-orphan will delete orphans
+ whether or not it remains attached to its also-deleted
+ parent.
+
- fixed order_by calculation in Query to properly alias
mapper-config'ed order_by when using select_from()
- sql
- 'name' is no longer a required constructor argument for
- Column(). It (and .key) may now be deferred until the column
- is added to a Table.
+ Column(). It (and .key) may now be deferred until the
+ column is added to a Table.
+
+ - like(), ilike(), contains(), startswith(), endswith() take
+ an optional keyword argument "escape=<somestring>", which
+ is set as the escape character using the syntax "x LIKE y
+ ESCAPE '<somestring>'" [ticket:993], [ticket:791]
- - like(), ilike(), contains(), startswith(), endswith()
- take an optional keyword argument "escape=<somestring>",
- which is set as the escape character using the syntax
- "x LIKE y ESCAPE '<somestring>'" [ticket:993],
- [ticket:791]
+ - random() is now a generic sql function and will compile to
+ the database's random implementation, if any.
- oracle
- - the "owner" keyword on Table is now deprecated, and is
- exactly synonymous with the "schema" keyword. Tables
- can now be reflected with alternate "owner" attributes,
+ - The "owner" keyword on Table is now deprecated, and is
+ exactly synonymous with the "schema" keyword. Tables can
+ now be reflected with alternate "owner" attributes,
explicitly stated on the Table object or not using
"schema".
- - all of the "magic" searching for synonyms, DBLINKs etc.
- during table reflection
- are disabled by default unless you specify
- "oracle_resolve_synonyms=True" on the Table object.
- Resolving synonyms necessarily leads to some messy
- guessing which we'd rather leave off by default.
- When the flag is set, tables and related tables
- will be resolved against synonyms in all cases, meaning
- if a synonym exists for a particular table, reflection
- will use it when reflecting related tables. This is
- stickier behavior than before which is why it's
- off by default.
+ - All of the "magic" searching for synonyms, DBLINKs etc.
+ during table reflection are disabled by default unless you
+ specify "oracle_resolve_synonyms=True" on the Table
+ object. Resolving synonyms necessarily leads to some
+ messy guessing which we'd rather leave off by default.
+ When the flag is set, tables and related tables will be
+ resolved against synonyms in all cases, meaning if a
+ synonym exists for a particular table, reflection will use
+ it when reflecting related tables. This is stickier
+ behavior than before which is why it's off by default.
- extensions
- The "synonym" function is now directly usable with
"declarative". Pass in the decorated property using the
"descriptor" keyword argument, e.g.: somekey =
synonym('_somekey', descriptor=property(g, s))
-
- - the "deferred" function is usable with "declarative".
+
+ - The "deferred" function is usable with "declarative".
Simplest usage is to declare deferred and Column together,
- e.g.: data = deferred(Column(Text))
-
+ e.g.: data = deferred(Column(Text))
+
- Declarative also gained @synonym_for(...) and
@comparable_using(...), front-ends for synonym and
comparable_property.
-
+
- Improvements to mapper compilation when using declarative;
already-compiled mappers will still trigger compiles of
other uncompiled mappers when used [ticket:995]
-
+
- Declarative will complete setup for Columns lacking names,
allows a more DRY syntax.
- inheritance in declarative can be disabled when sending
"inherits=None" to __mapper_args__.
-
+
0.4.4
------
- sql