]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
fixed firebird visit_alias [ticket:779]
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 22 Sep 2007 18:13:23 +0000 (18:13 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 22 Sep 2007 18:13:23 +0000 (18:13 +0000)
CHANGES
lib/sqlalchemy/databases/firebird.py
test/dialect/firebird.py
test/testlib/testing.py

diff --git a/CHANGES b/CHANGES
index 6ecb23bc133e03febe80616e8cf8d74b4089ffb3..ca87687f4327ad2be196b00032f6399a04e17c4c 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -59,7 +59,7 @@ CHANGES
   as it does in 0.3 since ~(x==y) compiles to "x != y", but still applies
   to operators like BETWEEN.
 
-- Other tickets: [ticket:768], [ticket:728]
+- Other tickets: [ticket:768], [ticket:728], [ticket:779]
 
 0.4.0beta5
 ----------
index 5f258a0296813128cdd2483ecc9e132308ac6b6c..87908c74e2c7f41edaccd7e4b8df5ff201e618ee 100644 (file)
@@ -297,9 +297,9 @@ class FBCompiler(compiler.DefaultCompiler):
     def visit_alias(self, alias, asfrom=False, **kwargs):
         # Override to not use the AS keyword which FB 1.5 does not like
         if asfrom:
-            return self.process(alias.original, asfrom=True) + " " + self.preparer.format_alias(alias)
+            return self.process(alias.original, asfrom=True, **kwargs) + " " + self.preparer.format_alias(alias, self._anonymize(alias.name))
         else:
-            return self.process(alias.original, asfrom=True)
+            return self.process(alias.original, **kwargs)
 
     def visit_function(self, func):
         if func.clauses:
index 87d9618fb1c915155a0cc56a4844b9281d46d69c..98750730682463ac5ec5f12ba4a05cf06539b1e6 100644 (file)
@@ -1,6 +1,7 @@
 import testbase
 from sqlalchemy import *
 from sqlalchemy.databases import firebird
+from sqlalchemy.sql import table, column
 from testlib import *
 
 class BasicTest(AssertMixin):
@@ -8,3 +9,17 @@ class BasicTest(AssertMixin):
     def test_import(self):
         # we got this far, right?
         return True
+
+
+
+class CompileTest(SQLCompileTest):
+    __dialect__ = firebird.FBDialect()
+
+    def test_alias(self):
+        t = table('sometable', column('col1'), column('col2'))
+        s = select([t.alias()])
+        self.assert_compile(s, "SELECT sometable_1.col1, sometable_1.col2 FROM sometable sometable_1")
+
+
+if __name__ == '__main__':
+    testbase.main()
index 2052f9e9751fa0f681401d790933e5386966b3a6..1c80c7bb13de5dbab6afe1fcfcda7f4631afd98c 100644 (file)
@@ -216,7 +216,7 @@ class SQLCompileTest(PersistTest):
                 
         c = clause.compile(column_keys=keys, dialect=dialect)
 
-        print "\nSQL String:\n" + str(c) + repr(c.get_params())
+        print "\nSQL String:\n" + str(c) + repr(c.params)
 
         cc = re.sub(r'\n', '', str(c))
 
@@ -224,9 +224,9 @@ class SQLCompileTest(PersistTest):
 
         if checkparams is not None:
             if isinstance(checkparams, list):
-                self.assert_(c.get_params().get_raw_list({}) == checkparams, "params dont match ")
+                self.assert_(c.params.get_raw_list({}) == checkparams, "params dont match ")
             else:
-                self.assert_(c.get_params().get_original_dict() == checkparams, "params dont match" + repr(c.get_params()))
+                self.assert_(c.params.get_original_dict() == checkparams, "params dont match" + repr(c.params))
 
 class AssertMixin(PersistTest):
     """given a list-based structure of keys/properties which represent information within an object structure, and