[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