[CalendarServer-changes] [10946] CalendarServer/branches/users/gaya/sharedgroups/txdav
source_changes at macosforge.org
source_changes at macosforge.org
Mon Mar 18 17:05:16 PDT 2013
Revision: 10946
http://trac.calendarserver.org//changeset/10946
Author: gaya at apple.com
Date: 2013-03-18 17:05:16 -0700 (Mon, 18 Mar 2013)
Log Message:
-----------
use _revisionsForResourceIDs() instead of _revisionsForHomeID() in CommonHomeChild.loadAddObjects()
Modified Paths:
--------------
CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py
CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql.py
Modified: CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py
===================================================================
--- CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py 2013-03-18 22:33:22 UTC (rev 10945)
+++ CalendarServer/branches/users/gaya/sharedgroups/txdav/carddav/datastore/sql.py 2013-03-19 00:05:16 UTC (rev 10946)
@@ -590,33 +590,8 @@
else:
returnValue((yield super(AddressBook, self).bumpModified()))
- '''
- @classproperty
- def _revisionsForHomeID(cls): #@NoSelf
- bind = cls._bindSchema
- rev = cls._revisionsSchema
- return Select(
- [rev.RESOURCE_ID, Max(rev.REVISION)],
- From=rev.join(bind, rev.RESOURCE_ID == bind.RESOURCE_ID, 'left'),
- Where=(bind.HOME_RESOURCE_ID == Parameter("homeID")).
- And((rev.RESOURCE_NAME != None).Or(rev.DELETED == False)),
- GroupBy=rev.RESOURCE_ID
- )
- '''
-
@classmethod
- def _revisionsForResourceIDs(cls, resourceIDs):
- rev = cls._revisionsSchema
- return Select(
- [rev.RESOURCE_ID, Max(rev.REVISION)],
- From=rev,
- Where=rev.RESOURCE_ID.In(Parameter("resourceIDs", len(resourceIDs))),
- GroupBy=rev.RESOURCE_ID
- )
-
-
- @classmethod
@inlineCallbacks
def loadAllObjects(cls, home):
"""
Modified: CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql.py
===================================================================
--- CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql.py 2013-03-18 22:33:22 UTC (rev 10945)
+++ CalendarServer/branches/users/gaya/sharedgroups/txdav/common/datastore/sql.py 2013-03-19 00:05:16 UTC (rev 10946)
@@ -2887,7 +2887,35 @@
)
+ @classproperty
+ def _childrenAndMetadataForHomeID(cls): #@NoSelf
+ bind = cls._bindSchema
+ child = cls._homeChildSchema
+ childMetaData = cls._homeChildMetaDataSchema
+ columns = cls._bindColumns() + cls.metadataColumns()
+ return Select(columns,
+ From=child.join(
+ bind, child.RESOURCE_ID == bind.RESOURCE_ID,
+ 'left outer').join(
+ childMetaData, childMetaData.RESOURCE_ID == bind.RESOURCE_ID,
+ 'left outer'),
+ Where=(bind.HOME_RESOURCE_ID == Parameter("homeID")
+ ).And(bind.BIND_STATUS == _BIND_STATUS_ACCEPTED))
+
+ @classmethod
+ def _revisionsForResourceIDs(cls, resourceIDs):
+ rev = cls._revisionsSchema
+ return Select(
+ [rev.RESOURCE_ID, Max(rev.REVISION)],
+ From=rev,
+ Where=rev.RESOURCE_ID.In(Parameter("resourceIDs", len(resourceIDs))).
+ And((rev.RESOURCE_NAME != None).Or(rev.DELETED == False)),
+ GroupBy=rev.RESOURCE_ID
+ )
+
+
+
class CommonHomeChild(LoggingMixIn, FancyEqMixin, Memoizable, _SharedSyncLogic, HomeChildBase, SharingMixIn):
"""
Common ancestor class of AddressBooks and Calendars.
@@ -2962,35 +2990,6 @@
returnValue(names)
- @classproperty
- def _childrenAndMetadataForHomeID(cls): #@NoSelf
- bind = cls._bindSchema
- child = cls._homeChildSchema
- childMetaData = cls._homeChildMetaDataSchema
- columns = cls._bindColumns() + cls.metadataColumns()
- return Select(columns,
- From=child.join(
- bind, child.RESOURCE_ID == bind.RESOURCE_ID,
- 'left outer').join(
- childMetaData, childMetaData.RESOURCE_ID == bind.RESOURCE_ID,
- 'left outer'),
- Where=(bind.HOME_RESOURCE_ID == Parameter("homeID")
- ).And(bind.BIND_STATUS == _BIND_STATUS_ACCEPTED))
-
-
- @classproperty
- def _revisionsForHomeID(cls): #@NoSelf
- bind = cls._bindSchema
- rev = cls._revisionsSchema
- return Select(
- [rev.RESOURCE_ID, Max(rev.REVISION)],
- From=rev.join(bind, rev.RESOURCE_ID == bind.RESOURCE_ID, 'left'),
- Where=(bind.HOME_RESOURCE_ID == Parameter("homeID")).
- And((rev.RESOURCE_NAME != None).Or(rev.DELETED == False)),
- GroupBy=rev.RESOURCE_ID
- )
-
-
@classmethod
@inlineCallbacks
def loadAllObjects(cls, home):
@@ -3014,8 +3013,9 @@
cls._bindSchema.RESOURCE_ID, cls._bindSchema.HOME_RESOURCE_ID,
home._resourceID
))
-
- revisions = (yield cls._revisionsForHomeID.on(home._txn, homeID=home._resourceID))
+ childResourceIDs = [dataRow[2] for dataRow in dataRows]
+ revisions = (yield cls._revisionsForResourceIDs(childResourceIDs).on(home._txn, resourceIDs=childResourceIDs))
+ #revisions = (yield cls._revisionsForHomeID.on(home._txn, homeID=home._resourceID))
revisions = dict(revisions)
# Create the actual objects merging in properties
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130318/736aa18d/attachment.html>
More information about the calendarserver-changes
mailing list