So I wanted to do something with sqlite yesterday that involved some logic and thus couldn't be just thrown to the shell's standard input. So I thought, fine, let's wrap it in a bit of python. So I opened the documentation:
Mind you, the first reason is a blatant lie. These commands (except one pragma that has to be set before transaction to have effect) work in transactions. I've been dropping and creating tables in transactions in SQLite 3 (from C++) for last four years.
And the second is not a reason. SQLite 3 will happily tell you whether transaction is active. Just ask it whether it is in autocommit mode (
So the only reasons I can think of are:
- The author thought SQLite is as brain-damaged as MySQL.
- The author wanted the module to behave like MySQL though it is brain-damaged and other databases like Postgress, FireBird or SQL Server don't do it.
- Some ancient version of SQLite (older than 3) behaved like that and the author didn't realize it was since fixed.
I don't know which is worse.