]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- mysql doesnt have + for concatenation, but pg doesnt have concat() (nor does sqlite)
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 26 May 2007 19:41:31 +0000 (19:41 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 26 May 2007 19:41:31 +0000 (19:41 +0000)
- parameterized masseagerload test

test/orm/mapper.py
test/perf/masseagerload.py

index afb5bac1ffda4a5fcc1266f296a118171a7bf5ff..a8beabf6d32927f9d4caab6b3aefd53bb02a830b 100644 (file)
@@ -378,8 +378,13 @@ class MapperTest(MapperSuperTest):
 
         l = q.select_by(items=item)
         self.assert_result(l, User, user_result[0])
-    
-    
+        
+        # TODO: this works differently from:
+        #q = sess.query(User).join(['orders', 'items']).select_by(order_id=3)
+        # because select_by() doesnt respect query._joinpoint, whereas filter_by does
+        q = sess.query(User).join(['orders', 'items']).filter_by(order_id=3).list()
+        self.assert_result(l, User, user_result[0])
+        
         try:
             # this should raise AttributeError
             l = q.select_by(items=5)
@@ -1661,10 +1666,10 @@ class InstancesTest(MapperSuperTest):
         mapper(User, users)
 
         # Fixme ticket #475!
-        if db.engine.name == 'sqlite':
-            col2 = ("Name:" + users.c.user_name).label('concat')
-        else:
+        if db.engine.name == 'mysql':
             col2 = func.concat("Name:", users.c.user_name).label('concat')
+        else:
+            col2 = ("Name:" + users.c.user_name).label('concat')
         
         s = select([users, func.count(addresses.c.address_id).label('count'), col2], from_obj=[users.outerjoin(addresses)], group_by=[c for c in users.c], order_by=[users.c.user_id])
         sess = create_session()
index 8563dab1af71e6805419a665e25262bf132a9291..23b4c5ba1b78046994a2786a8f8260bffbc53df6 100644 (file)
@@ -9,6 +9,7 @@ import time
 db = testbase.db
 
 NUM = 25000
+DIVISOR = 500
 
 class LoadTest(AssertMixin):
     def setUpAll(self):
@@ -27,13 +28,14 @@ class LoadTest(AssertMixin):
     def setUp(self):
         clear_mappers()
         l = []
-        for x in range(1,NUM/500):
+        for x in range(1,NUM/DIVISOR):
             l.append({'item_id':x, 'value':'this is item #%d' % x})
+        #print l
         items.insert().execute(*l)
-        for x in range(1, NUM/500):
+        for x in range(1, NUM/DIVISOR):
             l = []
-            for y in range(1, NUM/(NUM/500)):
-                z = ((x-1) * NUM/(NUM/500)) + y
+            for y in range(1, NUM/(NUM/DIVISOR)):
+                z = ((x-1) * NUM/(NUM/DIVISOR)) + y
                 l.append({'sub_id':z,'value':'this is iteim #%d' % z, 'parent_id':x})
             #print l
             subitems.insert().execute(*l)