Jason Kirtland [Fri, 3 Aug 2007 02:38:00 +0000 (02:38 +0000)]
- Dialects can be queried for the server version (sqlite and mysql only with this commit)
- Mark everything in a test suite as failed when setUpAll fails.
- Added test coverage for Unicode table names in metadata.reflect()
- @testing.exclude() filters out tests by server version
- Applied exclude to the test suite, MySQL 4.1 passes again (no XA or SAVEPOINT)
- Removed MySQL charset-setting pool hook- charset=utf8&use_unicode=0 works just as well. (Am I nuts? I'd swear this didn't work before.)
- Finally migrated some old MySQL-tests into the dialect test module
- Corrected 'commit' and 'rollback' logic (and comment) for ancient MySQL versions lacking transactions entirely
- Deprecated the MySQL get_version_info in favor of server_version_info
- Added a big hunk-o-doc for MySQL.
Mike Bayer [Thu, 2 Aug 2007 05:42:49 +0000 (05:42 +0000)]
- sessionmaker module is out, replaced with simple function in session.py
- scoping/class instrumenting behavior of sessionmaker moved into new scoping module
which implements scoped_session() (subject to potential name change)
- SessionContext / assignmapper are deprecated, replaced with scoped_session()
Mike Bayer [Wed, 1 Aug 2007 20:52:26 +0000 (20:52 +0000)]
- SessionContext and assignmapper are deprecated
- Session function is removed
- all replaced with new sessionmaker() function. description at:
http://www.sqlalchemy.org/trac/wiki/WhatsNewIn04#create_sessionSessionContextassignmapperDeprecated
Jason Kirtland [Wed, 1 Aug 2007 00:12:42 +0000 (00:12 +0000)]
Promoted format_table_seq from mysql to ansisql. Formats a fully qualified table reference as a quoted sequence, suitable for '.'.joining or whatever. [ticket:666]
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.