This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author takluyver
Recipients takluyver
Date 2011-10-04.10:46:38
SpamBayes Score 6.246806e-07
Marked as misclassified No
Message-id <1317725199.69.0.486458552577.issue13099@psf.upfronthosting.co.za>
In-reply-to
Content
When using sqlite3 with the Turkish locale, cursor.lastrowid is not accessible after an insert statement if "INSERT" is upper case.

I believe that the cause is that the detect_statement_kind function [1] calls the locale-dependent C function tolower(). The Turkish locale specifies a different case mapping for I (to a dotless lowercase i: ı), so it's not recognised as an insert statement, which looks like it will cause the transaction to be committed immediately.

See also the discussion on issue 1813 [2], and a Redhat bug with a test case for this [3].


[1] http://hg.python.org/cpython/file/c4b6d9312da1/Modules/_sqlite/cursor.c#l41
[2] http://bugs.python.org/issue1813
[3] https://bugzilla.redhat.com/show_bug.cgi?id=720209
History
Date User Action Args
2011-10-04 10:46:39takluyversetrecipients: + takluyver
2011-10-04 10:46:39takluyversetmessageid: <1317725199.69.0.486458552577.issue13099@psf.upfronthosting.co.za>
2011-10-04 10:46:39takluyverlinkissue13099 messages
2011-10-04 10:46:38takluyvercreate