[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r8454 - trunk/gnue-appserver/src,
reinhard <=