tonthon <[email protected]> wrote:

> Sorry, still a few mistakes in what I wrote (first testing what you
> paste is a far better way to work) :
> 
> 
> 
>  121 from sqlalchemy.orm import
> deferred                                            
>  122 from sqlalchemy import
> Text                                                    
> 
> 123                                                                           
>      
> 
>  124 class
> Base(DBBASE):                                                            
>  125     __tablename__ =
> 'base'                                                     
>  126     __mapper_args__ = {'polymorphic_identity': 'base',
> 'polymorphic_on':'type_'}
>  127     id = Column(Integer,
> primary_key=True)                                     
>  128     name =
> Column(String(255))                                                 
>  129     description =
> deferred(                                                    
>  130        
> Column(Text()),                                                        
>  131        
> group="full"                                                           
>  132    
> )                                                                          
>  133     type_ = Column( String(30),
> nullable=False)                                
> 
> 134                                                                           
>      
> 
>  135 class
> Element(Base):                                                           
>  136     __tablename__ =
> 'element'                                                  
>  137     __mapper_args__ = {'polymorphic_identity':
> 'element'}                      
>  138     id = Column(ForeignKey("base.id"),
> primary_key=True)                       
>  139     comments = deferred( Column(Text()), group="full", )
> 
> 
> print(DbSession().query(Element).options(undefer_group('full')))
> 
> SELECT element.comments AS element_comments, element.id AS element_id,
> base.id AS base_id, base.name AS base_name, base.type_ AS base_type_
> FROM base INNER JOIN element ON base.id = element.id

looks like it was fixed in 0.9.9 in #3287.  Please upgrade.







> 
> 
> Le 16/03/2015 17:33, tonthon a écrit :
>> Sorry I was a bit too speed when writing that one :)
>> 
>> So I've got a Base model :
>> """
>> class Base(DBBASE):
>>    __tablename__ =
>> 'base'                                                     
>>    __mapper_args__ = {'polymorphic_identity': 'base', 'polymorphic_on':
>> 'type_'}      
>>    id = Column(Integer, primary_key=True)
>>   name = Column(String(255))
>>   description = deferred(
>>       Column(Text()),
>>       group="full"
>>   )
>>    type_ = Column( String(30), nullable=False)
>> """
>> 
>> and a child model
>> """
>> class Element(DBBASE):
>>    __tablename__ = 'element'
>>    __mapper_args__ = {'polymorphic_identity': 'element'}
>>    id = Column(ForeignKey("base.id"))
>>   comments = deferred( Column(Text()), group="full", )
>> """
>> 
>> The following query :
>> """
>> Element.query().options(undefer_group('full')).all()
>> """
>> 
>> doesn't load the description column, is that the expected behaviour ?
>> 
>> Regards
>> 
>> 
>> Le 16/03/2015 17:21, Michael Bayer a écrit :
>>> tonthon <[email protected]> wrote:
>>> 
>>>> Hi,
>>>> 
>>>> I'm using polymorphism and I set up some deferred columns at each level
>>>> of inheritance belonging to the same deferred group :
>>>> 
>>>> """
>>>> class Base(DBBASE):
>>>>   id = Column(Integer, primary_key=True)
>>>>   name = Column(String(255))
>>>>   description = deferred(
>>>>       Column(Text()),
>>>>       group="full"
>>>>   )
>>>> 
>>>> class Element(DBBASE):
>>>>   id = Column(ForeignKey("base.id"))
>>>>   comments = deferred(
>>>>       Column(Text()),
>>>>       group="full",
>>>>   )
>>>> """
>>>> 
>>>> The following query :
>>>> 
>>>> """
>>>> Element.query().options(undefer_group('full')).all()
>>>> """
>>>> 
>>>> doesn't defer the description column, is that the expected behaviour ?
>>> a query for Element here will not load objects of type “Base”, so I don’t 
>>> see where “description” comes into play.
>>> 
>>> If you can provide a more complete example that would help.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to