Mike Bayer [Sun, 12 Feb 2006 06:32:11 +0000 (06:32 +0000)]
cleanup and organization of code mostly in properties, making SyncRules clearer,
also "foreignkey" property can be a list, particularly for a self-referential table with a multi-column join condition
Mike Bayer [Sun, 12 Feb 2006 06:29:57 +0000 (06:29 +0000)]
slight glitch when the same clause is compiled repeatedly and contains redundant bind parameters...this fix prevents the binds from stepping on each other....
Mike Bayer [Sat, 11 Feb 2006 20:50:41 +0000 (20:50 +0000)]
streamlined engine.schemagenerator and engine.schemadropper methodology
added support for creating PassiveDefault (i.e. regular DEFAULT) on table columns
postgres can reflect default values via information_schema
added unittests for PassiveDefault values getting created, inserted, coming back in result sets
Mike Bayer [Fri, 10 Feb 2006 23:46:42 +0000 (23:46 +0000)]
objectstore refactored to have more flexible scopes for UnitOfWork
central access point is now a Session object which maintains different
kinds of scopes for collections of one or more UnitOfWork objects
individual object instances get bound to a specific Session
Mike Bayer [Thu, 9 Feb 2006 00:33:26 +0000 (00:33 +0000)]
deprecated "selectalias" argument on eager loader, do use_alias=True
"eager alias" flag will propigate to child eager loaders so the full query comes
out OK. mappers/properties have overhauled "copy" methodology. mappers
are no longer "singleton" and no longer have elaborate "hash_key" methods - there
is a primary mapper associated with a class which is done via direct dictionary
relationship, and the options() method on mapper does its own lighter-weight caching
of created mappers. the unitofwork does extra work with the mappers it receives
to insure its dealing with "the primary" mapper, so that properties can be more liberal
about which mapper they reference (i.e. not the primary one).
options() works better but still could use a looking-at to see that
its not wasteful. simplified mapper() method in __init__.
Mike Bayer [Tue, 7 Feb 2006 02:54:26 +0000 (02:54 +0000)]
trying to get mappers to support having versions against different tables for the same class,
that dont affect the original class mapper and create objects with the correct identity key
support in EagerLoader to better handle "selectalias" when the eager mapper hits another eager mapper, etc
Mike Bayer [Sun, 5 Feb 2006 23:45:07 +0000 (23:45 +0000)]
table supports per-engine-type options, ansisql allows engines
to add a "post table create" string
mysql gets mysql_engine argument
InnoDB set as default in engines test
Mike Bayer [Sun, 5 Feb 2006 17:04:37 +0000 (17:04 +0000)]
got oracle LIMIT/OFFSET to use row_number() syntax
sql: ColumnClause will use the given name when proxying itself (used for the "ora_rn" label)
ansisql: When adding on ORDER_BY, GROUP_BY, etc. clauses, if there is no string for the column list,
then dont add the clause (this allows oracle to strip out the ORDER BY)
Oracle is modifying the select statement, which is not ideal - should fix that
Mike Bayer [Sun, 5 Feb 2006 00:19:14 +0000 (00:19 +0000)]
started PassiveDefault, which is a "database-side" default. mapper will go
fetch the most recently inserted row if a table has PassiveDefault's set on it
Mike Bayer [Sat, 4 Feb 2006 17:24:12 +0000 (17:24 +0000)]
added ISchema object to engine/information_schema, provides somewhat generic information_schema access for db's that support it, i.e. postgres, mysql 5
Mike Bayer [Sat, 4 Feb 2006 17:05:09 +0000 (17:05 +0000)]
one-to-one support:
rolled the BackrefExtensions into a single GenericBackrefExtension to handle
all combinations of list/nonlist properties (such as one-to-one)
tweak to properties.py which may receive "None" as "added_items()", in the case of a scalar property
instead of a list
PropHistory masquerades as a List on the setattr/append delattr/remove side to make one-to-one's automatically
work
Robert Leftwich [Sun, 29 Jan 2006 12:30:32 +0000 (12:30 +0000)]
Reworked RowProxy to restore column order preservation and to remove some dictionary-like behaviour that was unnecessary and caused breakage in existing code. Added tests for column preservation.
Robert Leftwich [Sat, 28 Jan 2006 22:24:16 +0000 (22:24 +0000)]
RowProxy changes - added keys(), used keys() to add more dictionary-like behaviour (values(), iteritems(), iterkeys(), etc). Made parent and row private. Modified tests that used RowProxy.row to use values().
Mike Bayer [Thu, 26 Jan 2006 00:27:14 +0000 (00:27 +0000)]
refactoring of objectstore to handle cleaning up after itself with less
instruction from properties/mapper
objectstore gets an assertion for appending a deleted item
mapper has fix for inheritance
mapper selectone() etc. set "limit=1"
Mike Bayer [Sat, 21 Jan 2006 05:41:16 +0000 (05:41 +0000)]
adjustment to dependencies+childtasks attached to circular task - they go
on just the lead task instead of each per-object task.
more tweaks to dumper output
Mike Bayer [Fri, 20 Jan 2006 03:49:35 +0000 (03:49 +0000)]
when breaking a circular task into child tasks, propigate the child tasks and the non-self-referring dependencies of the lead task to each child task...else they dont happen !
Mike Bayer [Fri, 20 Jan 2006 00:42:07 +0000 (00:42 +0000)]
added explicit bind parameters and column type maps to text type
text type also parses :<string> into bind param objects
bind parameters convert their incoming type using engine.type_descriptor() methods
types.adapt_type() adjusted to not do extra work with incoming types, since the bind
param change will cause it to be called a lot more
added tests to new text type stuff, bind params, fixed some type tests
added basic docs for using text with binde params
Mike Bayer [Thu, 19 Jan 2006 01:43:26 +0000 (01:43 +0000)]
implemented better hash_key on select allowing proper comparisons, implemented
hash_key on all clause objects
added hash_key test to select
util gets extra threadlocal functions and the recursionstack object