Just realized that my question is similar to az's :) Eric 2008/8/21, Eric Lemoine <[EMAIL PROTECTED]>: > Mike, a question related to you saying "composites aren't a necessary > feature in the first place". Would it be possible using just Python > properties and synonym() to do something similar to the composites > example in the doc, namely query(Vertex).filter(Vertex.start == > Point(3, 4))? Thanks. Eric > > 2008/8/21, Michael Bayer <[EMAIL PROTECTED]>: >> >> >> 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. >> >> >> >> >> >
--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---