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

Reply via email to