From: Mike Bayer Date: Sat, 26 May 2007 19:41:31 +0000 (+0000) Subject: - mysql doesnt have + for concatenation, but pg doesnt have concat() (nor does sqlite) X-Git-Tag: rel_0_3_8~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=379e21038347493be8f4ff2ed2f8a501ce9d4fa3;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - mysql doesnt have + for concatenation, but pg doesnt have concat() (nor does sqlite) - parameterized masseagerload test --- diff --git a/test/orm/mapper.py b/test/orm/mapper.py index afb5bac1ff..a8beabf6d3 100644 --- a/test/orm/mapper.py +++ b/test/orm/mapper.py @@ -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() diff --git a/test/perf/masseagerload.py b/test/perf/masseagerload.py index 8563dab1af..23b4c5ba1b 100644 --- a/test/perf/masseagerload.py +++ b/test/perf/masseagerload.py @@ -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)