I just realized that I have to assign the returned value of matches_query.limit(2) back to matches_query. Sorry for the stupid question everyone :( Maybe I should take a break from programming... forever.
- Mike On Sun, Nov 25, 2012 at 6:25 PM, Michael Parker <[email protected]>wrote: > Hi all, > > For the following code, which uses tables for CalendarEntry, Match, and > Team entities: > > team_alias1 = aliased(Team) > team_alias2 = aliased(Team) > matches_query = session\ > .query(CalendarEntry.match_id, Match, team_alias1, team_alias2)\ > .join(Match, CalendarEntry.match_id == Match.id)\ > .join(team_alias1, Match.team1_id == team_alias1.id)\ > .join(team_alias2, Match.team2_id == team_alias2.id)\ > .filter(CalendarEntry.user_id == client_id)\ > .limit(2) > > When setting echo=True and running my unit tests in SQLite, I get a query > that looks like: > > SELECT "CalendarEntries".match_id AS "CalendarEntries_match_id", > "Matches".id AS "Matches_id", ... etc > WHERE "CalendarEntries".user_id = ? LIMIT ? OFFSET ? > (1, 2, 0) > > Which correctly returns 2 CalendarEntry objects. However, if I no longer > chain the call to limit immediately, but put it in its own statement, like > so: > > matches_query = session\ > .query(CalendarEntry.match_id, Match, team_alias1, team_alias2)\ > .join(Match, CalendarEntry.match_id == Match.id)\ > .join(team_alias1, Match.team1_id == team_alias1.id)\ > .join(team_alias2, Match.team2_id == team_alias2.id)\ > .filter(CalendarEntry.user_id == client_id) > matches_query.limit(2) > > Then I get a query without a LIMIT, which returns all CalendarEntry > objects: > > SELECT "CalendarEntries".match_id AS "CalendarEntries_match_id", > "Matches".id AS "Matches_id", ... etc > WHERE "CalendarEntries".user_id = ? > (1,) > > Can someone explain what's going on, and how to fix this? > > Thanks, > Mike > > -- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/sqlalchemy/-/AsqSgGMMBxoJ. > 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. > -- 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.
