of course you are not misunderstanding them. have you tried this test with any other database besides SQLite ? Im looking at the two queries from get() and get_by(), one of which uses a limit, the queries/result sets are as follows: TEST ONE [2006-03-06 02:43:58,008] [engine]: SELECT users.user_name AS users_user_name, users.user_id AS users_user_id, phone_numbers_931b.type AS phone_numbers_931b_type, phone_numbers_931b.address_id AS phone_numbers_931b_address_id, phone_numbers_931b.phone_id AS phone_numbers_931b_phone_id, phone_numbers_931b.number AS phone_numbers_931b_number, addresses_14af.address_id AS addresses_14af_address_id, addresses_14af.user_id AS addresses_14af_user_id, addresses_14af.address AS addresses_14af_address FROM users LEFT OUTER JOIN addresses AS addresses_14af ON users.user_id = addresses_14af.user_id LEFT OUTER JOIN phone_numbers AS phone_numbers_931b ON addresses_14af.address_id = phone_numbers_931b.address_id WHERE users.user_id = ? [2006-03-06 02:43:58,010] [engine]: [1] [2006-03-06 02:43:58,011] [engine]: (u'user 1', 1, u'home', 1, 1, u'1111', 1, 1, u'a1 address') [2006-03-06 02:43:58,014] [engine]: (u'user 1', 1, u'work', 1, 2, u'22222', 1, 1, u'a1 address') [2006-03-06 02:43:58,017] [engine]: (u'user 1', 1, u'home', 2, 3, u'3333', 2, 1, u'a2 address') [2006-03-06 02:43:58,019] [engine]: (u'user 1', 1, u'work', 2, 4, u'44444', 2, 1, u'a2 address') TEST TWO [2006-03-06 02:43:58,033] [engine]: SELECT users.user_name AS users_user_name, users.user_id AS users_user_id, phone_numbers_931b.type AS phone_numbers_931b_type, phone_numbers_931b.address_id AS phone_numbers_931b_address_id, phone_numbers_931b.phone_id AS phone_numbers_931b_phone_id, phone_numbers_931b.number AS phone_numbers_931b_number, addresses_14af.address_id AS addresses_14af_address_id, addresses_14af.user_id AS addresses_14af_user_id, addresses_14af.address AS addresses_14af_address FROM (SELECT users.user_id AS users_user_id FROM users WHERE users.user_id = ? LIMIT 1) AS rowcount, users LEFT OUTER JOIN addresses AS addresses_14af ON users.user_id = addresses_14af.user_id LEFT OUTER JOIN phone_numbers AS phone_numbers_931b ON addresses_14af.address_id = phone_numbers_931b.address_id WHERE rowcount.users_user_id = users.user_id [2006-03-06 02:43:58,034] [engine]: [1] [2006-03-06 02:43:58,036] [engine]: (u'user 1', 1, u'home', 1, 1, u'1111', 1, 1, u'a1 address') without digging much further i am not seeing yet why the second query (from get_by) fails to produce the same rows as the first, and I often suspect SQLite as its frequently buggy. i might not get to look at this again until tomorrow night. On Mar 5, 2006, at 5:13 PM, Robert Leftwich wrote:
|
- [Sqlalchemy-users] select_by, get_by strangeness? Robert Leftwich
- Re: [Sqlalchemy-users] select_by, get_by strangeness? Michael Bayer
- Re: [Sqlalchemy-users] select_by, get_by strangeness? Michael Bayer