Mike Bayer [Sat, 18 Feb 2006 20:33:20 +0000 (20:33 +0000)]
added indexes to schema/ansisql/engine
slightly different index syntax for mysql
fixed mysql Time type to convert from a timedelta to time
tweaks to date unit tests for mysql
Mike Bayer [Thu, 16 Feb 2006 06:13:16 +0000 (06:13 +0000)]
Join object wasnt exporting foreign keys correctly
compile_synchronizers in PropertyLoader needed to take into account the full list of tables for each mapper when looking for synchronization rules, not just primary table
Mike Bayer [Mon, 13 Feb 2006 00:51:37 +0000 (00:51 +0000)]
added 'post_update' attribute to PropertyLoader, means to defer processing of this property until after the object has been saved, and then to re-sync and force an update. used to break otherwise intra-row cycles. added for "many-to-one" so far.
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