[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