<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/sqlalchemy.git/lib, branch pr/181</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>Fix primary key behaviour in bulk_update</title>
<updated>2015-06-13T18:11:16+00:00</updated>
<author>
<name>Patrick Hayes</name>
<email>pfhayes@gmail.com</email>
</author>
<published>2015-06-13T18:11:16+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=09485d733131b667813f44eb0b6807b698668ee7'/>
<id>09485d733131b667813f44eb0b6807b698668ee7</id>
<content type='text'>
Suppose you have a model class with a primary key.

Base = declarative_base()
class User(Base):
  id = Column(BigInteger, primary_key=True)
  name = Column(String)

Previously, running
`bulk_update_mappings(User, {'id': 1, 'name': 'hello'})`
would emit the following:

```UPDATE users SET id=1, name='hello' WHERE id=1```

This is contrary to the stated behaviour, where primary keys are omitted
from the SET clause. Furthermore, this behaviour is harmful, as it
can cause the db engine to lock over-aggresively (at least in Postgres).

With this change, the emitted SQL is:

```UPDATE users SET name='hello' WHERE id=1```
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Suppose you have a model class with a primary key.

Base = declarative_base()
class User(Base):
  id = Column(BigInteger, primary_key=True)
  name = Column(String)

Previously, running
`bulk_update_mappings(User, {'id': 1, 'name': 'hello'})`
would emit the following:

```UPDATE users SET id=1, name='hello' WHERE id=1```

This is contrary to the stated behaviour, where primary keys are omitted
from the SET clause. Furthermore, this behaviour is harmful, as it
can cause the db engine to lock over-aggresively (at least in Postgres).

With this change, the emitted SQL is:

```UPDATE users SET name='hello' WHERE id=1```
</pre>
</div>
</content>
</entry>
<entry>
<title>- Fixed an unexpected-use regression whereby custom :class:`.Comparator`</title>
<updated>2015-06-11T20:48:00+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2015-06-11T20:48:00+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=e765c55e8cc71bb3773b86b5260df6cb69aff102'/>
<id>e765c55e8cc71bb3773b86b5260df6cb69aff102</id>
<content type='text'>
objects that made use of the ``__clause_element__()`` method and
returned an object that was an ORM-mapped
:class:`.InstrumentedAttribute` and not explicitly a
:class:`.ColumnElement` would fail to be correctly
handled when passed as an expression to :meth:`.Session.query`.
The logic in 0.9 happened to succeed on this, so this use case is now
supported. fixes #3448
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
objects that made use of the ``__clause_element__()`` method and
returned an object that was an ORM-mapped
:class:`.InstrumentedAttribute` and not explicitly a
:class:`.ColumnElement` would fail to be correctly
handled when passed as an expression to :meth:`.Session.query`.
The logic in 0.9 happened to succeed on this, so this use case is now
supported. fixes #3448
</pre>
</div>
</content>
</entry>
<entry>
<title>- Fixed a bug where clause adaption as applied to a :class:`.Label`</title>
<updated>2015-06-10T03:39:14+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2015-06-10T03:39:14+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=a9030d0241964c919b099e4bdb75d38fd420b546'/>
<id>a9030d0241964c919b099e4bdb75d38fd420b546</id>
<content type='text'>
object would fail to accommodate the labeled SQL expression
in all cases, such that any SQL operation that made use of
:meth:`.Label.self_group` would use the original unadapted
expression.  One effect of this would be that an ORM :func:`.aliased`
construct would not fully accommodate attributes mapped by
:obj:`.column_property`, such that the un-aliased table could
leak out when the property were used in some kinds of SQL
comparisons.
fixes #3445
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
object would fail to accommodate the labeled SQL expression
in all cases, such that any SQL operation that made use of
:meth:`.Label.self_group` would use the original unadapted
expression.  One effect of this would be that an ORM :func:`.aliased`
construct would not fully accommodate attributes mapped by
:obj:`.column_property`, such that the un-aliased table could
leak out when the property were used in some kinds of SQL
comparisons.
fixes #3445
</pre>
</div>
</content>
</entry>
<entry>
<title>- Fixed an internal "memoization" routine for method types such</title>
<updated>2015-06-08T22:36:27+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2015-06-08T22:36:27+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=657be357de569ced699f44bdd96c6ba4e650b492'/>
<id>657be357de569ced699f44bdd96c6ba4e650b492</id>
<content type='text'>
that a Python descriptor is no longer used; repairs inspectability
of these methods including support for Sphinx documentation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
that a Python descriptor is no longer used; repairs inspectability
of these methods including support for Sphinx documentation.
</pre>
</div>
</content>
</entry>
<entry>
<title>- start 1.0.6</title>
<updated>2015-06-08T22:35:15+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2015-06-08T22:34:56+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=0e1da3265445fc2afaa54c4025bcab442199dc2b'/>
<id>0e1da3265445fc2afaa54c4025bcab442199dc2b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>- Added new engine event :meth:`.ConnectionEvents.engine_disposed`.</title>
<updated>2015-06-06T21:50:32+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2015-06-06T21:50:32+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=54b15aaf37917c946e3f4fa45cc1262e14b22ef4'/>
<id>54b15aaf37917c946e3f4fa45cc1262e14b22ef4</id>
<content type='text'>
Called after the :meth:`.Engine.dispose` method is called.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Called after the :meth:`.Engine.dispose` method is called.
</pre>
</div>
</content>
</entry>
<entry>
<title>- Repaired some typing and test issues related to the pypy</title>
<updated>2015-06-05T21:34:02+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2015-06-05T21:34:02+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=4e6ec9eef4e65c6efabae36b2307f2ad167977da'/>
<id>4e6ec9eef4e65c6efabae36b2307f2ad167977da</id>
<content type='text'>
psycopg2cffi dialect, in particular that the current 2.7.0 version
does not have native support for the JSONB type.  The version detection
for psycopg2 features has been tuned into a specific sub-version
for psycopg2cffi.  Additionally, test coverage has been enabled
for the full series of psycopg2 features under psycopg2cffi.
fixes #3439
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
psycopg2cffi dialect, in particular that the current 2.7.0 version
does not have native support for the JSONB type.  The version detection
for psycopg2 features has been tuned into a specific sub-version
for psycopg2cffi.  Additionally, test coverage has been enabled
for the full series of psycopg2 features under psycopg2cffi.
fixes #3439
</pre>
</div>
</content>
</entry>
<entry>
<title>- document SQlite dotted name issue, fixes #3441</title>
<updated>2015-06-05T20:11:13+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2015-06-05T20:11:13+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=4c90f355fd552e70009ffcdf3fdde9f3653e337e'/>
<id>4c90f355fd552e70009ffcdf3fdde9f3653e337e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>- changelog for pr bitbucket:54</title>
<updated>2015-06-03T14:08:33+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2015-06-03T14:08:33+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=47d29eae8fa14ab7b1aab63797860a475338f950'/>
<id>47d29eae8fa14ab7b1aab63797860a475338f950</id>
<content type='text'>
- alter the approach so that the initial callable is working just like add_criteria/with_criteria
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- alter the approach so that the initial callable is working just like add_criteria/with_criteria
</pre>
</div>
</content>
</entry>
<entry>
<title>baked: Support initial args for cache key</title>
<updated>2015-06-02T13:05:18+00:00</updated>
<author>
<name>INADA Naoki</name>
<email>songofacandy@gmail.com</email>
</author>
<published>2015-06-02T13:05:18+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=36d2b40cf55bc0f4e850e9ec4e905f0051f573f2'/>
<id>36d2b40cf55bc0f4e850e9ec4e905f0051f573f2</id>
<content type='text'>
When making baked query in classmethod of declarative base,
cls should be added in cache key.

    @as_declarative
    class Base(object):

        @classmethod
        def baked_query(cls):
            return bakery(lambda: session.query(cls), (cls,))
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When making baked query in classmethod of declarative base,
cls should be added in cache key.

    @as_declarative
    class Base(object):

        @classmethod
        def baked_query(cls):
            return bakery(lambda: session.query(cls), (cls,))
</pre>
</div>
</content>
</entry>
</feed>
