Author: reinhard
Date: 2010-05-25 06:42:28 -0500 (Tue, 25 May 2010)
New Revision: 10185

Modified:
   trunk/gnue-common/
   trunk/gnue-common/src/datasources/drivers/DBSIG2/ResultSet.py
Log:
When _must_fetchall_ is set, don't make a separate query to find out the record
count.



Property changes on: trunk/gnue-common
___________________________________________________________________
Name: bzr:revision-info
   - timestamp: 2010-05-25 12:10:23.839999914 +0200
committer: Reinhard Müller <reinhard.muel...@bytewise.at>
properties: 
        branch-nick: common

   + timestamp: 2010-05-25 13:40:15.319000006 +0200
committer: Reinhard Müller <reinhard.muel...@bytewise.at>
properties: 
        branch-nick: common

Name: bzr:file-ids
   - src/datasources/GDataSource.py     
1...@3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-common:src%2Fdatasources%2FGDataSource.py

   + src/datasources/drivers/DBSIG2/ResultSet.py        
4...@3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-common:src%2Fdatasources%2Fdrivers%2FDBSIG2%2FResultSet.py

Name: bzr:revision-id:v4
   - 3116 reinhard.muel...@bytewise.at-20100426083315-ccfwx2pihuvqn60z
3117 reinhard.muel...@bytewise.at-20100503114756-unpxm52de0towufo
3118 reinhard.muel...@bytewise.at-20100503115129-uvondrz5bvkqubyv
3119 reinhard.muel...@bytewise.at-20100505081835-9peco6k7a2le0mvg
3120 reinhard.muel...@bytewise.at-20100505084742-wn5vtc4a129z8g28
3121 reinhard.muel...@bytewise.at-20100505092131-m2avvsci5w6aj0rv
3122 reinhard.muel...@bytewise.at-20100519151545-pybk8q2s234vzsf2
3123 reinhard.muel...@bytewise.at-20100525101023-xs7k6pkghh9t6fc3

   + 3116 reinhard.muel...@bytewise.at-20100426083315-ccfwx2pihuvqn60z
3117 reinhard.muel...@bytewise.at-20100503114756-unpxm52de0towufo
3118 reinhard.muel...@bytewise.at-20100503115129-uvondrz5bvkqubyv
3119 reinhard.muel...@bytewise.at-20100505081835-9peco6k7a2le0mvg
3120 reinhard.muel...@bytewise.at-20100505084742-wn5vtc4a129z8g28
3121 reinhard.muel...@bytewise.at-20100505092131-m2avvsci5w6aj0rv
3122 reinhard.muel...@bytewise.at-20100519151545-pybk8q2s234vzsf2
3123 reinhard.muel...@bytewise.at-20100525101023-xs7k6pkghh9t6fc3
3124 reinhard.muel...@bytewise.at-20100525114015-rj7eb0xdheqkcuql

Name: bzr:text-parents
   - src/datasources/GDataSource.py     
svn-v3-single1-dHJ1bmsvZ251ZS1jb21tb24.:3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-common:9986

   + src/datasources/drivers/DBSIG2/ResultSet.py        
svn-v3-single1-dHJ1bmsvZ251ZS1jb21tb24.:3a364389-8fce-0310-8f11-cc363fde16c7:trunk%2Fgnue-common:9954


Modified: trunk/gnue-common/src/datasources/drivers/DBSIG2/ResultSet.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/DBSIG2/ResultSet.py       
2010-05-25 10:12:33 UTC (rev 10184)
+++ trunk/gnue-common/src/datasources/drivers/DBSIG2/ResultSet.py       
2010-05-25 11:42:28 UTC (rev 10185)
@@ -75,7 +75,7 @@
     # If the connection has a broken row count, query for the number of records
     # first. This avoids conflicts with some drivers not supporting multiple
     # open cursors (like adodbapi).
-    if connection._broken_rowcount_:
+    if connection._broken_rowcount_ and not connection._must_fetchall_:
       if distinct:
         self.__count = 0
       else:
@@ -85,7 +85,10 @@
     query = self.__buildQuery (table, what, where, sortorder)
     self.__cursor = connection.makecursor (query, params)
 
-    if not connection._broken_rowcount_:
+    if connection._must_fetchall_:
+      self.__rows = self.__cursor.fetchall()
+      self.__count = len(self.__rows)
+    elif not connection._broken_rowcount_:
       self.__count = self.__cursor.rowcount
 
     # If the driver has a broken rowcount, but does not report it as broken,
@@ -176,7 +179,8 @@
 
       # fetch next records from the backend
       if self.__connection._must_fetchall_:
-        rows = self.__cursor.fetchall ()
+        rows = self.__rows
+        self.__rows = []
       elif self.__connection._broken_fetchmany_:
         try:
           rows = self.__cursor.fetchmany (cachesize)


_______________________________________________
commit-gnue mailing list
commit-gnue@gnu.org
http://lists.gnu.org/mailman/listinfo/commit-gnue

Reply via email to