diff options
Diffstat (limited to 'test/perf/masseagerload.py')
| -rw-r--r-- | test/perf/masseagerload.py | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/test/perf/masseagerload.py b/test/perf/masseagerload.py deleted file mode 100644 index 6e6d86d54..000000000 --- a/test/perf/masseagerload.py +++ /dev/null @@ -1,54 +0,0 @@ -from sqlalchemy import * -from sqlalchemy.orm import * -from test.lib import profiling - -NUM = 500 -DIVISOR = 50 - -engine = create_engine('sqlite://') -meta = MetaData(engine) -items = Table('items', meta, - Column('item_id', Integer, primary_key=True), - Column('value', String(100))) -subitems = Table('subitems', meta, - Column('sub_id', Integer, primary_key=True), - Column('parent_id', Integer, ForeignKey('items.item_id')), - Column('value', String(100))) - -class Item(object):pass -class SubItem(object):pass -mapper(Item, items, properties={'subs':relationship(SubItem, lazy='joined')}) -mapper(SubItem, subitems) - -def load(): - global l - l = [] - for x in range(1,NUM/DIVISOR + 1): - l.append({'item_id':x, 'value':'this is item #%d' % x}) - #print l - items.insert().execute(*l) - for x in range(1, NUM/DIVISOR + 1): - l = [] - for y in range(1, DIVISOR + 1): - z = ((x-1) * DIVISOR) + y - l.append({'sub_id':z,'value':'this is item #%d' % z, 'parent_id':x}) - #print l - subitems.insert().execute(*l) - -@profiling.profiled('massjoinedload', always=True, sort=['cumulative']) -def massjoinedload(session): - session.begin() - query = session.query(Item) - l = query.all() - print "loaded ", len(l), " items each with ", len(l[0].subs), "subitems" - -def all(): - meta.create_all() - try: - load() - massjoinedload(create_session()) - finally: - meta.drop_all() - -if __name__ == '__main__': - all() |
