"Michael P. Soulier" <[EMAIL PROTECTED]> wrote: > Hello, > > I just got a nasty surprise. I installed an sqlite 3.3.5 .dll on windows with > pysqlite2, and I used an application to create a database file. I then scp'd > the file home to my linux box where I have sqlite 3.2.2 installed, and I got > this: > > sqlite> .tables > Error: unsupported file format > > Ouch. I'm building 3.3.5 now but it puts a kink in some of my cross platform > development plans. > > How often is backwards compatibility to be broken in this way? >
3.3.5 is backwards compatible. It will read and write a 3.2.2 database file. But 3.2.2 is not forwards compatible to 3.3.5. SQLite 3 will always be backwards compatible. Forwards compatibility is a goal but is not guaranteed. If you compile 3.3.5 with -DSQLITE_DEFAULT_FILE_FORMAT=1 then it will by default generate a database that 3.2.2 can read. You can do this at runtime using PRAGMA legacy_file_format=ON; Do the pragma when creating the database before the first CREATE TABLE. -- D. Richard Hipp <[EMAIL PROTECTED]>