Commits

Anonymous committed eb00664

fixed the raise for mysql to re-raise the error

  • Participants
  • Parent commits 4a63b2d
  • Tags rel_0_3_3

Comments (0)

Files changed (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
 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

File doc/build/content/adv_datamapping.txt

 
 #### 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:

File doc/build/genhtml.py

     ]
 
 title='SQLAlchemy 0.3 Documentation'
-version = '0.3.2'
+version = '0.3.3'
 
 root = toc.TOCElement('', 'root', '', version=version, doctitle=title)
 

File lib/sqlalchemy/databases/mysql.py

         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):
 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",