<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/sqlalchemy.git/lib/sqlalchemy/sql.py, branch 2020_tutorial</title>
<subtitle>github.com: zzzeek/sqlalchemy.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/'/>
<entry>
<title>1. Module layout.  sql.py and related move into a package called "sql".</title>
<updated>2007-08-18T21:37:48+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2007-08-18T21:37:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=7c6c1b99c2de00829b6f34ffba7e3bb689d34198'/>
<id>7c6c1b99c2de00829b6f34ffba7e3bb689d34198</id>
<content type='text'>
2. compiler names changed to be less verbose, unused classes removed.
3. Methods on Dialect which return compilers, schema generators, identifier preparers
have changed to direct class references, typically on the Dialect class itself
or optionally as attributes on an individual Dialect instance if conditional behavior is needed.
This takes away the need for Dialect subclasses to know how to instantiate these
objects, and also reduces method overhead by one call for each one.
4. as a result of 3., some internal signatures have changed for things like compiler() (now statement_compiler()), preparer(), etc., mostly in that the dialect needs to be passed explicitly as the first argument (since they are just class references now).  The compiler() method on Engine and Connection is now also named statement_compiler(), but as before does not take the dialect as an argument.

5. changed _process_row function on RowProxy to be a class reference, cuts out 50K method calls from insertspeed.py
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
2. compiler names changed to be less verbose, unused classes removed.
3. Methods on Dialect which return compilers, schema generators, identifier preparers
have changed to direct class references, typically on the Dialect class itself
or optionally as attributes on an individual Dialect instance if conditional behavior is needed.
This takes away the need for Dialect subclasses to know how to instantiate these
objects, and also reduces method overhead by one call for each one.
4. as a result of 3., some internal signatures have changed for things like compiler() (now statement_compiler()), preparer(), etc., mostly in that the dialect needs to be passed explicitly as the first argument (since they are just class references now).  The compiler() method on Engine and Connection is now also named statement_compiler(), but as before does not take the dialect as an argument.

5. changed _process_row function on RowProxy to be a class reference, cuts out 50K method calls from insertspeed.py
</pre>
</div>
</content>
</entry>
<entry>
<title>- fixed prefixes= argument to select()</title>
<updated>2007-08-18T18:15:11+00:00</updated>
<author>
<name>Jason Kirtland</name>
<email>jek@discorporate.us</email>
</author>
<published>2007-08-18T18:15:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=534cf5fdbd05e2049ab9feceabf3926a5ab6380c'/>
<id>534cf5fdbd05e2049ab9feceabf3926a5ab6380c</id>
<content type='text'>
- mysql can now generate DISTINCT or ALL for queries, select(..., distinct='ALL')
- documented 'prefixes' arg to select()
- rearranged doc order for select args to mirror that of a generated statement
- went nutty and fixed wrapping and line length on most docstrings in sql.py
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- mysql can now generate DISTINCT or ALL for queries, select(..., distinct='ALL')
- documented 'prefixes' arg to select()
- rearranged doc order for select args to mirror that of a generated statement
- went nutty and fixed wrapping and line length on most docstrings in sql.py
</pre>
</div>
</content>
</entry>
<entry>
<title>- modified SQL operator functions to be module-level operators, allowing</title>
<updated>2007-08-18T01:00:44+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2007-08-18T01:00:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=820346549b7e50e927c519c9bc54934e9a440422'/>
<id>820346549b7e50e927c519c9bc54934e9a440422</id>
<content type='text'>
  SQL expressions to be pickleable [ticket:735]

- small adjustment to mapper class.__init__ to allow for Py2.6 object.__init__()
  behavior
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  SQL expressions to be pickleable [ticket:735]

- small adjustment to mapper class.__init__ to allow for Py2.6 object.__init__()
  behavior
</pre>
</div>
</content>
</entry>
<entry>
<title>- fix to bind param processing such that "False" values (like blank strings)</title>
<updated>2007-08-16T18:25:11+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2007-08-16T18:25:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=13af7230dcb0bf720a7a46f701404fa16b298c13'/>
<id>13af7230dcb0bf720a7a46f701404fa16b298c13</id>
<content type='text'>
  still get processed/encoded
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  still get processed/encoded
</pre>
</div>
</content>
</entry>
<entry>
<title>mass has_key-&gt;__contains__ migration, [ticket:738]</title>
<updated>2007-08-15T17:28:52+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2007-08-15T17:28:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=e02a48ed24ee4548e765c3b2a26e8f20d0d992e2'/>
<id>e02a48ed24ee4548e765c3b2a26e8f20d0d992e2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>- merged "fasttypes" branch.  this branch changes the signature</title>
<updated>2007-08-14T21:53:32+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2007-08-14T21:53:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=087f235c33c1be4e0778231e8344a50dc4005c59'/>
<id>087f235c33c1be4e0778231e8344a50dc4005c59</id>
<content type='text'>
of convert_bind_param() and convert_result_value() to callable-returning
bind_processor() and result_processor() methods.  if no callable is
returned, no pre/post processing function is called.
- hooks added throughout base/sql/defaults to optimize the calling
of bind param/result processors so that method call overhead is minimized.
special cases added for executemany() scenarios such that unneeded "last row id"
logic doesn't kick in, parameters aren't excessively traversed.
- new performance tests show a combined mass-insert/mass-select test as having 68%
fewer function calls than the same test run against 0.3.
- general performance improvement of result set iteration is around 10-20%.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
of convert_bind_param() and convert_result_value() to callable-returning
bind_processor() and result_processor() methods.  if no callable is
returned, no pre/post processing function is called.
- hooks added throughout base/sql/defaults to optimize the calling
of bind param/result processors so that method call overhead is minimized.
special cases added for executemany() scenarios such that unneeded "last row id"
logic doesn't kick in, parameters aren't excessively traversed.
- new performance tests show a combined mass-insert/mass-select test as having 68%
fewer function calls than the same test run against 0.3.
- general performance improvement of result set iteration is around 10-20%.
</pre>
</div>
</content>
</entry>
<entry>
<title>- base_mapper() becomes a plain attribute</title>
<updated>2007-08-14T03:19:46+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2007-08-14T03:19:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=b9ed823528ef88fb0dc64120e1e501306f4c3768'/>
<id>b9ed823528ef88fb0dc64120e1e501306f4c3768</id>
<content type='text'>
- session.execute() and scalar() can search for a Table with which to bind
from using the given ClauseElement
- session automatically extrapolates tables from mappers with binds,
also uses base_mapper so that inheritance hierarchies bind automatically
- moved ClauseVisitor traversal back to inlined non-recursive
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- session.execute() and scalar() can search for a Table with which to bind
from using the given ClauseElement
- session automatically extrapolates tables from mappers with binds,
also uses base_mapper so that inheritance hierarchies bind automatically
- moved ClauseVisitor traversal back to inlined non-recursive
</pre>
</div>
</content>
</entry>
<entry>
<title>- precompiled regexp for anonymous labels</title>
<updated>2007-08-11T16:25:30+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2007-08-11T16:25:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=55cc73fc30fceab04bf8ae2b3f0797b9ad2d7550'/>
<id>55cc73fc30fceab04bf8ae2b3f0797b9ad2d7550</id>
<content type='text'>
- has_key()-&gt;__contains__()
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- has_key()-&gt;__contains__()
</pre>
</div>
</content>
</entry>
<entry>
<title>- removed _calculate_correlations() methods, removed correlation_stack, select_stack;</title>
<updated>2007-08-11T16:04:38+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2007-08-11T16:04:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=ac219b0192814cea0611f7251f7bb3927e5c3201'/>
<id>ac219b0192814cea0611f7251f7bb3927e5c3201</id>
<content type='text'>
all are merged into a single stack thats all within ansicompiler.  clause visiting cut down
significantly.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
all are merged into a single stack thats all within ansicompiler.  clause visiting cut down
significantly.
</pre>
</div>
</content>
</entry>
<entry>
<title>  - case_sensitive=(True|False) setting removed from schema items, since</title>
<updated>2007-08-11T14:03:23+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2007-08-11T14:03:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=e8793a5b59a05fb1d96c228bcd2e9f3ec381c0b4'/>
<id>e8793a5b59a05fb1d96c228bcd2e9f3ec381c0b4</id>
<content type='text'>
    checking this state added a lot of method call overhead and there was
    no decent reason to ever set it to False.  Table and column names which are
    all lower case will be treated as case-insenstive (yes we adjust for
    Oracle's UPPERCASE style too).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
    checking this state added a lot of method call overhead and there was
    no decent reason to ever set it to False.  Table and column names which are
    all lower case will be treated as case-insenstive (yes we adjust for
    Oracle's UPPERCASE style too).
</pre>
</div>
</content>
</entry>
</feed>
