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
-~----------~----~----~----~------~----~------~--~---

Reply via email to