<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/sqlalchemy.git/test/sql/test_query.py, branch pr/8</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>- some tweaks to try to help out mssql+pyodbc support a bit, py3k is really</title>
<updated>2013-06-03T16:54:56+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2013-06-03T16:54:56+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=c2a158c137ee07a146f02e5ee89ec42e486c6a37'/>
<id>c2a158c137ee07a146f02e5ee89ec42e486c6a37</id>
<content type='text'>
not happening too well (I need to stick with linux + freetds 0.91, I know)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
not happening too well (I need to stick with linux + freetds 0.91, I know)
</pre>
</div>
</content>
</entry>
<entry>
<title>- the raw 2to3 run</title>
<updated>2013-04-27T23:53:57+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2013-04-27T23:53:57+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=4b614b9b35cd2baddb7ca67c04bee5d70ec6a172'/>
<id>4b614b9b35cd2baddb7ca67c04bee5d70ec6a172</id>
<content type='text'>
- went through examples/ and cleaned out excess list() calls
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- went through examples/ and cleaned out excess list() calls
</pre>
</div>
</content>
</entry>
<entry>
<title>A major fix to the way in which a select() object produces</title>
<updated>2013-04-11T20:14:23+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2013-04-11T20:14:23+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=a5ede47f1225ac10e69e2624038424b013d6144f'/>
<id>a5ede47f1225ac10e69e2624038424b013d6144f</id>
<content type='text'>
labeled columns when apply_labels() is used; this mode
produces a SELECT where each column is labeled as in
&lt;tablename&gt;_&lt;columnname&gt;, to remove column name collisions
for a multiple table select.   The fix is that if two labels
collide when combined with the table name, i.e.
"foo.bar_id" and "foo_bar.id", anonymous aliasing will be
applied to one of the dupes.  This allows the ORM to handle
both columns independently; previously, 0.7
would in some cases silently emit a second SELECT for the
column that was "duped", and in 0.8 an ambiguous column error
would be emitted.   The "keys" applied to the .c. collection
of the select() will also be deduped, so that the "column
being replaced" warning will no longer emit for any select()
that specifies use_labels, though the dupe key will be given
an anonymous label which isn't generally user-friendly.
[ticket:2702]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
labeled columns when apply_labels() is used; this mode
produces a SELECT where each column is labeled as in
&lt;tablename&gt;_&lt;columnname&gt;, to remove column name collisions
for a multiple table select.   The fix is that if two labels
collide when combined with the table name, i.e.
"foo.bar_id" and "foo_bar.id", anonymous aliasing will be
applied to one of the dupes.  This allows the ORM to handle
both columns independently; previously, 0.7
would in some cases silently emit a second SELECT for the
column that was "duped", and in 0.8 an ambiguous column error
would be emitted.   The "keys" applied to the .c. collection
of the select() will also be deduped, so that the "column
being replaced" warning will no longer emit for any select()
that specifies use_labels, though the dupe key will be given
an anonymous label which isn't generally user-friendly.
[ticket:2702]
</pre>
</div>
</content>
</entry>
<entry>
<title>fix syntax error</title>
<updated>2013-03-24T17:45:37+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2013-03-24T17:45:37+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=b5b751e3de817641583e7909fb8d28197ddcec86'/>
<id>b5b751e3de817641583e7909fb8d28197ddcec86</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed bug whereby a DBAPI that can return "0"</title>
<updated>2013-03-23T23:00:11+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2013-03-23T23:00:11+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=35c5fd3fba57a04ebd9083207875692bb92ac6d4'/>
<id>35c5fd3fba57a04ebd9083207875692bb92ac6d4</id>
<content type='text'>
for cursor.lastrowid would not function correctly
in conjunction with :attr:`.ResultProxy.inserted_primary_key`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
for cursor.lastrowid would not function correctly
in conjunction with :attr:`.ResultProxy.inserted_primary_key`.
</pre>
</div>
</content>
</entry>
<entry>
<title>- add support for pulling in an external requirements file</title>
<updated>2013-02-06T22:50:11+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2013-02-06T22:50:11+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=47858b85ec7139af83c2cd0aed1af8917d88ea3e'/>
<id>47858b85ec7139af83c2cd0aed1af8917d88ea3e</id>
<content type='text'>
- start filling in default versions of remaining requirements that are still only in test/
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- start filling in default versions of remaining requirements that are still only in test/
</pre>
</div>
</content>
</entry>
<entry>
<title>- add an "empty_inserts" requirement target plus a suite test</title>
<updated>2013-02-06T20:49:32+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2013-02-06T20:49:32+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=2121c1690a17090a4027874751e90d02b4126fd2'/>
<id>2121c1690a17090a4027874751e90d02b4126fd2</id>
<content type='text'>
- add suite tests for basic explicit Sequence support, result-row column access (tests that name_normalize is set correctly among many other things)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- add suite tests for basic explicit Sequence support, result-row column access (tests that name_normalize is set correctly among many other things)
</pre>
</div>
</content>
</entry>
<entry>
<title>internally at least refer to multirow as "multivalues", to distinguish between</title>
<updated>2012-12-08T21:17:20+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2012-12-08T21:17:20+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=8070cbde716a247f8b31c1334c80fa53327e6d8e'/>
<id>8070cbde716a247f8b31c1334c80fa53327e6d8e</id>
<content type='text'>
an INSERT that's used in executemany() as opposed to one which has a VALUES
clause with multiple entries.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
an INSERT that's used in executemany() as opposed to one which has a VALUES
clause with multiple entries.
</pre>
</div>
</content>
</entry>
<entry>
<title>- multivalued inserts, [ticket:2623]</title>
<updated>2012-12-08T19:25:42+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2012-12-08T19:25:42+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=927b9859834096dd77182f935ff611351407f0dc'/>
<id>927b9859834096dd77182f935ff611351407f0dc</id>
<content type='text'>
- update "not supported" messages for empty inserts, mutlivalue inserts

- rework the ValuesBase approach for multiple value sets so that stmt.parameters
does store a list for multiple values; the _has_multiple_parameters flag now indicates
which of the two modes the statement is within.  it now raises exceptions if a subsequent
call to values() attempts to call a ValuesBase with one mode in the style of the other
mode; that is, you can't switch a single- or multi- valued ValuesBase to the other mode,
and also if a multiple value is passed simultaneously with a kwargs set.
Added tests for these error conditions

- Calling values() multiple times in multivalue mode now extends the parameter list to
include the new parameter sets.

- add error/test if multiple *args were passed to ValuesBase.values()

- rework the compiler approach for multivalue inserts, back to where
_get_colparams() returns the same list of (column, value) as before, thereby
maintaining the identical number of append() and other calls when multivalue
is not enabled.  In the case of multivalue, it makes a last-minute switch to return
a list of lists instead of the single list.  As it constructs the additional lists, the inline
defaults and other calculated default parameters of the first parameter
set are copied into the newly generated lists so that these features continue
to function for a multivalue insert.   Multivalue inserts now add no additional
function calls to the compilation for regular insert constructs.

- parameter lists for multivalue inserts now includes an integer index for all
parameter sets.

- add detailed documentation for ValuesBase.values(), including careful wording
to describe the difference between multiple values and an executemany() call.

- add a test for multivalue insert + returning - it works !

- remove the very old/never used "postgresql_returning"/"firebird_returning" flags.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- update "not supported" messages for empty inserts, mutlivalue inserts

- rework the ValuesBase approach for multiple value sets so that stmt.parameters
does store a list for multiple values; the _has_multiple_parameters flag now indicates
which of the two modes the statement is within.  it now raises exceptions if a subsequent
call to values() attempts to call a ValuesBase with one mode in the style of the other
mode; that is, you can't switch a single- or multi- valued ValuesBase to the other mode,
and also if a multiple value is passed simultaneously with a kwargs set.
Added tests for these error conditions

- Calling values() multiple times in multivalue mode now extends the parameter list to
include the new parameter sets.

- add error/test if multiple *args were passed to ValuesBase.values()

- rework the compiler approach for multivalue inserts, back to where
_get_colparams() returns the same list of (column, value) as before, thereby
maintaining the identical number of append() and other calls when multivalue
is not enabled.  In the case of multivalue, it makes a last-minute switch to return
a list of lists instead of the single list.  As it constructs the additional lists, the inline
defaults and other calculated default parameters of the first parameter
set are copied into the newly generated lists so that these features continue
to function for a multivalue insert.   Multivalue inserts now add no additional
function calls to the compilation for regular insert constructs.

- parameter lists for multivalue inserts now includes an integer index for all
parameter sets.

- add detailed documentation for ValuesBase.values(), including careful wording
to describe the difference between multiple values and an executemany() call.

- add a test for multivalue insert + returning - it works !

- remove the very old/never used "postgresql_returning"/"firebird_returning" flags.
</pre>
</div>
</content>
</entry>
<entry>
<title>compiler: add support for multirow inserts</title>
<updated>2012-12-05T22:11:52+00:00</updated>
<author>
<name>Idan Kamara</name>
<email>idankk86@gmail.com</email>
</author>
<published>2012-12-05T22:11:52+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/sqlalchemy.git/commit/?id=d57c1c2ddd654a1077ab04ba7277828d9030c23d'/>
<id>d57c1c2ddd654a1077ab04ba7277828d9030c23d</id>
<content type='text'>
Some databases support this syntax for inserts:

INSERT INTO table (id, name) VALUES
('v1', 'v2'),
('v3', 'v4');

which greatly increases INSERT speed.

It is now possible to pass a list of lists/tuples/dictionaries as
the values param to the Insert construct. We convert it to a flat
dictionary so we can continue using bind params. The above query
will be converted to:

INSERT INTO table (id, name) VALUES
(:id, :name),
(:id0, :name0);

Currently only supported on postgresql, mysql and sqlite.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some databases support this syntax for inserts:

INSERT INTO table (id, name) VALUES
('v1', 'v2'),
('v3', 'v4');

which greatly increases INSERT speed.

It is now possible to pass a list of lists/tuples/dictionaries as
the values param to the Insert construct. We convert it to a flat
dictionary so we can continue using bind params. The above query
will be converted to:

INSERT INTO table (id, name) VALUES
(:id, :name),
(:id0, :name0);

Currently only supported on postgresql, mysql and sqlite.
</pre>
</div>
</content>
</entry>
</feed>
