<div dir="ltr">Hi Gerhard -<br><br>is the download missing?  On Pypi I see 2.8.0 is registered but no download file:<br><br>https://pypi.python.org/pypi/pysqlite/2.8.0<br><br>pip fails:<br><br>$ ./bin/pip install pysqlite==2.8.0 --upgrade --force<br>Collecting pysqlite==2.8.0<br>  Could not find a version that satisfies the requirement pysqlite==2.8.0 (from versions: 2.5.6, 2.6.0, 2.6.3, 2.7.0)<br>  Some externally hosted files were ignored as access to them may be unreliable (use --allow-external to allow).<br>  No distributions matching the version for pysqlite==2.8.0<br><br><br>On Tuesday, August 18, 2015 at 8:17:46 PM UTC-4, Gerhard Häring wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir="ltr"><div>NEW FEATURES</div><div><br></div><div>- No new features, but tons of bugfixes. These mean that things now work that</div><div>  didn't before:</div><div>- Transactional DDL now works</div><div>- You can use SAVEPOINTs now</div><div><br></div><div><br></div><div>BUILD PROCESS</div><div><br></div><div>- Python 2.7.x is now required. If trying to use it with Python 3, print a</div><div>  useful error message.  Integrated all fixes from the sqlite3 module in Python</div><div>  2.7.10.</div><div><br></div><div><br></div><div>MAJOR IMPROVEMENTS</div><div><br></div><div>- Completety got rid of statement parsing. We now use SQLite functions to</div><div>  determine if a statement modifies the database or not. If a statement</div><div>  modifies the database, then we implicitly start a transaction. For backwards</div><div>  compatibility reasons, we do NOT implicitly start a transaction if we</div><div>  encounter a DDL statement.</div><div><br></div><div>  You can, however, now have transactional DDL if you want to:</div><div><br></div><div>    cur = con.cursor()</div><div>    cur.execute("begin")</div><div>    cur.execute("create table foo(bar)")</div><div>    con.rollback()</div><div><br></div><div>  This also means that people can now finally use SAVEPOINTS.</div><div><br></div><div>- Use sqlite3_get_autocommit() to determine if we are within a transaction</div><div>  instead of trying to be smart.</div><div><br></div><div>- Switch to v2 statement API. This simplified the code and will increase</div><div>  stability.</div><div><br></div><div>MINOR IMPROVEMENTS</div><div><br></div><div>- You can use unicode strings as index for Row objects.</div><div><br></div><div><br></div><div>BUGFIXES</div><div><br></div><div>- Fixed a regression: statements should not be reset after a commit.</div><div><br></div><div><br></div><div>GENERAL CLEANUP AND DEPRECATIONS</div><div><br></div><div>- Since december 2005, row_factory is a feature of the Connection class instead</div><div>  of the Cursor class. It was kept in the Cursor class for backwards</div><div>  compatibility. Now it was time to finally remove it from the Cursor class.</div><div>- DEPRECATE converters and adapters.</div><div>- DEPRECATE text_factory.</div><div>- Remove compatibility workarounds for old Python versions.</div><div>- Remove workarounds for old SQLite versions.</div><div>- Remove apsw related code.</div><div><br></div></div>
</blockquote></div>