[CalendarServer-changes] [9715] CalendarServer/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Thu Aug 16 14:49:52 PDT 2012
Revision: 9715
http://trac.macosforge.org/projects/calendarserver/changeset/9715
Author: glyph at apple.com
Date: 2012-08-16 14:49:52 -0700 (Thu, 16 Aug 2012)
Log Message:
-----------
support parsing a default value in the schema with parentheses.
Modified Paths:
--------------
CalendarServer/trunk/twext/enterprise/dal/parseschema.py
CalendarServer/trunk/twext/enterprise/dal/test/test_parseschema.py
Property Changed:
----------------
CalendarServer/trunk/
Modified: CalendarServer/trunk/twext/enterprise/dal/parseschema.py
===================================================================
--- CalendarServer/trunk/twext/enterprise/dal/parseschema.py 2012-08-16 21:49:51 UTC (rev 9714)
+++ CalendarServer/trunk/twext/enterprise/dal/parseschema.py 2012-08-16 21:49:52 UTC (rev 9715)
@@ -389,6 +389,10 @@
self.table.checkConstraint(self.readExpression(self.next()))
elif val.match(Keyword, 'DEFAULT'):
theDefault = self.next()
+ if isinstance(theDefault, Parenthesis):
+ iDefault = iterSignificant(theDefault)
+ expect(iDefault, ttype=Punctuation, value="(")
+ theDefault = iDefault.next()
if isinstance(theDefault, Function):
thingo = theDefault.tokens[0].get_name()
parens = expectSingle(
Modified: CalendarServer/trunk/twext/enterprise/dal/test/test_parseschema.py
===================================================================
--- CalendarServer/trunk/twext/enterprise/dal/test/test_parseschema.py 2012-08-16 21:49:51 UTC (rev 9714)
+++ CalendarServer/trunk/twext/enterprise/dal/test/test_parseschema.py 2012-08-16 21:49:52 UTC (rev 9715)
@@ -129,6 +129,25 @@
False)
+ def test_sequenceDefaultWithParens(self):
+ """
+ SQLite requires 'default' expression to be in parentheses, and that
+ should be equivalent on other databases; we should be able to parse
+ that too.
+ """
+ s = self.schemaFromString(
+ """
+ create sequence alpha;
+ create table foo (
+ bar integer default (nextval('alpha')) not null,
+ qux integer not null
+ );
+ """
+ )
+ self.assertEquals(s.tableNamed("foo").columnNamed("bar").needsValue(),
+ False)
+
+
def test_defaultConstantColumns(self):
"""
Parsing a 'default' column with an appropriate type in it will return
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20120816/29279870/attachment-0001.html>
More information about the calendarserver-changes
mailing list