<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/sqlalchemy.git/doc, branch pr/88</title>
<subtitle>github.com: zzzeek/sqlalchemy.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/'/>
<entry>
<title>- changelog for #2785</title>
<updated>2014-05-16T17:09:50+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2014-05-16T17:09:50+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=460465a8749aecff761e1c81c77d7c23e8672789'/>
<id>460465a8749aecff761e1c81c77d7c23e8672789</id>
<content type='text'>
- refactor tests a bit
fixes #2785
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- refactor tests a bit
fixes #2785
</pre>
</div>
</content>
</entry>
<entry>
<title>typo</title>
<updated>2014-05-16T16:59:47+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2014-05-16T16:59:47+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=0f925ad430fd482d77520bb5de62949f9c75ac65'/>
<id>0f925ad430fd482d77520bb5de62949f9c75ac65</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>- add lots more to the profiling section</title>
<updated>2014-05-16T15:53:12+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2014-05-16T15:53:12+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=6212d59bdc0f09be92a46a8acc4e9b8c6404eb96'/>
<id>6212d59bdc0f09be92a46a8acc4e9b8c6404eb96</id>
<content type='text'>
- add the query profiling recipe, fix it with a stack as we now nest those
calls occasionally
- tabs to spaces
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- add the query profiling recipe, fix it with a stack as we now nest those
calls occasionally
- tabs to spaces
</pre>
</div>
</content>
</entry>
<entry>
<title>- Fixed bug in mutable extension where :class:`.MutableDict` did not</title>
<updated>2014-05-14T14:03:24+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2014-05-14T14:03:24+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=aa12fdb40e6641cc35e0228a1c38c469afc828f5'/>
<id>aa12fdb40e6641cc35e0228a1c38c469afc828f5</id>
<content type='text'>
report change events for the ``setdefault()`` dictionary operation.
fixes #3051
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
report change events for the ``setdefault()`` dictionary operation.
fixes #3051
</pre>
</div>
</content>
</entry>
<entry>
<title>- add a new FAQ section "performance", put the profiling article there,</title>
<updated>2014-05-12T21:17:41+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2014-05-12T21:16:15+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=976b4c97df676cb832c62795315370ed3e3ff227'/>
<id>976b4c97df676cb832c62795315370ed3e3ff227</id>
<content type='text'>
move the insert rows article there as well
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
move the insert rows article there as well
</pre>
</div>
</content>
</entry>
<entry>
<title>changelog for pullreq bitbucket:15</title>
<updated>2014-05-12T15:39:49+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2014-05-12T15:39:49+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=46763173fcda20877b578e1e6492a2235d51d8d2'/>
<id>46763173fcda20877b578e1e6492a2235d51d8d2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #91 from smurfix/de_apostroph_ify</title>
<updated>2014-05-11T17:04:05+00:00</updated>
<author>
<name>mike bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2014-05-11T17:04:05+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=1abd53a3556b9593d9eba868d69c13bae3c3a7ab'/>
<id>1abd53a3556b9593d9eba868d69c13bae3c3a7ab</id>
<content type='text'>
Documentation fix-up: "its" vs. "it's"</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Documentation fix-up: "its" vs. "it's"</pre>
</div>
</content>
</entry>
<entry>
<title>Documentation fix-up: "its" vs. "it's"</title>
<updated>2014-05-11T14:49:56+00:00</updated>
<author>
<name>Matthias Urlichs</name>
<email>matthias@urlichs.de</email>
</author>
<published>2014-05-11T14:49:56+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=f341cfbfe117e777569d58eb6d2c3d3f7fe7bbf3'/>
<id>f341cfbfe117e777569d58eb6d2c3d3f7fe7bbf3</id>
<content type='text'>
Removed ungrammatical apostrophes from documentation, replacing
"it's" with "its" where appropriate (but in a few cases with "it is"
when that read better).

While doing that, I also fixed a couple of minor typos etc.
as I noticed them.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Removed ungrammatical apostrophes from documentation, replacing
"it's" with "its" where appropriate (but in a few cases with "it is"
when that read better).

While doing that, I also fixed a couple of minor typos etc.
as I noticed them.
</pre>
</div>
</content>
</entry>
<entry>
<title>- Fixed ORM bug where the :func:`.class_mapper` function would mask</title>
<updated>2014-05-11T03:26:09+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2014-05-11T03:26:09+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=230c0d5a19978872fae4e1261736a9e300ae9bf1'/>
<id>230c0d5a19978872fae4e1261736a9e300ae9bf1</id>
<content type='text'>
AttributeErrors or KeyErrors that should raise during mapper
configuration due to user errors.  The catch for attribute/keyerror
has been made more specific to not include the configuration step.
fixes #3047
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
AttributeErrors or KeyErrors that should raise during mapper
configuration due to user errors.  The catch for attribute/keyerror
has been made more specific to not include the configuration step.
fixes #3047
</pre>
</div>
</content>
</entry>
<entry>
<title>- Fixed some "double invalidate" situations were detected where</title>
<updated>2014-05-10T19:34:42+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2014-05-10T19:31:49+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=85d1899b76a37b4bf922b1cea4f608ba806b41d0'/>
<id>85d1899b76a37b4bf922b1cea4f608ba806b41d0</id>
<content type='text'>
a connection invalidation could occur within an already critical section
like a connection.close(); ultimately, these conditions are caused
by the change in :ticket:`2907`, in that the "reset on return" feature
calls out to the Connection/Transaction in order to handle it, where
"disconnect detection" might be caught.  However, it's possible that
the more recent change in :ticket:`2985` made it more likely for this
to be seen as the "connection invalidate" operation is much quicker,
as the issue is more reproducible on 0.9.4 than 0.9.3.

Checks are now added within any section that
an invalidate might occur to halt further disallowed operations
on the invalidated connection.  This includes two fixes both at the
engine level and at the pool level.   While the issue was observed
with highly concurrent gevent cases, it could in theory occur in
any kind of scenario where a disconnect occurs within the connection
close operation.
fixes #3043
ref #2985
ref #2907

- add some defensive checks during an invalidate situation:
1. _ConnectionRecord.invalidate might be called twice within finalize_fairy
if the _reset() raises an invalidate condition, invalidates, raises and then
goes to invalidate the CR.  so check for this.
2. similarly within Conneciton, anytime we do handle_dbapi_error(), we might become invalidated.
so a following finally must check self.__invalid before dealing with the connection
any futher.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
a connection invalidation could occur within an already critical section
like a connection.close(); ultimately, these conditions are caused
by the change in :ticket:`2907`, in that the "reset on return" feature
calls out to the Connection/Transaction in order to handle it, where
"disconnect detection" might be caught.  However, it's possible that
the more recent change in :ticket:`2985` made it more likely for this
to be seen as the "connection invalidate" operation is much quicker,
as the issue is more reproducible on 0.9.4 than 0.9.3.

Checks are now added within any section that
an invalidate might occur to halt further disallowed operations
on the invalidated connection.  This includes two fixes both at the
engine level and at the pool level.   While the issue was observed
with highly concurrent gevent cases, it could in theory occur in
any kind of scenario where a disconnect occurs within the connection
close operation.
fixes #3043
ref #2985
ref #2907

- add some defensive checks during an invalidate situation:
1. _ConnectionRecord.invalidate might be called twice within finalize_fairy
if the _reset() raises an invalidate condition, invalidates, raises and then
goes to invalidate the CR.  so check for this.
2. similarly within Conneciton, anytime we do handle_dbapi_error(), we might become invalidated.
so a following finally must check self.__invalid before dealing with the connection
any futher.
</pre>
</div>
</content>
</entry>
</feed>
