[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