Mike Bayer [Mon, 19 Apr 2010 21:35:16 +0000 (17:35 -0400)]
- Added a check for cx_oracle versions lower than version 5,
in which case the incompatible "output type handler" won't
be used. This will impact decimal accuracy and some
unicode handling issues. [ticket:1775]
Mike Bayer [Fri, 16 Apr 2010 21:01:50 +0000 (17:01 -0400)]
when raising about columns not present, include the name of the property it's trying to configure,
to eliminate confusion over attributes not properly placed inside of a relationship().
Mike Bayer [Thu, 15 Apr 2010 23:05:41 +0000 (19:05 -0400)]
- Added get_pk_constraint() to reflection.Inspector, similar
to get_primary_keys() except returns a dict that includes the
name of the constraint, for supported backends (PG so far).
[ticket:1769]
- Postgresql reflects the name of primary key constraints,
if one exists. [ticket:1769]
Mike Bayer [Thu, 15 Apr 2010 04:13:48 +0000 (00:13 -0400)]
- beef up the --reversetop test option to embed RandomSet throughout the ORM
- with m2m we have to go back to the previous approach of having both sides of
the DP fire off, tracking each pair of objects. history may not be consistently present
in one side or the other
- this revealed a whole lot of issues with self-referential m2m, which are fixed
Mike Bayer [Tue, 13 Apr 2010 00:20:50 +0000 (20:20 -0400)]
further testing reveals that cursor.rowcount is only called with update/delete and DDL,
and also that FB's cursor.rowcount is a little expensive, but not dramatically.
added a test to ensure cursor.rowcount is only called on update/delete.
the current default for firebird enable_rowcount is now True, leaving all the
options to turn it off etc..
Mike Bayer [Sun, 11 Apr 2010 20:37:49 +0000 (16:37 -0400)]
- The functionality of result.rowcount is now disabled
by default, and can be re-enabled using the 'enable_rowcount'
flag with create_engine(), as well as the 'enable_rowcount'
execution context flag on a per-execute basis. This because
cursor.rowcount requires cursor access (can't be evaluated
lazily since the result auto-closes) and also incurs an
expensive round-trip.
Mike Bayer [Sun, 11 Apr 2010 19:37:20 +0000 (15:37 -0400)]
- added a test for the solution in [ticket:1757].
- this does imply that a lot of the "test the RowProxy" tests in sql/test_query might be better off in engine/test_execute or perhaps engine/test_resultproxy
Mike Bayer [Sun, 11 Apr 2010 16:03:41 +0000 (12:03 -0400)]
- somejoin.select(fold_equivalents=True) is no longer
deprecated, and will eventually be rolled into a more
comprehensive version of the feature for [ticket:1729].
Mike Bayer [Sat, 10 Apr 2010 23:21:54 +0000 (19:21 -0400)]
- starting to groom the branch for its inclusion
- one-to-many relationships now maintain a list of positive
parent-child associations within the flush, preventing
previous parents marked as deleted from cascading a
delete or NULL foreign key set on those child objects,
despite the end-user not removing the child from the old
association. [ticket:1764]
- re-established Preprocess as unique on their arguments,
as they were definitely duped in inheritance scenarios
- added a "memo" feature to UOWTransaction which represents the usual
pattern of using the .attributes collection
- added the test case from [ticket:1081] into perf/
Mike Bayer [Thu, 8 Apr 2010 22:21:02 +0000 (18:21 -0400)]
starting to arrange things such that unneeded executors aren't getting
pulled into the unit of work at all. this involves dancing around lists
of states, seeing if child objects exist, not adding excessive callcounts
while doing that, etc.
Mike Bayer [Thu, 8 Apr 2010 18:15:11 +0000 (14:15 -0400)]
we can load this sum ahead of time, and if there is none, we dont need a per-state/proc for this at all.
this greatly reduces unnecessary crap in the UOW for complex models.
Mike Bayer [Thu, 8 Apr 2010 01:00:16 +0000 (21:00 -0400)]
- make it exceedlingly obvious that all topological/unitofwork code is
being rewritten, and nothing here should be consulted for any
future activity.
- underscore current topological methods as their API behavior
is changing, possibly in 0.6.1 if [ticket:1742] remains on track
Mike Bayer [Wed, 7 Apr 2010 19:20:20 +0000 (15:20 -0400)]
- ah. oursql didn't have "extra steps" here, the previous system within execution_options()
used by oursql would generate a proxied connection from within the dialect.initialize() phase. the new
clone system bypasses that.
Mike Bayer [Wed, 7 Apr 2010 17:59:18 +0000 (13:59 -0400)]
- Added new 'compiled_cache' execution option. A dictionary
where Compiled objects will be cached when the Connection
compiles a clause expression into a dialect- and parameter-
specific Compiled object. It is the user's responsibility to
manage the size of this dictionary, which will have keys
corresponding to the dialect, clause element, the column
names within the VALUES or SET clause of an INSERT or UPDATE,
as well as the "batch" mode for an INSERT or UPDATE statement.
Mike Bayer [Wed, 7 Apr 2010 17:42:31 +0000 (13:42 -0400)]
- Fixed bug in execution_options() feature whereby the existing
Transaction and other state information from the parent
connection would not be propagated to the sub-connection.
Mike Bayer [Wed, 7 Apr 2010 16:30:02 +0000 (12:30 -0400)]
- dict_ becomes explicit on _get_state_attr_by_column, _set_state_attr_by_column, others,
to reduce on expensive state.dict calls.
- internal getattr(), setattr(), getcommitted() methods
on ColumnProperty, CompositeProperty, RelationshipProperty
have been underscored, signature has changed.
Mike Bayer [Tue, 6 Apr 2010 22:53:51 +0000 (18:53 -0400)]
- Postgresql now reflects sequence names associated with
SERIAL columns correctly, after the name of of the sequence
has been changed. Thanks to Kumar McMillan for the patch.
[ticket:1071]
Mike Bayer [Tue, 6 Apr 2010 22:28:40 +0000 (18:28 -0400)]
- added missing coverage for self-referential many-to-many flushes
- some other areas where per-state deps are called and an empty result returned
are still lacking coverage.