On Wed, Oct 19, 2011 at 7:57 PM, Michael Bayer <mike...@zzzcomputing.com>wrote:

>
> On Oct 19, 2011, at 11:44 AM, lestat wrote:
>
> >
> > and use it:
> > hierarchy_mapper = HierarchyMapper(model_class, model_class.__table__,
> > non_primary=True)
> > result =
> > db.session.query(hierarchy_mapper).from_statement(hie_statement)
> >
> > where hie_statement is RAW SQL.
> >
> > but I can't add options contains_eager like
> > result = result.options(contains_eager(Comment.user))
>
> Well no because you're digging way into RECURSIVE queries which SQLA
> doesn't yet support very nicely.   Mapping to them is not a problem that's
> been cleanly solved.
>
> There's some sketches of how to get "with recursive" to work with mappings
> in such a way that the "recursive" thing is contained within a subquery, you
> can play with that here:
>
> http://www.sqlalchemy.org/trac/attachment/ticket/1859/cte_demo.py
>
>

Thanks, I play with this code.




> > it print error:
> > ArgumentError: Can't find property 'user' on any entity specified in
> > this Query.  Note the full path from root (Mapper|Comment|comment|non-
> > primary) to target entity must be specified.
> > because it non_primary mapper.
> >
> > How I can solve this problem?
>
> The problem of mapping to CTEs is not a problem that's solved right now.
>  It wouldn't be via subclassing Mapper, though, the code you've pasted there
> looks most like Mapper so its not clear what portions you've attempted to
> redefine.


I add only 3 strings of code, because I don't know how redefine only
populate_state without copying all _instance_processor code:

        def populate_state(state, dict_, row, isnew, only_load_props):
            ### ADDED begin
            # adds level to objects
            row_tuple = tuple(row)
            level = row_tuple[-3]
            dict_['level'] = level
            ### ADDED end



>    if there are areas of mapper loading that could be made more flexible in
> some way that's definitely useful, we can look into those.
>
> --
> 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
> sqlalchemy+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/sqlalchemy?hl=en.
>
>

-- 
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 
sqlalchemy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to