Cory wrote:
>
> Hello All,
>
> I'd like to create a Table, (to use with the mapper()) that will
> always include a check to filter returned results.
>
> e.g. I have a table Foo with a status field in it. I never want to
> return rows where status = DELETED aka 2.
> This code:
> query(Foo).get(1)
> should produce:
> SELECT * FROM foo WHERE id=1 AND status != 2
>
> I've searched for this and I've found a couple different ways to do
> it, but none that were optimal. The closest solution is to:
>
> mapper(Foo, select([foo_table], foo_table.c.status != 2))
>
> but that creates SQL:
> SELECT * FROM (SELECT * FROM foo WHERE status != 2) tmp WHERE tmp.id =
> 1
>
> which works but is not optimal for large collections.
>
> Hopefully I'm not re-asking a similar question.

unfortuantely a lot of people have been asking for Query objects that say
"where deleted=0" :).    For that I've been telling folks to subclass
Query but there are some behavioral restrictions on Query which make that
difficult, and there is a pending ticket which would provide a
"disble_restrictions()" method, although the desire for a "where
deleted=0" type of thing is desired is strong enough that i might just add
a "pre_filter()" method or something like that, or maybe an option on the
mapper().    there is a message on the list maybe a month or two ago where
I produced a working Query subclass that does this now, but I don't have
time to look it up at the moment.  If you can't find it let me know.




--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected]
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