-C Fix\stypos\sin\sdocumentation.\s(CVS\s2399)
-D 2005-03-19T03:41:58
+C Preparations\sfor\sthe\srelease\sof\sversion\s3.2.0.\s(CVS\s2400)
+D 2005-03-19T14:45:49
F Makefile.in 5c00d0037104de2a50ac7647a5f12769795957a3
F Makefile.linux-gcc 06be33b2a9ad4f005a5f42b22c4a19dab3cbb5c7
F README a01693e454a00cc117967e3f9fdab2d4d52e9bc1
-F VERSION 4cc3959f8989cf586df7ed2c0b0829dfff828441
+F VERSION 2520423000707b82b67b4165b1b94c51ea9e04ac
F aclocal.m4 7daea4c35e88de30d5a3f6f7a2ab99720e803bbd
F art/SQLite.eps 9b43cc99cfd2be687d386faea6862ea68d6a72b2
F art/SQLite.gif 1bbb94484963f1382e27e1c5e86dd0c1061eba2b
F sqlite3.1 6be1ad09113570e1fc8dcaff84c9b0b337db5ffc
F sqlite3.def dbaeb20c153e1d366e8f421b55a573f5dfc00863
F sqlite3.pc.in 985b9bf34192a549d7d370e0f0b6b34a4f61369a
-F src/alter.c 85a23fc9a565c0e065d05d1d89744fcc6dee1c65
+F src/alter.c 8ee27ba2d09f26030c145a780ec8a93cd876d315
F src/attach.c 3615dbe960cbee4aa5ea300b8a213dad36527b0f
F src/auth.c 18c5a0befe20f3a58a41e3ddd78f372faeeefe1f
F src/btree.c 1d9b2179ccac13970c883da6ae3758cc72978bb0
F src/vdbe.h 7e307333d74e134eff237bb9d45fe764e544ad6a
F src/vdbeInt.h e80721cd8ff611789e20743eec43363a9fb5a48e
F src/vdbeapi.c 467caa6e6fb9247528b1c7ab9132ae1b4748e8ac
-F src/vdbeaux.c 3c2f1d5df1ac21e20a9795f4a988f663b01f7b83
+F src/vdbeaux.c 91013922626fed75ad091459b7f05f9e86581690
F src/vdbemem.c 4e853ce3151eaf7906150da85a1b3ce1fe5e8da8
F src/where.c c4b227458e8993decb515ed9a2fe2d4f5f8e3125
F tclinstaller.tcl 046e3624671962dc50f0481d7c25b38ef803eb42
F www/c_interface.tcl b51b08591554c16a0c3ef718364a508ac25abc7e
F www/capi3.tcl 7a7cc225fe02eb7ab861a6019b08baa0014409e1
F www/capi3ref.tcl 59c7da9ef1f24dcb10b247cd3b7452cf76ab36f0
-F www/changes.tcl 8b78425c6eedbe457a0cdf461f94f165bfc2b77d
+F www/changes.tcl 2a01ed8f51729365d190e5adbae7aee61499a6cc
F www/common.tcl de758130d54d95d151ea0d17a2ae5b92e1bb01de
F www/compile.tcl 65b26bdfc964b66c5f0af841718a52f9795ceb05
F www/conflict.tcl cdd0f4b59b0ba6d61f67e6a38f3ae45853bacb30
F www/datatype3.tcl 1d14f70ab73075556b95e76a5c13e5b03f7f6c47
F www/datatypes.tcl 7c786d2e8ff434346764534ec015966d17efce60
F www/different.tcl f9f573553f4b6854797120b9caba758ae7da240a
-F www/docs.tcl 95f464d6ae02fe265a845ba60d44e053ab5cb5d5
+F www/docs.tcl 6c0b2c567404b15bd46a0cda2dc69615a8e679a8
F www/download.tcl 3af00c0e8fd915961707cddb4c2260f5cf59f3c1
F www/dynload.tcl 02eb8273aa78cfa9070dd4501dca937fb22b466c
F www/faq.tcl 1e348dec52dc0f21f4216fd6918c69c56daa4cfd
F www/fileformat.tcl 900c95b9633abc3dcfc384d9ddd8eb4876793059
-F www/formatchng.tcl bfbf14dbf5181e771d06da7797767b0200b36d8a
-F www/index.tcl a53c9b092ab528cc4b9755ccd78e23ca796bafe0
-F www/lang.tcl 1f58511c7e59c5de26c9bf07c488584493dfab1d
+F www/formatchng.tcl ec974d74a87f7ae69d0626848bfcf716865c3291
+F www/index.tcl d205e4f360829c2f2805b7d4c11f8b293e1f6bac
+F www/lang.tcl 074e2d08fbe7c756988a9192856e962c8734f797
F www/lockingv3.tcl f59b19d6c8920a931f096699d6faaf61c05db55f
F www/mingw.tcl d96b451568c5d28545fefe0c80bee3431c73f69c
F www/nulls.tcl ec35193f92485b87b90a994a01d0171b58823fcf
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 092a01f5ef430d2c4acc0ae558d74c4bb89638a0
F www/whentouse.tcl 528299b8316726dbcc5548e9aa0648c8b1bd055b
-P e53c77268cd16802bd8c6fc4c6cd5280dc12f9c1
-R 0d34799a6d013756241b74ca09f6edb9
+P aee888ca58a7d059ff3ccb26bf0924550d54ab1c
+R c29caad866fc92d0ecab41a8c373b379
U drh
-Z 79192b57d19e830ea2fe10543e7bbe47
+Z 879278758b279ffc4d2f1084c6b49b27
-aee888ca58a7d059ff3ccb26bf0924550d54ab1c
\ No newline at end of file
+90a00e90663749e5d1f8e28709dfbe981f8afc8b
\ No newline at end of file
** This file contains C code routines that used to generate VDBE code
** that implements the ALTER TABLE command.
**
-** $Id: alter.c,v 1.3 2005/03/17 05:03:39 danielk1977 Exp $
+** $Id: alter.c,v 1.4 2005/03/19 14:45:49 drh Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
zCol = sqliteStrNDup(pColDef->z, pColDef->n);
if( zCol ){
char *zEnd = &zCol[pColDef->n-1];
- while( zEnd>zCol && *zEnd==';' || isspace(*(unsigned char *)zEnd) ){
+ while( (zEnd>zCol && *zEnd==';') || isspace(*(unsigned char *)zEnd) ){
*zEnd-- = '\0';
}
sqlite3NestedParse(pParse,
return;
}
#endif /* SQLITE_ALTER_TABLE */
-
assert( p->magic==VDBE_MAGIC_INIT );
if( p==0 || p->aOp==0 ){
if( n==P3_DYNAMIC || n==P3_KEYINFO_HANDOFF ){
- sqliteFree(zP3);
+ sqliteFree((void*)zP3);
}
return;
}
puts "<DD><P><UL>$desc</UL></P></DD>"
}
+chng {2005 March 19 (3.2.0)} {
+<li>Added support for ALTER TABLE ADD COLUMN.</li>
+}
+
chng {2005 March 16 (3.1.6)} {
<li>Fix a bug that could cause database corruption when inserting
record into tables with around 125 columns.</li>
# This script generates the "docs.html" page that describes various
# sources of documentation available for SQLite.
#
-set rcsid {$Id: docs.tcl,v 1.10 2005/03/12 15:55:11 drh Exp $}
+set rcsid {$Id: docs.tcl,v 1.11 2005/03/19 14:45:50 drh Exp $}
source common.tcl
header {SQLite Documentation}
puts {
in order to reduce binary size.
}
+doc {Backwards Compatibility} {formatchng.html} {
+ This document details all of the incompatible changes to the SQLite
+ file format that have occurred since version 1.0.0.
+}
+
puts {</table>}
footer $rcsid
#
# Run this Tcl script to generate the formatchng.html file.
#
-set rcsid {$Id: formatchng.tcl,v 1.12 2004/10/10 17:24:55 drh Exp $ }
+set rcsid {$Id: formatchng.tcl,v 1.13 2005/03/19 14:45:50 drh Exp $ }
source common.tcl
header {File Format Changes in SQLite}
puts {
<h2>File Format Changes in SQLite</h2>
<p>
-From time to time, enhancements or bug fixes require a change to
-the underlying file format for SQLite. When this happens and you
-want to upgrade your library, you must convert the contents of your
+Every effort is made to keep SQLite fully backwards compatible from
+one release to the next. Rarely, however, some
+enhancements or bug fixes may require a change to
+the underlying file format. When this happens and you
+must convert the contents of your
databases into a portable ASCII representation using the old version
of the library then reload the data using the new version of the
library.
<p>
You can tell if you should reload your databases by comparing the
-version numbers of the old and new libraries. If either of the
-first two digits in the version number change, then a reload is
-either required or recommended. For example, upgrading from
-version 1.0.32 to 2.0.0 requires a reload. So does going from
-version 2.0.8 to 2.1.0.
+version numbers of the old and new libraries. If the first digit
+of the version number is different, then a reload of the database will
+be required. If the second digit changes, newer versions of SQLite
+will be able to read and write older database files, but older versions
+of the library may have difficulty reading or writing newer database
+files.
+For example, upgrading from
+version 2.8.14 to 3.0.0 requires a reload. Going from
+version 3.0.8 to 3.1.0 is backwards compatible but not necessarily
+forwards compatible.
</p>
<p>
<td>The same basic B-Tree format is used but the details of the
index keys were changed in order to provide better query
optimization opportunities. Some of the headers were also changed in order
- to increase the maximum size of a row from 64KB to 24MB.</td>
+ to increase the maximum size of a row from 64KB to 24MB.<p>
+
+ This change is an exception to the version number rule described above
+ in that it is neither forwards or backwards compatible. A complete
+ reload of the database is required. This is the only exception.</td>
</tr>
<tr>
<td valign="top">2.1.7 to 2.2.0</td>
</tr>
<tr>
<td valign="top">2.8.14 to 3.0.0</td>
- <td valign="top">(pending)</td>
+ <td valign="top">2004-Jun-18</td>
<td><p>Version 3.0.0 is a major upgrade for SQLite that incorporates
support for UTF-16, BLOBs, and a more compact encoding that results
- in database files that are typically 25% to 35% smaller. The new file
- format is radically different and completely incompatible with the
+ in database files that are typically 25% to 50% smaller. The new file
+ format is very different and is completely incompatible with the
version 2 file format.</p>
</td>
</tr>
+<tr>
+ <td valign="top">3.0.8 to 3.1.0</td>
+ <td valign="top">2004-Jan-21</td>
+ <td><p>Version 3.1.0 adds support for
+ <a href="pragma.html#pragma_auto_vacuum">autovacuum mode</a>.
+ Prior versions of SQLite will be able to read and autovacuumed
+ database but will not be able to write it. If autovaccum is disabled
+ (which is the default condition)
+ then databases are fully forwards and backwards compatible.</p>
+ </td>
+</tr>
+<tr>
+ <td valign="top">3.1.6 to 3.2.0</td>
+ <td valign="top">2004-Mar-19</td>
+ <td><p>Version 3.2.0 adds support for the
+ <a href="lang_altertable.html">ALTER TABLE ADD COLUMN</a>
+ command. A database that has been modified by this command can
+ not be read by a version of SQLite prior to 3.1.4. Running
+ <a href="lang_vacuum.html">VACUUM</a>
+ after the ALTER TABLE
+ restores the database to a format such that it can be read by earlier
+ SQLite versions.</p>
+ </td>
+</tr>
</table>
</blockquote>
</p>
<blockquote>
- echo .dump | sqlite-old old.db | sqlite-new new.db
+ sqlite-old old.db .dump | sqlite-new new.db
</blockquote>
}
footer $rcsid
puts "<hr width=\"50%\">"
}
+newsitem {2005-Mar-19} {Version 3.2.0} {
+ Version 3.2.0 adds support for ALTER TABLE ADD COLUMN.
+}
+
newsitem {2005-Mar-16} {Version 3.1.6} {
Version 3.1.6 fixes a critical bug that can cause database corruption
when inserting rows into tables with around 125 columns. This bug was
<p align="right"><a href="oldnews.html">Old news...</a></p>
</td></tr></table>
}
-footer {$Id: index.tcl,v 1.111 2005/03/17 03:33:17 drh Exp $}
+footer {$Id: index.tcl,v 1.112 2005/03/19 14:45:50 drh Exp $}
#
# Run this Tcl script to generate the lang-*.html files.
#
-set rcsid {$Id: lang.tcl,v 1.86 2005/03/19 01:41:22 drh Exp $}
+set rcsid {$Id: lang.tcl,v 1.87 2005/03/19 14:45:50 drh Exp $}
source common.tcl
if {[llength $argv]>0} {
the amount of data in the table. The ALTER TABLE command runs as quickly
on a table with 10 million rows as it does on a table with 1 row.
</p>
+
+<p>After ADD COLUMN has been run on a database, that database will not
+be readable by SQLite version 3.1.3 and earlier until the database
+is <a href="lang_vacuum.html">VACUUM</a>ed.</p>
}
Section {ATTACH DATABASE} attach