summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-12-15 07:43:42 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-12-15 07:43:42 +0000
commitf5b5696afddacdd7c5a5ede716e7241e5fa5c97e (patch)
treee8e659b1b238f29f3c0e6616f75c0d7ba27a5536
parent422558bc5d58557a758b56f4d592d08dd6f86309 (diff)
downloadsqlalchemy-f5b5696afddacdd7c5a5ede716e7241e5fa5c97e.tar.gz
fixed the raise for mysql to re-raise the errorrel_0_3_3
-rw-r--r--CHANGES5
-rw-r--r--doc/build/content/adv_datamapping.txt2
-rw-r--r--doc/build/genhtml.py2
-rw-r--r--lib/sqlalchemy/databases/mysql.py4
-rw-r--r--setup.py2
5 files changed, 8 insertions, 7 deletions
diff --git a/CHANGES b/CHANGES
index 6c9516438..8642ebf69 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 50e8980d5..79f8158a2 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 858d100df..f30a7997d 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 a452a696e..966912d3a 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 1c9c2bdbf..6b2f55522 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",