[CalendarServer-changes] [7151] CalendarServer/branches/users/glyph/oracle/txdav/common/datastore/ sql_legacy.py
source_changes at macosforge.org
source_changes at macosforge.org
Mon Mar 7 19:07:20 PST 2011
Revision: 7151
http://trac.macosforge.org/projects/calendarserver/changeset/7151
Author: glyph at apple.com
Date: 2011-03-07 19:07:20 -0800 (Mon, 07 Mar 2011)
Log Message:
-----------
spot-dalify to fix hard-coded format character, activate oracle sql generators, and explicitly work around boolean constants by replacing them with integers
Modified Paths:
--------------
CalendarServer/branches/users/glyph/oracle/txdav/common/datastore/sql_legacy.py
Modified: CalendarServer/branches/users/glyph/oracle/txdav/common/datastore/sql_legacy.py
===================================================================
--- CalendarServer/branches/users/glyph/oracle/txdav/common/datastore/sql_legacy.py 2011-03-08 03:07:08 UTC (rev 7150)
+++ CalendarServer/branches/users/glyph/oracle/txdav/common/datastore/sql_legacy.py 2011-03-08 03:07:20 UTC (rev 7151)
@@ -940,11 +940,22 @@
"""
+def fixbools(sqltext):
+ return sqltext.replace("TRUE", "1").replace("FALSE", "0")
+
+
class oraclesqlgenerator(RealSQLBehaviorMixin, sqlgenerator):
"""
Query generator for Oracle indexed searches.
"""
+ TIMESPANTEST = fixbools(RealSQLBehaviorMixin.TIMESPANTEST)
+ TIMESPANTEST_NOEND = fixbools(RealSQLBehaviorMixin.TIMESPANTEST_NOEND)
+ TIMESPANTEST_NOSTART = fixbools(RealSQLBehaviorMixin.TIMESPANTEST_NOSTART)
+ TIMESPANTEST_TAIL_PIECE = fixbools(
+ RealSQLBehaviorMixin.TIMESPANTEST_TAIL_PIECE)
+ TIMESPANTEST_JOIN_ON_PIECE = fixbools(
+ RealSQLBehaviorMixin.TIMESPANTEST_JOIN_ON_PIECE)
@@ -1096,16 +1107,16 @@
# that it happens to be used by the oracle binding that we're using,
# whereas the postgres binding happens to use the 'pyformat' (e.g. %s)
# parameter style.
-# if self.calendar._txn.paramstyle == 'numeric':
-# generator = oraclesqlgenerator
-# else:
-# generator = postgresqlgenerator
+ if self.calendar._txn.paramstyle == 'numeric':
+ generator = oraclesqlgenerator
+ else:
+ generator = postgresqlgenerator
# Make sure we have a proper Filter element and get the partial SQL
# statement to use.
if isinstance(filter, calendarqueryfilter.Filter):
qualifiers = calendarquery.sqlcalendarquery(
filter, self.calendar._resourceID, useruid,
- generator=postgresqlgenerator
+ generator=generator
)
if qualifiers is not None:
# Determine how far we need to extend the current expansion of
@@ -1240,7 +1251,7 @@
# CARDDAV
-class oracleadbkgenerator(sqlgenerator):
+class oraclesqladbkgenerator(sqlgenerator):
"""
Query generator for Oracle indexed searches.
"""
@@ -1286,7 +1297,7 @@
-class postgresqladbkgenerator(FormatParamStyleMixin, oracleadbkgenerator):
+class postgresqladbkgenerator(FormatParamStyleMixin, oraclesqladbkgenerator):
"""
Query generator for PostgreSQL indexed searches. Inherit 'real' database
behavior from L{oracleadbkgenerator}, and %s-style formatting from
@@ -1355,10 +1366,14 @@
C{name} is the resource name, C{uid} is the resource UID, and
C{type} is the resource iCalendar component type.x
"""
-
+ if self.addressbook._txn.paramstyle == 'numeric':
+ generator = oraclesqladbkgenerator
+ else:
+ generator = postgresqladbkgenerator
# Make sure we have a proper Filter element and get the partial SQL statement to use.
if isinstance(filter, carddavxml.Filter):
- qualifiers = addressbookquery.sqladdressbookquery(filter, self.addressbook._resourceID, generator=postgresqladbkgenerator)
+ qualifiers = addressbookquery.sqladdressbookquery(
+ filter, self.addressbook._resourceID, generator=generator)
else:
qualifiers = None
if qualifiers is not None:
@@ -1368,10 +1383,13 @@
qualifiers[1]
)
else:
- rowiter = yield self._txn.execSQL(
- "select RESOURCE_NAME, VCARD_UID from ADDRESSBOOK_OBJECT where ADDRESSBOOK_RESOURCE_ID = %s",
- [self.addressbook._resourceID, ],
- )
+ rowiter = yield Select(
+ [schema.ADDRESSBOOK_OBJECT.RESOURCE_NAME,
+ schema.ADDRESSBOOK_OBJECT.VCARD_UID],
+ From=schema.ADDRESSBOOK_OBJECT,
+ Where=schema.ADDRESSBOOK_OBJECT.ADDRESSBOOK_RESOURCE_ID ==
+ self.addressbook._resourceID
+ ).on(self.addressbook._txn)
returnValue(list(rowiter))
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20110307/e7550fca/attachment-0001.html>
More information about the calendarserver-changes
mailing list