]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- some ordering fixes on DISTINCT for PG 8.4, mysql rel_0_5_6
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 12 Sep 2009 23:53:03 +0000 (23:53 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 12 Sep 2009 23:53:03 +0000 (23:53 +0000)
- forwards compat "postgresql" name available for --db, engine urls

CHANGES
lib/sqlalchemy/databases/postgresql.py [new file with mode: 0644]
lib/sqlalchemy/test/config.py
test/orm/test_eager_relations.py
test/orm/test_lazy_relations.py
test/orm/test_query.py

diff --git a/CHANGES b/CHANGES
index d19085c00fe8fb31bf1d475f1f3a45fdd20b8a54..79d08eb90bf82eff7dc874d4742e2aa8da0fbfde 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -113,6 +113,10 @@ CHANGES
       dict for "info" argument would raise an exception.
       [ticket:1482]
 
+- postgresql
+    - The driver can be specified as "postgresql://" in URLs,
+      allowing forwards-compatibility with 0.6.
+      
 - oracle
     - Backported 0.6 fix for Oracle alias names not getting
       truncated.  [ticket:1309]
diff --git a/lib/sqlalchemy/databases/postgresql.py b/lib/sqlalchemy/databases/postgresql.py
new file mode 100644 (file)
index 0000000..0b7a432
--- /dev/null
@@ -0,0 +1,5 @@
+"""Provide forwards compatibility with SQLAlchemy 0.6 which 
+uses the name "postgresql" for the Postgresql dialect.
+
+"""
+from sqlalchemy.databases.postgres import dialect
\ No newline at end of file
index 6ea5667cc3357e9ed68632011b599f8014dd47ce..5b2171dc23b21dc88b1b3fc0851d89520f679f68 100644 (file)
@@ -14,6 +14,7 @@ base_config = """
 sqlite=sqlite:///:memory:
 sqlite_file=sqlite:///querytest.db
 postgres=postgres://scott:tiger@127.0.0.1:5432/test
+postgresql=postgres://scott:tiger@127.0.0.1:5432/test
 mysql=mysql://scott:tiger@127.0.0.1:3306/test
 oracle=oracle://scott:tiger@127.0.0.1:1521
 oracle8=oracle://scott:tiger@127.0.0.1:1521/?use_ansi=0
index 384e0472f6c1d5862caa0dacaa371687304113d3..aaba9bbe5d00ca47c15de1aa000f7f8c6356de42 100644 (file)
@@ -483,15 +483,15 @@ class EagerTest(_fixtures.FixtureTest):
         s = sa.union_all(u2.select(use_labels=True), u2.select(use_labels=True), u2.select(use_labels=True)).alias('u')
 
         mapper(User, users, properties={
-            'addresses':relation(mapper(Address, addresses), lazy=False),
+            'addresses':relation(mapper(Address, addresses), lazy=False, order_by=addresses.c.id),
         })
 
         sess = create_session()
         q = sess.query(User)
 
         def go():
-            l = q.filter(s.c.u2_id==User.id).distinct().all()
-            assert self.static.user_address_result == l
+            l = q.filter(s.c.u2_id==User.id).distinct().order_by(User.id).all()
+            eq_(self.static.user_address_result, l)
         self.assert_sql_count(testing.db, go, 1)
 
     @testing.fails_on('maxdb', 'FIXME: unknown')
index 819f29911ebf154dc09b983a6fdae7d0807686cb..8867232b244660618f558e4fdc5c417b05283cc0 100644 (file)
@@ -164,8 +164,8 @@ class LazyTest(_fixtures.FixtureTest):
         u2 = users.alias('u2')
         s = sa.union_all(u2.select(use_labels=True), u2.select(use_labels=True), u2.select(use_labels=True)).alias('u')
         print [key for key in s.c.keys()]
-        l = q.filter(s.c.u2_id==User.id).distinct().all()
-        assert self.static.user_all_result == l
+        l = q.filter(s.c.u2_id==User.id).distinct().order_by(User.id).all()
+        eq_(self.static.user_all_result, l)
 
     @testing.resolve_artifact_names
     def test_one_to_many_scalar(self):
index 09e27c8d8949e64b492cff52eae4a496b199cedd..1934a1330f34b728e335ae4ef37a46b7e9f19b5c 100644 (file)
@@ -987,7 +987,7 @@ class CountTest(QueryTest):
         
 class DistinctTest(QueryTest):
     def test_basic(self):
-        assert [User(id=7), User(id=8), User(id=9),User(id=10)] == create_session().query(User).distinct().all()
+        assert [User(id=7), User(id=8), User(id=9),User(id=10)] == create_session().query(User).distinct().order_by(User.id).all()
         assert [User(id=7), User(id=9), User(id=8),User(id=10)] == create_session().query(User).distinct().order_by(desc(User.name)).all()
 
     def test_joined(self):