Mike Bayer [Tue, 31 Jul 2007 22:54:07 +0000 (22:54 +0000)]
- commented out auto-rollback of attributes for now, added [ticket:705] with the recipe
- added "drop_all()" at the start of all unittest runs; see if that helps some of the carwrecks we have
Mike Bayer [Tue, 31 Jul 2007 20:12:22 +0000 (20:12 +0000)]
re-jiggered (yes, thats a technical term) DeprecationWarning into SADeprecationWarning so that we can set the "once" filter across all SQLAlchemy-originating DeprecationWarnings.
- restored old assign_mapper monkey patched query methods but with two differences:
* added a deprecation warning
* check if a method with that name already exist in the class
- more foolproof deprecation warning for scalar kwarg
Jason Kirtland [Tue, 31 Jul 2007 00:19:23 +0000 (00:19 +0000)]
MetaData can now reflect() all tables in the database en-masse thanks to table_names().
table_names changed to accept an explicit connection
ThreadLocalMetaData constructor now takes no arguments. If case_sensitive is needed in a multi-bind context, move it to Table or subclass TLMD to force it.
Banished **kwargs from MetaData
Lots of class doc and docstring improvements around MetaData and TLMD.
Some engine->bind internal naming updates + reorg in schema.
MySQL table_names now return Unicode. (Also, a unicode reflect() unit test is needed.)
Mike Bayer [Sun, 29 Jul 2007 20:30:32 +0000 (20:30 +0000)]
- added Session constructor which turns autoflush/transactional on
- Session is used by unitofwork unit test now as well as session.py tests
- fixes to table/schema reflection broken last night
- doc updates
- other unittest fixes
Mike Bayer [Sun, 29 Jul 2007 17:39:37 +0000 (17:39 +0000)]
- removed import of old sqlite module [ticket:654]
- removed sqlite version warning, all tests pass 100% with py2.5's older sqlite lib
- fixed dynamic test for py2.5
Jason Kirtland [Sun, 29 Jul 2007 16:13:23 +0000 (16:13 +0000)]
Big MySQL dialect update, mostly efficiency and style.
Added TINYINT [ticket:691]- whoa, how did that one go missing for so long?
Added a charset-fixing pool listener. The driver-level option doesn't help everyone with this one.
New reflector code not quite done and omiited from this commit.
Mike Bayer [Sun, 29 Jul 2007 00:42:49 +0000 (00:42 +0000)]
- removed auto_close_cursors and disallow_open_cursors arguments from Pool;
reduces overhead as cursors are normally closed by ResultProxy and Connection.
Mike Bayer [Sat, 28 Jul 2007 05:16:03 +0000 (05:16 +0000)]
- trimming down redundancy in lazyloader code
- fixups to ORM test fixture code
- fixup to dynamic realtions, test for autoflush session, delete-orphan
- made new dynamic_loader() function to create them
- removed old hasparent() call on AttributeHistory
Mike Bayer [Fri, 27 Jul 2007 18:57:02 +0000 (18:57 +0000)]
- clarified LoaderStrategy implementations, centralized deferred column loading
into DeferredColumnLoader (i.e. deferred polymorphic loader)
- added generic deferred_load(instance, props) method, will set up "deferred" or "lazy"
loads across a set of properties.
- mapper post-fetch now uses all deferreds, no more post-selects inside a flush() [ticket:652]
Mike Bayer [Thu, 26 Jul 2007 18:25:50 +0000 (18:25 +0000)]
- added a check for joining from A->B using join(), along two
different m2m tables. this raises an error in 0.3 but is
possible in 0.4 when aliases are used. [ticket:687]
Jason Kirtland [Fri, 20 Jul 2007 19:43:46 +0000 (19:43 +0000)]
Merged lower case caching, fetching from r2955
Be sure to close rows fetched in reflection (if not autoclosed)
Fixed bind test, needed transactional storage engine for mysql
Mike Bayer [Fri, 20 Jul 2007 15:10:56 +0000 (15:10 +0000)]
- a new mutex that was added in 0.3.9 causes the pool_timeout
feature to fail during a race condition; threads would
raise TimeoutError immediately with no delay if many threads
push the pool into overflow at the same time. this issue has been
fixed.
Mike Bayer [Wed, 18 Jul 2007 18:51:35 +0000 (18:51 +0000)]
- merged some more of the SessionTransaction connection-bound checks from 0.4
- _BinaryExpression.compare() checks for a base set of "commutative" operators and checks for itself in reverse if so
- added ORM-based unit test for the above, fixes [ticket:664]
Mike Bayer [Sun, 15 Jul 2007 06:02:03 +0000 (06:02 +0000)]
- more docs
- got from_statement() to actually work with query, tests were not covering
- added auto-labeling of anonymous columns sent to add_column(), tests
Mike Bayer [Sun, 15 Jul 2007 04:50:11 +0000 (04:50 +0000)]
- columns can be overridden in a reflected table with a "key"
attribute different than the column's name, including for primary key
columns [ticket:650]
- more docs
Mike Bayer [Sat, 14 Jul 2007 23:06:57 +0000 (23:06 +0000)]
- test module turns warnings into exceptions so they can be tested for
- the two mapper PK tests should actually warn on the id column collision
- reverted abc_inheritance back to normal
Mike Bayer [Sat, 14 Jul 2007 21:57:51 +0000 (21:57 +0000)]
- improved ability to get the "correct" and most minimal set of primary key
columns from a join, equating foreign keys and otherwise equated columns.
this is also mostly to help inheritance scenarios formulate the best
choice of primary key columns. [ticket:185]
- added 'bind' argument to Sequence.create()/drop(), ColumnDefault.execute()
Mike Bayer [Fri, 13 Jul 2007 08:12:30 +0000 (08:12 +0000)]
- a warning is issued by Mapper when two primary key columns of the
same name are munged into a single attribute. this happens frequently
when mapping to joins (or inheritance).
Mike Bayer [Fri, 13 Jul 2007 07:36:39 +0000 (07:36 +0000)]
- composite primary key is represented as a non-keyed set to allow for
composite keys consisting of cols with the same name; occurs within a
Join. helps inheritance scenarios formulate correct PK.
- ticket #185 reopened. still need to get Join to produce a minmal PK for fk'ed columns
Mike Bayer [Thu, 12 Jul 2007 22:03:48 +0000 (22:03 +0000)]
- the various "engine" arguments, such as "engine", "connectable",
"engine_or_url", "bind_to", etc. are all present, but deprecated.
they all get replaced by the single term "bind". you also
set the "bind" of MetaData using
metadata.bind = <engine or connection>. this is part of 0.4
forwards compatibility where "bind" is the only keyword.
[ticket:631]
Mike Bayer [Thu, 12 Jul 2007 18:38:55 +0000 (18:38 +0000)]
- converted mapper.py unit test to 0.4's four separate mapper.py, query.py, eager_relations.py, lazy_relations.py.
tests 0.4 forwards compatibility for [ticket:631]
- fixed "reset_joinpoint()" in query to actually work, when the same table appears in two join()s it reuses that
same table as a joinpoint the way 0.4 does.