From: Mike Bayer Date: Fri, 15 Dec 2006 07:43:42 +0000 (+0000) Subject: fixed the raise for mysql to re-raise the error X-Git-Tag: rel_0_3_3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f5b5696afddacdd7c5a5ede716e7241e5fa5c97e;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git fixed the raise for mysql to re-raise the error --- diff --git a/CHANGES b/CHANGES index 6c95164383..8642ebf692 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,5 @@ +0.3.3 + - string-based FROM clauses fixed, i.e. select(..., from_obj=["sometext"]) - fixes to passive_deletes flag, lazy=None (noload) flag - added example/docs for dealing with large collections @@ -6,7 +8,8 @@ that was not reachable (thanks to Sébastien Lelong), also fixed dispose() method - patch that makes MySQL rowcount work correctly! [ticket:396] - +- fix to MySQL catch of 2006/20014 errors + 0.3.2 - major connection pool bug fixed. fixes MySQL out of sync errors, will also prevent transactions getting rolled back diff --git a/doc/build/content/adv_datamapping.txt b/doc/build/content/adv_datamapping.txt index 50e8980d56..79f8158a25 100644 --- a/doc/build/content/adv_datamapping.txt +++ b/doc/build/content/adv_datamapping.txt @@ -253,8 +253,6 @@ Deferred columns can be placed into groups so that they load together: #### Working with Large Collections -(requires some bugfixes released as of version 0.3.3) - SQLAlchemy relations are generally simplistic; the lazy loader loads in the full list of child objects when accessed, and the eager load builds a query that loads the full list of child objects. Additionally, when you are deleting a parent object, SQLAlchemy insures that it has loaded the full list of child objects so that it can mark them as deleted as well (or to update their parent foreign key to NULL). It does not issue an en-masse "delete from table where parent_id=?" type of statement in such a scenario. This is because the child objects themselves may also have further dependencies, and additionally may also exist in the current session in which case SA needs to know their identity so that their state can be properly updated. So there are several techniques that can be used individually or combined together to address these issues, in the context of a large collection where you normally would not want to load the full list of relationships: diff --git a/doc/build/genhtml.py b/doc/build/genhtml.py index 858d100dfb..f30a7997d6 100644 --- a/doc/build/genhtml.py +++ b/doc/build/genhtml.py @@ -24,7 +24,7 @@ files = [ ] title='SQLAlchemy 0.3 Documentation' -version = '0.3.2' +version = '0.3.3' root = toc.TOCElement('', 'root', '', version=version, doctitle=title) diff --git a/lib/sqlalchemy/databases/mysql.py b/lib/sqlalchemy/databases/mysql.py index a452a696e2..966912d3aa 100644 --- a/lib/sqlalchemy/databases/mysql.py +++ b/lib/sqlalchemy/databases/mysql.py @@ -307,14 +307,14 @@ class MySQLDialect(ansisql.ANSIDialect): except mysql.OperationalError, o: if o.args[0] == 2006 or o.args[0] == 2014: cursor.invalidate() - raise o + raise o def do_execute(self, cursor, statement, parameters, **kwargs): try: cursor.execute(statement, parameters) except mysql.OperationalError, o: if o.args[0] == 2006 or o.args[0] == 2014: cursor.invalidate() - raise o + raise o def do_rollback(self, connection): diff --git a/setup.py b/setup.py index 1c9c2bdbf3..6b2f55522e 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ use_setuptools() from setuptools import setup, find_packages setup(name = "SQLAlchemy", - version = "0.3.2", + version = "0.3.3", description = "Database Abstraction Library", author = "Mike Bayer", author_email = "mike_mp@zzzcomputing.com",