On Thursday 21 August 2008 17:57:31 Michael Bayer wrote: > On Aug 21, 2008, at 9:03 AM, [EMAIL PROTECTED] wrote: > > hi > > i plan to implement "embedded structures" in dbcook (as opposed > > to referenced structures living in separate tables), and > > composite props seems to fit nicely. > > > > the idea is to achieve something like: > > > > class Point( embeddableBase): > > x = Int() > > y = Int() > > > > class Vertex( base): > > p1 = Point() > > p2 = Point() > > > > which should create a table/mapping > > with columns ( p1_x, p1_y, p2_x, p2_y ) and a mapper with the p1, > > p2 as composite_props. > > > > the plain columns are still accessible via the mapper, right? > > e.g. query(Vertex).filter( Vertex.p1_x >4 ) > > can composite's props be used in query expressions? e.g. > > query(Vertex).filter( Vertex.p1.x > 4 ) > > Not by default, the composite attribute p1 and p2 would prevent > p1_x, p1_y, etc. from being mapped. you could try explicitly > mapping them, i havent experimented much with that. it becomes a > gray area since which attribute would it favor for the ultimate > value to be persisted? plain descriptors look like a better > solution here (composites are probably an unnecessary feature in > the first place). > > > can composite's props be assigned separately ? e.g. would this > > work? v = Vertex( ...) > > v.p1.x = 3 > > v.p2 = Point( 1,2) > > v.p1_y = 5 > > yeah that wont work at all. With a descriptor based approach (and > a Point object that knows how to proxy to the parent object), it > could.
ahha. i was thiking that composites _are_ just a sort of bridge to the attributes under it. Then, if i put proper descriptor, can i hook some PropComparator on it? so i can do the query(Vertex).filter( Vertex.p1 == Point(2,1) ) --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---