Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Preparations for the release of version 3.2.0. (CVS 2400) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
90a00e90663749e5d1f8e28709dfbe98 |
User & Date: | drh 2005-03-19 14:45:49.000 |
Context
2005-03-19
| ||
15:10 | More documentation updates. (CVS 2401) (check-in: f065b6102d user: drh tags: trunk) | |
14:45 | Preparations for the release of version 3.2.0. (CVS 2400) (check-in: 90a00e9066 user: drh tags: trunk) | |
03:41 | Fix typos in documentation. (CVS 2399) (check-in: aee888ca58 user: drh tags: trunk) | |
Changes
Changes to VERSION.
|
| | | 1 | 3.2.0 |
Changes to src/alter.c.
︙ | ︙ | |||
8 9 10 11 12 13 14 | ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains C code routines that used to generate VDBE code ** that implements the ALTER TABLE command. ** | | | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains C code routines that used to generate VDBE code ** that implements the ALTER TABLE command. ** ** $Id: alter.c,v 1.4 2005/03/19 14:45:49 drh Exp $ */ #include "sqliteInt.h" #include <ctype.h> /* ** The code in this file only exists if we are not omitting the ** ALTER TABLE logic from the build. |
︙ | ︙ | |||
440 441 442 443 444 445 446 | sqlite3ValueFree(pVal); } /* Modify the CREATE TABLE statement. */ zCol = sqliteStrNDup(pColDef->z, pColDef->n); if( zCol ){ char *zEnd = &zCol[pColDef->n-1]; | | | 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 | sqlite3ValueFree(pVal); } /* Modify the CREATE TABLE statement. */ zCol = sqliteStrNDup(pColDef->z, pColDef->n); if( zCol ){ char *zEnd = &zCol[pColDef->n-1]; while( (zEnd>zCol && *zEnd==';') || isspace(*(unsigned char *)zEnd) ){ *zEnd-- = '\0'; } sqlite3NestedParse(pParse, "UPDATE %Q.%s SET " "sql = substr(sql,0,%d) || ', ' || %Q || substr(sql,%d,length(sql)) " "WHERE type = 'table' AND name = %Q", zDb, SCHEMA_TABLE(iDb), pNew->addColOffset, zCol, pNew->addColOffset+1, |
︙ | ︙ | |||
544 545 546 547 548 549 550 | sqlite3ChangeCookie(pParse->db, v, iDb); exit_begin_add_column: sqlite3SrcListDelete(pSrc); return; } #endif /* SQLITE_ALTER_TABLE */ | < | 544 545 546 547 548 549 550 | sqlite3ChangeCookie(pParse->db, v, iDb); exit_begin_add_column: sqlite3SrcListDelete(pSrc); return; } #endif /* SQLITE_ALTER_TABLE */ |
Changes to src/vdbeaux.c.
︙ | ︙ | |||
269 270 271 272 273 274 275 | ** If addr<0 then change P3 on the most recently inserted instruction. */ void sqlite3VdbeChangeP3(Vdbe *p, int addr, const char *zP3, int n){ Op *pOp; assert( p->magic==VDBE_MAGIC_INIT ); if( p==0 || p->aOp==0 ){ if( n==P3_DYNAMIC || n==P3_KEYINFO_HANDOFF ){ | | | 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 | ** If addr<0 then change P3 on the most recently inserted instruction. */ void sqlite3VdbeChangeP3(Vdbe *p, int addr, const char *zP3, int n){ Op *pOp; assert( p->magic==VDBE_MAGIC_INIT ); if( p==0 || p->aOp==0 ){ if( n==P3_DYNAMIC || n==P3_KEYINFO_HANDOFF ){ sqliteFree((void*)zP3); } return; } if( addr<0 || addr>=p->nOp ){ addr = p->nOp - 1; if( addr<0 ) return; } |
︙ | ︙ |
Changes to www/changes.tcl.
︙ | ︙ | |||
16 17 18 19 20 21 22 23 24 25 26 27 28 29 | } proc chng {date desc} { puts "<DT><B>$date</B></DT>" puts "<DD><P><UL>$desc</UL></P></DD>" } 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> <li>sqlite3_step() is now much more likely to invoke the busy handler and less likely to return SQLITE_BUSY.</li> <li>Fix memory leaks that used to occur after a malloc() failure.</li> | > > > > | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | } proc chng {date desc} { puts "<DT><B>$date</B></DT>" 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> <li>sqlite3_step() is now much more likely to invoke the busy handler and less likely to return SQLITE_BUSY.</li> <li>Fix memory leaks that used to occur after a malloc() failure.</li> |
︙ | ︙ |
Changes to www/docs.tcl.
1 2 3 | # This script generates the "docs.html" page that describes various # sources of documentation available for SQLite. # | | | 1 2 3 4 5 6 7 8 9 10 11 | # This script generates the "docs.html" page that describes various # sources of documentation available for SQLite. # set rcsid {$Id: docs.tcl,v 1.11 2005/03/19 14:45:50 drh Exp $} source common.tcl header {SQLite Documentation} puts { <h2>Available Documentation</h2> <table width="100%" cellpadding="5"> } |
︙ | ︙ | |||
123 124 125 126 127 128 129 130 131 132 | } doc {Compilation Options} {compile.html} { This document describes the compile time options that may be set to modify the default behaviour of the library or omit optional features in order to reduce binary size. } puts {</table>} footer $rcsid | > > > > > | 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | } doc {Compilation Options} {compile.html} { This document describes the compile time options that may be set to modify the default behaviour of the library or omit optional features 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 |
Changes to www/formatchng.tcl.
1 2 3 | # # Run this Tcl script to generate the formatchng.html file. # | | > > | | | | | > > > > | | | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | # # Run this Tcl script to generate the formatchng.html file. # 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> 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> <p> You can tell if you should reload your databases by comparing the 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> The following table summarizes the SQLite file format changes that have occurred since version 1.0.0: </p> |
︙ | ︙ | |||
50 51 52 53 54 55 56 | </tr> <tr> <td valign="top">2.0.8 to 2.1.0</td> <td valign="top">2001-Nov-12</td> <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 | | > > > > | 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | </tr> <tr> <td valign="top">2.0.8 to 2.1.0</td> <td valign="top">2001-Nov-12</td> <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.<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> <td valign="top">2001-Dec-21</td> <td>Beginning with version 2.2.0, SQLite no longer builds an index for an INTEGER PRIMARY KEY column. Instead, it uses that column as the actual B-Tree key for the main table.<p>Version 2.2.0 and later of the library |
︙ | ︙ | |||
164 165 166 167 168 169 170 | earlier. The 2.7.6 code will not be able to read the journal file and thus will not be able to rollback the incomplete transaction to restore the database.</p> </td> </tr> <tr> <td valign="top">2.8.14 to 3.0.0</td> | | | | > > > > > > > > > > > > > > > > > > > > > > > > | | 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 | earlier. The 2.7.6 code will not be able to read the journal file and thus will not be able to rollback the incomplete transaction to restore the database.</p> </td> </tr> <tr> <td valign="top">2.8.14 to 3.0.0</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 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> To perform a database reload, have ready versions of the <b>sqlite</b> command-line utility for both the old and new version of SQLite. Call these two executables "<b>sqlite-old</b>" and "<b>sqlite-new</b>". Suppose the name of your old database is "<b>old.db</b>" and you want to create a new database with the same information named "<b>new.db</b>". The command to do this is as follows: </p> <blockquote> sqlite-old old.db .dump | sqlite-new new.db </blockquote> } footer $rcsid |
Changes to www/index.tcl.
︙ | ︙ | |||
56 57 58 59 60 61 62 63 64 65 66 67 68 69 | proc newsitem {date title text} { puts "<h3>$date - $title</h3>" regsub -all "\n( *\n)+" $text "</p>\n\n<p>" txt puts "<p>$txt</p>" puts "<hr width=\"50%\">" } 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 introduced in version 3.0.0. See <a href="http://www.sqlite.org/cvstrac/tktview?tn=1163">Ticket #1163</a> for additional information. | > > > > | 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | proc newsitem {date title text} { puts "<h3>$date - $title</h3>" regsub -all "\n( *\n)+" $text "</p>\n\n<p>" txt puts "<p>$txt</p>" 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 introduced in version 3.0.0. See <a href="http://www.sqlite.org/cvstrac/tktview?tn=1163">Ticket #1163</a> for additional information. |
︙ | ︙ | |||
87 88 89 90 91 92 93 | } puts { <p align="right"><a href="oldnews.html">Old news...</a></p> </td></tr></table> } | | | 91 92 93 94 95 96 97 98 | } puts { <p align="right"><a href="oldnews.html">Old news...</a></p> </td></tr></table> } footer {$Id: index.tcl,v 1.112 2005/03/19 14:45:50 drh Exp $} |
Changes to www/lang.tcl.
1 2 3 | # # Run this Tcl script to generate the lang-*.html files. # | | | 1 2 3 4 5 6 7 8 9 10 11 | # # Run this Tcl script to generate the lang-*.html files. # set rcsid {$Id: lang.tcl,v 1.87 2005/03/19 14:45:50 drh Exp $} source common.tcl if {[llength $argv]>0} { set outputdir [lindex $argv 0] } else { set outputdir "" } |
︙ | ︙ | |||
177 178 179 180 181 182 183 184 185 186 187 188 189 190 | default value other than NULL. </ul> <p>The execution time of the ALTER TABLE command is independent of 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> } Section {ATTACH DATABASE} attach Syntax {sql-statement} { ATTACH [DATABASE] <database-filename> AS <database-name> } | > > > > | 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 | default value other than NULL. </ul> <p>The execution time of the ALTER TABLE command is independent of 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 Syntax {sql-statement} { ATTACH [DATABASE] <database-filename> AS <database-name> } |
︙ | ︙ |