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

source_changes at macosforge.org source_changes at macosforge.org
Wed Feb 16 06:30:44 PST 2011


Revision: 6957
          http://trac.macosforge.org/projects/calendarserver/changeset/6957
Author:   glyph at apple.com
Date:     2011-02-16 06:30:44 -0800 (Wed, 16 Feb 2011)
Log Message:
-----------
dalify quota increase

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:30:32 UTC (rev 6956)
+++ CalendarServer/branches/users/glyph/dalify/txdav/common/datastore/sql.py	2011-02-16 14:30:44 UTC (rev 6957)
@@ -64,6 +64,7 @@
 from twext.enterprise.dal.syntax import Lock
 from twext.enterprise.dal.syntax import Insert
 from twext.enterprise.dal.syntax import Max
+from twext.enterprise.dal.syntax import Update
 
 from txdav.base.propertystore.base import PropertyName
 from txdav.base.propertystore.none import PropertyStore as NonePropertyStore
@@ -836,13 +837,22 @@
 
 
     @classproperty
-    def _preLockResourceIDQuery(self):
-        meta = self._homeMetaDataSchema
+    def _preLockResourceIDQuery(cls):
+        meta = cls._homeMetaDataSchema
         return Select(From=meta,
                       Where=meta.RESOURCE_ID==Parameter("resourceID"),
                       ForUpdate=True)
 
 
+    @classproperty
+    def _increaseQuotaQuery(cls):
+        meta = cls._homeMetaDataSchema
+        return Update({meta.QUOTA_USED_BYTES: meta.QUOTA_USED_BYTES +
+                       Parameter("delta")},
+                      Where=meta.RESOURCE_ID == Parameter("resourceID"),
+                      Return=meta.QUOTA_USED_BYTES)
+
+
     @inlineCallbacks
     def adjustQuotaUsedBytes(self, delta):
         """
@@ -854,14 +864,8 @@
         yield self._preLockResourceIDQuery.on(self._txn,
                                               resourceID=self._resourceID)
 
-        self._quotaUsedBytes = (yield self._txn.execSQL("""
-            update %(name)s
-            set %(column_QUOTA_USED_BYTES)s = %(column_QUOTA_USED_BYTES)s + %%s
-            where %(column_RESOURCE_ID)s = %%s
-            returning %(column_QUOTA_USED_BYTES)s
-            """ % self._homeMetaDataTable,
-            [delta, self._resourceID]
-        ))[0][0]
+        self._quotaUsedBytes = (yield self._increaseQuotaQuery.on(
+            self._txn, delta=delta, resourceID=self._resourceID))[0][0]
 
         # Double check integrity
         if self._quotaUsedBytes < 0:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20110216/571b4cbd/attachment.html>


More information about the calendarserver-changes mailing list