- mysql doesnt have + for concatenation, but pg doesnt have concat() (nor does sqlite)

- parameterized masseagerload test
This commit is contained in:
Mike Bayer
2007-05-26 19:41:31 +00:00
parent 8f59ea5a09
commit 379e210383
2 changed files with 16 additions and 9 deletions
+10 -5
View 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()
+6 -4
View 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)