On Oct 20, 2004, at 23:53, Skip Montanaro wrote:
Bob> By default can mean that Python builds a SQLite wrapper if
SQLite Bob> is available, just like it does for bsddb, readline, etc.
Then why not MySQLdb, psycopg and sybase-python also? No slight intended against PySQLite, but those other wrapper modules have been around quite a bit longer I think.
Phillip> Well, one difference is that none of the databases you
just Phillip> listed are embeddable. There has to be a separate database Phillip> server process. SQLite, like other "database" modules in the Phillip> stdlib, just stores data in a disk file.
It seems people misunderstood my comment. I should have been more clear. I see no reason PySQLite should be accorded better status than any of the other relational database wrappers. If MySQLdb, etc aren't included with the distribution I don't think PySQLite should be either. I realize it's easier to administer a PySQLite database than a PostgreSQL database, but from a pure client standpoint there's nothing really easier about it. By including PySQLite we'd somehow be blessing it as a better SQL solution than the other options. That means it will almost certainly be stretched beyond its limits and used in situations where it isn't appropriate (multiple writers, writers that hold the database for a long time, etc). That will reflect badly on both SQLite and Python.
By including expat are we blessing it as somehow a better solution than libxml2?
PySQLite *is* a better choice for inclusion than the others: because the license permits, it's standalone, easy to use. and can be reasonably included with binary distributions of Python (it can even be linked statically into the extension). More or less any database module that's not embedded (except for ODBC, perhaps) is on shakier ground because the protocol can change between database versions, though I suppose that's not expected to happen very often for something like PostgreSQL. Also, MySQLdb is especially tricky because of the license.
I can't imagine how that rather contrived scenario could reflect badly on Python or SQLite.. it certainly wouldn't be any worse than Python's standard library support for networking or XML, or the interpreter's inability to scale with threads.