2
2
# Run this Tcl script to generate the formatchng.html file.
4
set rcsid {$Id: formatchng.tcl,v 1.17 2006/02/16 00:32:37 drh Exp $ }
4
set rcsid {$Id: formatchng.tcl,v 1.19 2006/08/12 14:38:47 drh Exp $ }
6
6
header {File Format Changes in SQLite}
215
215
<td valign="top">3.2.8 to 3.3.0</td>
216
216
<td valign="top">2006-Jan-10</td>
217
<td><p>Version 3.3.0 uses a new encoding for boolean values that
218
uses less disk space. Version 3.3.0 can read and write database
217
<td><p>Version 3.3.0 adds support for descending indices and
218
uses a new encoding for boolean values that requires
219
less disk space. Version 3.3.0 can read and write database
219
220
files created by prior versions of SQLite. But prior versions
220
221
of SQLite will not be able to read or write databases created
221
222
by Version 3.3.0</p>
223
<p>If you need backwards and forwards capatibility, you can
224
compile with -DSQLITE_DEFAULT_FILE_FORMAT=1. Or at runtime
225
you can say "PRAGMA legacy_file_format=ON" prior to creating
226
a new database file</p>
227
<p>Once a database file is created, its format is fixed. So
228
a database file created by SQLite 3.2.8 and merely modified
229
by version 3.3.0 or later will retain the old format. Except,
230
the VACUUM command recreates the database so running VACUUM
231
on 3.3.0 or later will change the file format to the latest
236
<td valign="top">3.3.6 to 3.3.7</td>
237
<td valign="top">2006-Aug-12</td>
238
<td><p>The previous file format change has caused so much
239
grief that the default behavior has been changed back to
240
the original file format. This means that DESC option on
241
indices is ignored by default that the more efficient encoding
242
of boolean values is not used. In that way, older versions
243
of SQLite can read and write databases created by newer
244
versions. If the new features are desired, they can be
245
enabled using pragma: "PRAGMA legacy_file_format=OFF".</p>
246
<p>To be clear: both old and new file formats continue to
247
be understood and continue to work. But the old file format
248
is used by default instead of the new. This might change
249
again in some future release - we may go back to generating
250
the new file format by default - but probably not until
251
all users have upgraded to a version of SQLite that will
252
understand the new file format. That might take several