[CalendarServer-changes] [6950] CalendarServer/branches/users/glyph/dalify/txdav/common/datastore/ sql.py

source_changes at macosforge.org source_changes at macosforge.org
Wed Feb 16 06:29:22 PST 2011


Revision: 6950
          http://trac.macosforge.org/projects/calendarserver/changeset/6950
Author:   glyph at apple.com
Date:     2011-02-16 06:29:22 -0800 (Wed, 16 Feb 2011)
Log Message:
-----------
dalify first query in CommonHome.resourceNamesSinceToken

Modified Paths:
--------------
    CalendarServer/branches/users/glyph/dalify/txdav/common/datastore/sql.py

Modified: CalendarServer/branches/users/glyph/dalify/txdav/common/datastore/sql.py
===================================================================
--- CalendarServer/branches/users/glyph/dalify/txdav/common/datastore/sql.py	2011-02-16 14:29:10 UTC (rev 6949)
+++ CalendarServer/branches/users/glyph/dalify/txdav/common/datastore/sql.py	2011-02-16 14:29:22 UTC (rev 6950)
@@ -661,6 +661,24 @@
         returnValue("%s#%s" % (self._resourceID, revision))
 
 
+    @classproperty
+    def _changesQuery(cls):
+        bind = cls._bindSchema
+        rev = cls._revisionsSchema
+        return Select([bind.RESOURCE_NAME, rev.COLLECTION_NAME,
+                       rev.RESOURCE_NAME, rev.DELETED],
+                      From=rev.join(
+                          bind,
+                          (bind.HOME_RESOURCE_ID ==
+                           Parameter("resourceID")).And(
+                               rev.RESOURCE_ID ==
+                               bind.RESOURCE_ID),
+                          'left outer'),
+                      Where=(rev.REVISION > Parameter("token")).And(
+                          rev.HOME_RESOURCE_ID ==
+                          Parameter("resourceID")))
+
+
     @inlineCallbacks
     def resourceNamesSinceToken(self, token, depth):
 
@@ -671,19 +689,9 @@
                 wasdeleted
             )
             for path, collection, name, wasdeleted in
-            (yield self._txn.execSQL("""
-                select %(BIND:column_RESOURCE_NAME)s, %(REV:column_COLLECTION_NAME)s, %(REV:column_RESOURCE_NAME)s, %(REV:column_DELETED)s
-                from %(REV:name)s
-                left outer join %(BIND:name)s on (
-                  %(BIND:name)s.%(BIND:column_HOME_RESOURCE_ID)s = %%s and
-                  %(REV:name)s.%(REV:column_RESOURCE_ID)s = %(BIND:name)s.%(BIND:column_RESOURCE_ID)s
-                )
-                where
-                  %(REV:column_REVISION)s > %%s and
-                  %(REV:name)s.%(REV:column_HOME_RESOURCE_ID)s = %%s
-                """ % self._revisionBindJoinTable,
-                [self._resourceID, token, self._resourceID],
-            ))
+            (yield self._changesQuery.on(self._txn,
+                                         resourceID=self._resourceID,
+                                         token=token))
         ]
 
         deleted = []
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20110216/f17aea5e/attachment-0001.html>


More information about the calendarserver-changes mailing list