Mike Bayer [Wed, 29 Nov 2006 22:13:58 +0000 (22:13 +0000)]
- sending a selectable to an IN no longer creates a "union" out of multiple
selects; only one selectable to an IN is allowed now (make a union yourself
if union is needed; explicit better than implicit, dont guess, etc.)
Mike Bayer [Sun, 26 Nov 2006 02:36:27 +0000 (02:36 +0000)]
- made kwargs parsing to Table strict; removed various obsoluete "redefine=True" kw's from the unit tests
- documented instance variables in ANSICompiler
- fixed [ticket:120], adds "inline_params" set to ANSICompiler which DefaultDialect picks up on when
determining defaults. added unittests to query.py
- additionally fixed up the behavior of the "values" parameter on _Insert/_Update
- more cleanup to sql/Select - more succinct organization of FROM clauses, removed silly _process_from_dict
methods and JoinMarker object
Mike Bayer [Sat, 25 Nov 2006 21:32:26 +0000 (21:32 +0000)]
- cleanup on some instance vars in Select (is_scalar, is_subquery, _froms is __froms, removed unused 'nowait', '_text', etc)
- cleaned up __repr__ on Column, AbstractTypeEngine
- added standalone intersect(_all), except(_all) functions, unit tests illustrating nesting patterns [ticket:247]
Mike Bayer [Sun, 12 Nov 2006 20:50:51 +0000 (20:50 +0000)]
- 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.
Mike Bayer [Fri, 10 Nov 2006 00:46:57 +0000 (00:46 +0000)]
- "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
- better check for endless recursion in eagerloader.process_row
Mike Bayer [Fri, 3 Nov 2006 01:17:28 +0000 (01:17 +0000)]
- 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.
- some example cleanup
Mike Bayer [Wed, 1 Nov 2006 03:30:16 +0000 (03:30 +0000)]
- 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]
Mike Bayer [Tue, 24 Oct 2006 22:19:31 +0000 (22:19 +0000)]
- SingletonConnectionPool must use the "threadlocal" pooling behavior
- 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().
Mike Bayer [Sun, 22 Oct 2006 00:24:26 +0000 (00:24 +0000)]
- attributes module and test suite moves underneath 'orm' package
- fixed table comparison example in metadata.txt
- docstrings all over the place
- renamed mapper _getattrbycolumn/_setattrbycolumn to get_attr_by_column,set_attr_by_column
- removed frommapper parameter from populate_instance(). the two operations can be performed separately
- fix to examples/adjacencytree/byroot_tree.py to fire off lazy loaders upon load, to reduce query calling
- added get(), get_by(), load() to MapperExtension
- re-implemented ExtensionOption (called by extension() function)
- redid _ExtensionCarrier to function dynamically based on __getattribute__
- added logging to attributes package, indicating the execution of a lazy callable
- going to close [ticket:329]
Mike Bayer [Thu, 19 Oct 2006 07:20:52 +0000 (07:20 +0000)]
- cleanup to the last commit
- added contains_eager() MapperOption, used in conjunction with
instances() to specify properties that should be eagerly loaded
from the result set, using their plain column names by default, or translated
given an custom row-translation function. [ticket:347].