commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnue] r8454 - trunk/gnue-appserver/src


From: reinhard
Subject: [gnue] r8454 - trunk/gnue-appserver/src
Date: Fri, 12 May 2006 10:50:25 -0500 (CDT)

Author: reinhard
Date: 2006-05-12 10:50:24 -0500 (Fri, 12 May 2006)
New Revision: 8454

Modified:
   trunk/gnue-appserver/src/data.py
Log:
Use new recordSet.raw() function. This increases performance by about 50%.


Modified: trunk/gnue-appserver/src/data.py
===================================================================
--- trunk/gnue-appserver/src/data.py    2006-05-12 11:58:41 UTC (rev 8453)
+++ trunk/gnue-appserver/src/data.py    2006-05-12 15:50:24 UTC (rev 8454)
@@ -1266,9 +1266,9 @@
     self.__mergeWithCache (conditions, order)
 
     self.__current   = None
-    self.__isFirst   = True
     self.__resultSet = _createResultSet (self.__connections, self.__database,
                                          self.__content, conditions, order)
+    self.__rawdata = self.__resultSet.raw()
 
   # ---------------------------------------------------------------------------
   # Return the number of records
@@ -1351,7 +1351,7 @@
   # Build record objects from current recordSet
   # ---------------------------------------------------------------------------
 
-  def __buildRecords (self):
+  def __buildRecords (self, data):
 
     result = None
     records = {}                        # the record for each alias
@@ -1361,15 +1361,15 @@
 
       # find id of the record
       if alias:
-        id = self.__resultSet.current [alias + u'.gnue_id']
+        id = data [alias + u'.gnue_id']
       else:
-        id = self.__resultSet.current [u'gnue_id']
+        id = data [u'gnue_id']
 
       if id:
         # build the record object
         r = record (self.__cache, self.__connections, self.__database,
                     table, id)
-        r._fill (alias, fields, self.__resultSet.current)
+        r._fill (alias, fields, data)
         records [alias] = r
 
         # the table having no join condition is the "main" table
@@ -1407,17 +1407,11 @@
 
     # If there is no record instance left from an earlier call, we fetch one
     if self.__current is None:
-      if self.__isFirst:
-        beRec = self.__resultSet.firstRecord ()
-        self.__isFirst = False
-      else:
-        beRec = self.__resultSet.nextRecord ()
-
-      if beRec is None:
+      try:
+        self.__current = self.__buildRecords(self.__rawdata.next())
+      except StopIteration:
         return None
 
-      self.__current = self.__buildRecords ()
-
     # Now, have a look if the instance has to be removed
     if self.__remove.has_key (self.__current.getRow ()):
       self.__current = None





reply via email to

[Prev in Thread] Current Thread [Next in Thread]