[CalendarServer-changes] [6783] CalendarServer/branches/users/glyph/dal/txdav/base/datastore/test/ test_sqlsyntax.py

source_changes at macosforge.org source_changes at macosforge.org
Wed Jan 19 13:00:29 PST 2011


Revision: 6783
          http://trac.macosforge.org/projects/calendarserver/changeset/6783
Author:   glyph at apple.com
Date:     2011-01-19 13:00:29 -0800 (Wed, 19 Jan 2011)
Log Message:
-----------
Failing test for name qualification.

Modified Paths:
--------------
    CalendarServer/branches/users/glyph/dal/txdav/base/datastore/test/test_sqlsyntax.py

Modified: CalendarServer/branches/users/glyph/dal/txdav/base/datastore/test/test_sqlsyntax.py
===================================================================
--- CalendarServer/branches/users/glyph/dal/txdav/base/datastore/test/test_sqlsyntax.py	2011-01-19 21:00:19 UTC (rev 6782)
+++ CalendarServer/branches/users/glyph/dal/txdav/base/datastore/test/test_sqlsyntax.py	2011-01-19 21:00:29 UTC (rev 6783)
@@ -35,6 +35,7 @@
         addSQLToSchema(schema=s, schemaData="""
                        create table FOO (BAR integer, BAZ integer);
                        create table BOZ (QUX integer);
+                       create table OTHER (BAR integer, FOO_BAR integer);
                        """)
         self.schema = SchemaSyntax(s)
 
@@ -164,3 +165,21 @@
         self.assertRaises(TableMismatch, Select, [self.schema.BOZ.QUX],
                           From=self.schema.FOO)
 
+
+    def test_qualifyNames(self):
+        """
+        When two columns in the FROM clause requested from different tables have
+        the same name, the emitted SQL should explicitly disambiguate them.
+        """
+        self.assertEquals(
+            Select([self.schema.FOO.BAR,
+                    self.schema.OTHER.BAR],
+                   From=self.schema.FOO.join(self.schema.OTHER,
+                                             self.schema.OTHER.FOO_BAR ==
+                                             self.schema.FOO.BAR)).toSQL(),
+            SQLStatement(
+                "select FOO.BAR, OTHER.BAR from FOO "
+                "join OTHER on FOO_BAR == FOO.BAR"
+            )
+        )
+
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20110119/b51bc8c2/attachment-0001.html>


More information about the calendarserver-changes mailing list