ok its fixed in 2750 and it was mega-dumb, yes it was the uselist=False. lets pretend this one didnt happen this late in the game....
On Jun 20, 2007, at 2:52 AM, Eric Ongerth wrote: > items = Table('items', metadata, > Column('id', Integer, primary_key=True, autoincrement=True), > Column('type', String(20))) > > skis = Table('skis', metadata, > Column('id', Integer, primary_key=True), > Column('data', Integer), > ForeignKeyConstraint(['id'], ['items.id'])) > > events = Table('events', metadata, > Column('id', Integer, primary_key=True), > Column('etype', String(20)), > Column('data', Integer)) > > reservations = Table('reservations', metadata, > Column('id', Integer, ForeignKey('events.id'), primary_key=True), > Column('customer_id', Integer, ForeignKey('customers.id')), > Column('data', Integer)) > > gearsets = Table('gearsets', metadata, > Column('id', Integer, primary_key=True), > Column('event_id', Integer, ForeignKey('events.id')), > Column('data', Integer)) > > historyfile = Table('historyfile', metadata, > Column('item_id', Integer, ForeignKey('items.id'), > primary_key=True), > Column('gearset_id', Integer, ForeignKey('gearsets.id'), > primary_key=True)) > > currentfile = Table('currentfile', metadata, > Column('item_id', Integer, ForeignKey('items.id'), > primary_key=True), > Column('gearset_id', Integer, ForeignKey('gearsets.id'), > primary_key=True)) > > futurefile = Table('futurefile', metadata, > Column('item_id', Integer, ForeignKey(' items.id'), > primary_key=True), > Column('gearset_id', Integer, ForeignKey(' gearsets.id'), > primary_key=True)) > > customers = Table('customers', metadata, > Column('id', Integer, primary_key = True, autoincrement=True), > Column('data', Integer)) > > class Item(object): pass > class Ski(Item): pass > class GearSet(object): pass > class Event(object): pass > class Reservation(Event): pass > class Customer(object): pass > > item_join = polymorphic_union( > { > 'ski':items.join(skis), > 'item':items.select(items.c.type=='item'), > }, None, 'ijoin') > > item_mapper = mapper(Item, items, > select_table=item_join, > polymorphic_on=item_join.c.type, > polymorphic_identity='item', > properties = { > 'history': relation(GearSet, > secondary=historyfile, > backref=backref('items_history', uselist=True), > uselist=True), > 'current': relation(GearSet, > secondary=currentfile, > backref=backref('items_current', uselist=True), > uselist=False), > 'future': relation(GearSet, > secondary=futurefile, > backref=backref('items_future', uselist=True), > uselist=True)}) > > customer_mapper = mapper(Customer, customers) > > gearset_mapper = mapper(GearSet, gearsets, > properties = { > 'event': relation(Event, > backref=backref('gearsets', uselist=True), > uselist=False) > }) > > > event_join = polymorphic_union( > { > 'reservation':events.join(reservations), > 'event':events.select(events.c.etype=='event'), > }, None, 'ejoin') > > event_mapper = mapper(Event, events, > select_table=event_join, > polymorphic_on=event_join.c.etype, > polymorphic_identity='event') > > reservation_mapper = mapper(Reservation, reservations, > inherits=event_mapper, > polymorphic_identity='reservation', > properties = { > 'customer': relation(Customer, > backref=backref('reservations', uselist=True), > uselist=False) > }) > > ski_mapper = mapper(Ski, skis, > inherits=item_mapper, > polymorphic_identity='ski') > > > if __name__ == '__main__': > metadata.create_all() > session = create_session() > > ski = Ski() > gearset = GearSet() > customer = Customer() > reservation = Reservation() > reservation.customer = customer > gearset.items_future.append(ski) > gearset.event = reservation > session.save(reservation) > session.flush() > > item = session.query(Item).selectfirst() > item.future = [] > session.delete(item) > session.flush() > session.close() > metadata.drop_all() > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---