[pypy-svn] pypy default: Fixed sqlite test CheckInsertStartsTransaction and got a few more successes for free
ademan
commits-noreply at bitbucket.org
Mon Mar 7 03:52:06 CET 2011
Author: Daniel Roberts <Ademan555 at gmail.com>
Branch:
Changeset: r42452:6898544251a0
Date: 2011-03-06 18:51 -0800
http://bitbucket.org/pypy/pypy/changeset/6898544251a0/
Log: Fixed sqlite test CheckInsertStartsTransaction and got a few more
successes for free
diff --git a/lib_pypy/_sqlite3.py b/lib_pypy/_sqlite3.py
--- a/lib_pypy/_sqlite3.py
+++ b/lib_pypy/_sqlite3.py
@@ -678,8 +678,12 @@
raise self.connection._get_exception(ret)
if self.statement.kind == "DQL":
- self.statement._readahead()
- self.statement._build_row_cast_map()
+ if ret == SQLITE_ROW:
+ self.statement._build_row_cast_map()
+ self.statement._readahead()
+ else:
+ self.statement.item = None
+ self.statement.exhausted = True
if self.statement.kind in ("DML", "DDL"):
self.statement.reset()
@@ -856,7 +860,7 @@
def _build_row_cast_map(self):
self.row_cast_map = []
- for i in range(sqlite.sqlite3_column_count(self.statement)):
+ for i in xrange(sqlite.sqlite3_column_count(self.statement)):
converter = None
if self.con.detect_types & PARSE_COLNAMES:
@@ -969,7 +973,8 @@
self.column_count = sqlite.sqlite3_column_count(self.statement)
row = []
for i in xrange(self.column_count):
- typ = sqlite.sqlite3_column_type(self.statement, i)
+ typ = sqlite.sqlite3_column_type(self.statement, i)
+
converter = self.row_cast_map[i]
if converter is None:
if typ == SQLITE_INTEGER:
More information about the Pypy-commit
mailing list