Is there anybody still using a version of SQLite prior to version  
3.3.0 in a context where they might want to read a database file that  
was created by the latest version of SQLite?

The reason I ask is this:  SQLite understands two slightly different  
file formats, format 1 and format 4.  (Ok, it also understands formats  
2 and 3, but they don't come into play here so ignore that fact for  
the moment.)  In format 4, SQLite uses a tighter encoding for boolean  
values and it honors the DESC keyword on indices.

All versions of SQLite since 3.3.0 can read and write both format 1  
and format 4.  But versions of SQLite prior to 3.3.0 could only  
understand format 1.  New database files are created in format 1 by  
default in order to be readable and writable by older versions of  
SQLite.  I'm wondering if we have reached a point where this can  
change.  Can we move to creating new database files in format 4 by  
default.

Please note that this is not a backwards compatibility break.  All  
prior database files will still be readable and writable by any  
version of SQLite after 3.3.0.  But this is a forwards compatibility  
break.  Database files created by SQLite version 3.6.0 or later will  
likely be unreadable by SQLite version 3.2.8 and earlier.

If we do move to creating new database files in format 4 by default,  
an application will still be able to create format 1 database files  
using a pragma.  Or, a compile-time option can be used to force format  
1 databases to be used as the default.

FWIW, SQLite version 3.3.0 was released over 2 years ago on January  
10, 2006.

D. Richard Hipp
[EMAIL PROTECTED]



_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to