Updates prior to release 2.6.3. (CVS 706)

FossilOrigin-Name: 34c4149eea7a48927e36867f4e25ff7fac40c66e
This commit is contained in:
drh 2002-08-13 00:01:16 +00:00
parent 94f3331a0b
commit 74587e5567
10 changed files with 74 additions and 70 deletions

View File

@ -157,6 +157,7 @@ SRC = \
# #
TESTSRC = \ TESTSRC = \
$(TOP)/src/btree.c \ $(TOP)/src/btree.c \
$(TOP)/src/func.c \
$(TOP)/src/os.c \ $(TOP)/src/os.c \
$(TOP)/src/pager.c \ $(TOP)/src/pager.c \
$(TOP)/src/test1.c \ $(TOP)/src/test1.c \

View File

@ -1 +1 @@
2.6.2 2.6.3

View File

@ -1,9 +1,9 @@
C Fix\sfor\sticket\s#9\s(again).\s\sThe\srollback\sjournal\sfiles\sshould\snow\salso\sbe\nbyte-order\sindependent.\s(CVS\s705) C Updates\sprior\sto\srelease\s2.6.3.\s(CVS\s706)
D 2002-08-12T12:29:57 D 2002-08-13T00:01:17
F Makefile.in 6291a33b87d2a395aafd7646ee1ed562c6f2c28c F Makefile.in 6291a33b87d2a395aafd7646ee1ed562c6f2c28c
F Makefile.template 4e11752e0b5c7a043ca50af4296ec562857ba495 F Makefile.template 0f288908fb6b1186b1594d753f79dc06c32b1dd7
F README a4c0ba11354ef6ba0776b400d057c59da47a4cc0 F README a4c0ba11354ef6ba0776b400d057c59da47a4cc0
F VERSION 8a5fcfd7c610c6d019b77b799ad1db89103ed2bf F VERSION f860323f95b110e5af69b3754d006f39304390a0
F aclocal.m4 11faa843caa38fd451bc6aeb43e248d1723a269d F aclocal.m4 11faa843caa38fd451bc6aeb43e248d1723a269d
F config.guess f38b1e93d1e0fa6f5a6913e9e7b12774b9232588 F config.guess f38b1e93d1e0fa6f5a6913e9e7b12774b9232588
F config.sub f14b07d544ca26b5d698259045136b783e18fc7f F config.sub f14b07d544ca26b5d698259045136b783e18fc7f
@ -18,7 +18,7 @@ F publish.sh 29f86624db9253353ae159a9e015f81e16f9dd5b
F spec.template 238f7db425a78dc1bb7682e56e3834c7270a3f5e F spec.template 238f7db425a78dc1bb7682e56e3834c7270a3f5e
F sqlite.1 83f4a9d37bdf2b7ef079a82d54eaf2e3509ee6ea F sqlite.1 83f4a9d37bdf2b7ef079a82d54eaf2e3509ee6ea
F src/TODO af7f3cab0228e34149cf98e073aa83d45878e7e6 F src/TODO af7f3cab0228e34149cf98e073aa83d45878e7e6
F src/btree.c c7669b179d452999dc39bf8a931e29a5d7151f96 F src/btree.c 16d1712321e91e77562ffc673ed97b0b1a791db4
F src/btree.h 0ca6c2631338df62e4f7894252d9347ae234eda9 F src/btree.h 0ca6c2631338df62e4f7894252d9347ae234eda9
F src/build.c 0d661e653e02ce8037917c35403d9f0ff4418e6e F src/build.c 0d661e653e02ce8037917c35403d9f0ff4418e6e
F src/delete.c c9f59ee217e062eb9de7b64b76b5cfff42b2f028 F src/delete.c c9f59ee217e062eb9de7b64b76b5cfff42b2f028
@ -32,7 +32,7 @@ F src/main.c 0f5d0f6f27333a851d848bfdd7bfa67a37cea12b
F src/md5.c 0ae1f3e2cac92d06fc6246d1b4b8f61a2fe66d3b F src/md5.c 0ae1f3e2cac92d06fc6246d1b4b8f61a2fe66d3b
F src/os.c 9665974085ebe1d40d56d1145045b3d64f12cbce F src/os.c 9665974085ebe1d40d56d1145045b3d64f12cbce
F src/os.h 4a361fccfbc4e7609b3e1557f604f94c1e96ad10 F src/os.h 4a361fccfbc4e7609b3e1557f604f94c1e96ad10
F src/pager.c ca54e21cad43270027b6872ffe3b6e86a5099dfb F src/pager.c 4b0169e91b34f6ff91e8feb57545c43e4d6eb370
F src/pager.h 6991c9c2dc5e4c7f2df4d4ba47d1c6458f763a32 F src/pager.h 6991c9c2dc5e4c7f2df4d4ba47d1c6458f763a32
F src/parse.y 66e7da55b34b57f81ca07e50d1dcc430b1c1bf74 F src/parse.y 66e7da55b34b57f81ca07e50d1dcc430b1c1bf74
F src/printf.c 06f4c8725063e0faf0e34824ab70feace7146bf7 F src/printf.c 06f4c8725063e0faf0e34824ab70feace7146bf7
@ -100,9 +100,9 @@ F test/tableapi.test 3c80421a889e1d106df16e5800fa787f0d2914a6
F test/tclsqlite.test 6f4b9760681c7dbca52a18d0ab46a1679cdc79b9 F test/tclsqlite.test 6f4b9760681c7dbca52a18d0ab46a1679cdc79b9
F test/temptable.test 9ed7ec0288f887e132de66d90c428ad109105f67 F test/temptable.test 9ed7ec0288f887e132de66d90c428ad109105f67
F test/tester.tcl 6f603d90881bd835ea27c568a7fecaa57dce91cc F test/tester.tcl 6f603d90881bd835ea27c568a7fecaa57dce91cc
F test/trans.test b8a51e9f61d55d0185a813695a55a7fad8fe8ab7 F test/trans.test 5dccfa3115d4601f7cfc6b49c3a3fd8676a98522
F test/trigger1.test bb63749fa8a395a60541100607d86381604b7194 F test/trigger1.test bb63749fa8a395a60541100607d86381604b7194
F test/trigger2.test f739876942a26c63d42387321a89b75ec93af48a F test/trigger2.test 19070bdb7cdcb2b163170d864fc2fd289b2d73ef
F test/trigger3.test 7dfe798d7e72c13720394685fe353112e3f31adf F test/trigger3.test 7dfe798d7e72c13720394685fe353112e3f31adf
F test/trigger4.test 9a5c1406344d743020c2753ae8d6dfe6eb75f818 F test/trigger4.test 9a5c1406344d743020c2753ae8d6dfe6eb75f818
F test/unique.test 572aa791327c1e8d797932263e9d67f176cfdb44 F test/unique.test 572aa791327c1e8d797932263e9d67f176cfdb44
@ -128,14 +128,14 @@ F www/arch.png 82ef36db1143828a7abc88b1e308a5f55d4336f4
F www/arch.tcl 679a0c48817f71bc91d5911ef386e5ef35d4f178 F www/arch.tcl 679a0c48817f71bc91d5911ef386e5ef35d4f178
F www/audit.tcl 90e09d580f79c7efec0c7d6f447b7ec5c2dce5c0 F www/audit.tcl 90e09d580f79c7efec0c7d6f447b7ec5c2dce5c0
F www/c_interface.tcl fb87b825b9032b9aa941694c5c9c5aee9424467e F www/c_interface.tcl fb87b825b9032b9aa941694c5c9c5aee9424467e
F www/changes.tcl 170d01bd2c877a494f9eb041c68b10a7007e4a75 F www/changes.tcl 73451195af83332eff90feea6a61639ff9908155
F www/conflict.tcl 81dd21f9a679e60aae049e9dd8ab53d59570cda2 F www/conflict.tcl 81dd21f9a679e60aae049e9dd8ab53d59570cda2
F www/crosscompile.tcl 3622ebbe518927a3854a12de51344673eb2dd060 F www/crosscompile.tcl 3622ebbe518927a3854a12de51344673eb2dd060
F www/download.tcl 29aa6679ca29621d10613f60ebbbda18f4b91c49 F www/download.tcl 29aa6679ca29621d10613f60ebbbda18f4b91c49
F www/dynload.tcl 02eb8273aa78cfa9070dd4501dca937fb22b466c F www/dynload.tcl 02eb8273aa78cfa9070dd4501dca937fb22b466c
F www/faq.tcl 5e3f71ced26a6dc863bd8d7afd711bf16c99acf6 F www/faq.tcl 5e3f71ced26a6dc863bd8d7afd711bf16c99acf6
F www/formatchng.tcl 502847353450adaf76d187d87374bce20dd07e0e F www/formatchng.tcl 502847353450adaf76d187d87374bce20dd07e0e
F www/index.tcl 6c9b78fa8cb117fa5af2ccff56a47eef798f39a4 F www/index.tcl 4ee3750153a5eaaabc3e5d9b1e96cfbe78c62086
F www/lang.tcl 8c3d0bda030f110c754b5edbad75eddf5dbe2ed1 F www/lang.tcl 8c3d0bda030f110c754b5edbad75eddf5dbe2ed1
F www/mingw.tcl f1c7c0a7f53387dd9bb4f8c7e8571b7561510ebc F www/mingw.tcl f1c7c0a7f53387dd9bb4f8c7e8571b7561510ebc
F www/opcode.tcl 33c5f2061a05c5d227c72b84c080b3bf74c74f8b F www/opcode.tcl 33c5f2061a05c5d227c72b84c080b3bf74c74f8b
@ -143,7 +143,7 @@ F www/speed.tcl 7fc83f1b018e1ecc451838449542c3079ed12425
F www/sqlite.tcl ae3dcfb077e53833b59d4fcc94d8a12c50a44098 F www/sqlite.tcl ae3dcfb077e53833b59d4fcc94d8a12c50a44098
F www/tclsqlite.tcl 1db15abeb446aad0caf0b95b8b9579720e4ea331 F www/tclsqlite.tcl 1db15abeb446aad0caf0b95b8b9579720e4ea331
F www/vdbe.tcl 2013852c27a02a091d39a766bc87cff329f21218 F www/vdbe.tcl 2013852c27a02a091d39a766bc87cff329f21218
P ce4b943bf68c160445a58ffccfbabbbd30d9829b P 2fb3fdcdf06c1206bf14da640c2f9e599455f0eb
R eceb789f2b856b82ace2f266f575aef0 R b96ce82652418ef9a905306828af0c0e
U drh U drh
Z 583bd24d9680709c13934b197d486934 Z deb07850c800510c6c72c2a0a0ce1719

View File

@ -1 +1 @@
2fb3fdcdf06c1206bf14da640c2f9e599455f0eb 34c4149eea7a48927e36867f4e25ff7fac40c66e

View File

@ -9,7 +9,7 @@
** May you share freely, never taking more than you give. ** May you share freely, never taking more than you give.
** **
************************************************************************* *************************************************************************
** $Id: btree.c,v 1.69 2002/08/11 20:10:47 drh Exp $ ** $Id: btree.c,v 1.70 2002/08/13 00:01:17 drh Exp $
** **
** This file implements a external (disk-based) database using BTrees. ** This file implements a external (disk-based) database using BTrees.
** For a detailed discussion of BTrees, refer to ** For a detailed discussion of BTrees, refer to
@ -76,6 +76,8 @@
*/ */
#ifdef SQLITE_TEST #ifdef SQLITE_TEST
int btree_native_byte_order = 1; int btree_native_byte_order = 1;
#else
# define btree_native_byte_order 1
#endif #endif
/* /*
@ -793,7 +795,6 @@ static int newDatabase(Btree *pBt){
return rc; return rc;
} }
strcpy(pP1->zMagic, zMagicHeader); strcpy(pP1->zMagic, zMagicHeader);
#ifdef SQLITE_TEST
if( btree_native_byte_order ){ if( btree_native_byte_order ){
pP1->iMagic = MAGIC; pP1->iMagic = MAGIC;
pBt->needSwab = 0; pBt->needSwab = 0;
@ -801,10 +802,6 @@ static int newDatabase(Btree *pBt){
pP1->iMagic = swab32(MAGIC); pP1->iMagic = swab32(MAGIC);
pBt->needSwab = 1; pBt->needSwab = 1;
} }
#else
pP1->iMagic = MAGIC;
pBt->needSwab = 0;
#endif
zeroPage(pBt, pRoot); zeroPage(pBt, pRoot);
sqlitepager_unref(pRoot); sqlitepager_unref(pRoot);
return SQLITE_OK; return SQLITE_OK;

View File

@ -18,7 +18,7 @@
** file simultaneously, or one process from reading the database while ** file simultaneously, or one process from reading the database while
** another is writing. ** another is writing.
** **
** @(#) $Id: pager.c,v 1.50 2002/08/12 12:29:57 drh Exp $ ** @(#) $Id: pager.c,v 1.51 2002/08/13 00:01:17 drh Exp $
*/ */
#include "sqliteInt.h" #include "sqliteInt.h"
#include "pager.h" #include "pager.h"
@ -177,6 +177,8 @@ static const unsigned char aJournalMagic[] = {
*/ */
#ifdef SQLITE_TEST #ifdef SQLITE_TEST
int pager_old_format = 0; int pager_old_format = 0;
#else
# define pager_old_format 0
#endif #endif
/* /*
@ -187,7 +189,7 @@ int pager_old_format = 0;
/* /*
** Enable reference count tracking here: ** Enable reference count tracking here:
*/ */
#if SQLITE_TEST #ifdef SQLITE_TEST
int pager_refinfo_enable = 0; int pager_refinfo_enable = 0;
static void pager_refinfo(PgHdr *p){ static void pager_refinfo(PgHdr *p){
static int cnt = 0; static int cnt = 0;
@ -225,11 +227,9 @@ static int read32bits(Pager *pPager, OsFile *fd, u32 *pRes){
*/ */
static int write32bits(OsFile *fd, u32 val){ static int write32bits(OsFile *fd, u32 val){
unsigned char ac[4]; unsigned char ac[4];
#ifdef SQLITE_TEST
if( pager_old_format ){ if( pager_old_format ){
return sqliteOsWrite(fd, &val, 4); return sqliteOsWrite(fd, &val, 4);
} }
#endif
ac[0] = (val>>24) & 0xff; ac[0] = (val>>24) & 0xff;
ac[1] = (val>>16) & 0xff; ac[1] = (val>>16) & 0xff;
ac[2] = (val>>8) & 0xff; ac[2] = (val>>8) & 0xff;
@ -482,7 +482,11 @@ static int pager_ckpt_playback(Pager *pPager){
/* Copy original pages out of the checkpoint journal and back into the /* Copy original pages out of the checkpoint journal and back into the
** database file. ** database file.
*/ */
pPager->journalFormat = SQLITE_NEW_JOURNAL_FORMAT; if( pager_old_format ){
pPager->journalFormat = SQLITE_OLD_JOURNAL_FORMAT;
}else{
pPager->journalFormat = SQLITE_NEW_JOURNAL_FORMAT;
}
for(i=nRec-1; i>=0; i--){ for(i=nRec-1; i>=0; i--){
rc = pager_playback_one_page(pPager, &pPager->cpfd); rc = pager_playback_one_page(pPager, &pPager->cpfd);
if( rc!=SQLITE_OK ) goto end_ckpt_playback; if( rc!=SQLITE_OK ) goto end_ckpt_playback;
@ -1140,16 +1144,12 @@ int sqlitepager_begin(void *pData){
pPager->state = SQLITE_WRITELOCK; pPager->state = SQLITE_WRITELOCK;
sqlitepager_pagecount(pPager); sqlitepager_pagecount(pPager);
pPager->origDbSize = pPager->dbSize; pPager->origDbSize = pPager->dbSize;
#ifdef SQLITE_TEST
if( pager_old_format ){ if( pager_old_format ){
rc = sqliteOsWrite(&pPager->jfd, aOldJournalMagic, rc = sqliteOsWrite(&pPager->jfd, aOldJournalMagic,
sizeof(aOldJournalMagic)); sizeof(aOldJournalMagic));
}else{ }else{
rc = sqliteOsWrite(&pPager->jfd, aJournalMagic, sizeof(aJournalMagic)); rc = sqliteOsWrite(&pPager->jfd, aJournalMagic, sizeof(aJournalMagic));
} }
#else
rc = sqliteOsWrite(&pPager->jfd, aJournalMagic, sizeof(aJournalMagic));
#endif
if( rc==SQLITE_OK ){ if( rc==SQLITE_OK ){
rc = write32bits(&pPager->jfd, pPager->dbSize); rc = write32bits(&pPager->jfd, pPager->dbSize);
} }
@ -1532,7 +1532,7 @@ int sqlitepager_ckpt_rollback(Pager *pPager){
return rc; return rc;
} }
#if SQLITE_TEST #ifdef SQLITE_TEST
/* /*
** Print a listing of all referenced pages and their ref count. ** Print a listing of all referenced pages and their ref count.
*/ */

View File

@ -11,7 +11,7 @@
# This file implements regression tests for SQLite library. The # This file implements regression tests for SQLite library. The
# focus of this script is database locks. # focus of this script is database locks.
# #
# $Id: trans.test,v 1.14 2002/08/12 12:29:57 drh Exp $ # $Id: trans.test,v 1.15 2002/08/13 00:01:18 drh Exp $
set testdir [file dirname $argv0] set testdir [file dirname $argv0]
@ -886,6 +886,7 @@ for {set i 2} {$i<=$limit} {incr i} {
} }
} {} } {}
} }
set ::pager_old_format 0
} }
finish_test finish_test

View File

@ -430,7 +430,6 @@ execsql {
DROP TABLE tbl; DROP TABLE tbl;
} }
# Handling of ON CONFLICT by INSERT statements inside triggers # Handling of ON CONFLICT by INSERT statements inside triggers
execsql { execsql {
CREATE TABLE tbl (a primary key, b, c); CREATE TABLE tbl (a primary key, b, c);

View File

@ -25,6 +25,15 @@ proc chng {date desc} {
puts "<DD><P><UL>$desc</UL></P></DD>" puts "<DD><P><UL>$desc</UL></P></DD>"
} }
chng {2002 Aug 12 (2.6.3)} {
<li>Add the ability to read both little-endian and big-endian databases.
So database created under SunOS or MacOSX can be read and written
under Linux or Windows and vice versa.</li>
<li>Convert to the new website: http://www.sqlite.org/</li>
<li>Allow transactions to span Linux Threads</li>
<li>Bug fix in the processing of the ORDER BY clause for GROUP BY queries</li>
}
chng {2002 Jly 30 (2.6.2)} { chng {2002 Jly 30 (2.6.2)} {
<li>Text files read by the COPY command can now have line terminators <li>Text files read by the COPY command can now have line terminators
of LF, CRLF, or CR.</li> of LF, CRLF, or CR.</li>

View File

@ -1,7 +1,7 @@
# #
# Run this TCL script to generate HTML for the index.html file. # Run this TCL script to generate HTML for the index.html file.
# #
set rcsid {$Id: index.tcl,v 1.62 2002/08/12 12:29:58 drh Exp $} set rcsid {$Id: index.tcl,v 1.63 2002/08/13 00:01:18 drh Exp $}
puts {<html> puts {<html>
<head><title>SQLite: An SQL Database Engine In A C Library</title></head> <head><title>SQLite: An SQL Database Engine In A C Library</title></head>
@ -49,15 +49,18 @@ puts {<h2>Features</h2>
<p><ul> <p><ul>
<li>Implements most of SQL92.</li> <li>Implements most of SQL92.</li>
<li>A complete database (with multiple tables and indices) is <li>A complete database (with multiple tables and indices) is
stored in a single byte-order independent disk file.</li> stored in a single disk file.</li>
<li>Atomic commit and rollback protect data integrity.</li> <li>Atomic commit and rollback protect data integrity.</li>
<li>Small memory footprint: less than 20K lines of C code.</li> <li>Database files can be freely shared between machines with
different byte orders.</li>
<li>Small memory footprint: less than 25K lines of C code.</li>
<li><a href="speed.html">Four times faster</a> than PostgreSQL. <li><a href="speed.html">Four times faster</a> than PostgreSQL.
Twice as fast as SQLite 1.0.</li> Twice as fast as SQLite 1.0.</li>
<li>Very simple <li>Very simple
<a href="c_interface.html">C/C++ interface</a> requires the use of only <a href="c_interface.html">C/C++ interface</a> requires the use of only
three functions and one opaque structure.</li> three functions and one opaque structure.</li>
<li><a href="tclsqlite.html">TCL bindings</a> included.</li> <li><a href="tclsqlite.html">TCL bindings</a> included.</li>
<li>Simple, well-commented source code.</li>
<li>A TCL-based test suite provides near 100% code coverage.</li> <li>A TCL-based test suite provides near 100% code coverage.</li>
<li>Self-contained: no external dependencies.</li> <li>Self-contained: no external dependencies.</li>
<li>Built and tested under Linux and Win2K.</li> <li>Built and tested under Linux and Win2K.</li>
@ -66,30 +69,6 @@ three functions and one opaque structure.</li>
</p> </p>
} }
puts {<h2>Database File Format Change - 2002 July 17</h2>
<p>Beginning with version 2.6.0, the SQLite database file format changed
in an incompatible way. If you open a database file from version 2.5.6
or earlier with version 2.6.0 or later of the library, then the file format
will be converted automatically. This is an irreversible operation. Once
the conversion occurs, you will no longer be able to access the database
file from older versions of the library. If the database is large, the
conversion might take some time. (Allow 1 to 2 seconds per megabyte
of database under Linux.) If the database is read-only,
the conversion cannot occur and the attempt to open the database will
fail.
It is suggested that you make backup copies of older database files
before attempting to open them with version 2.6.0 or later of the library.</p>
<center>
<table width="50%" border=1 cellpadding=20 cellspacing=0>
<tr><td>
<b>Make backups of older database files before opening them
with version 2.6.0 or later of SQLite</b></td></tr>
</table>
</center>
}
puts {<h2>Current Status</h2> puts {<h2>Current Status</h2>
<p>A <a href="changes.html">Change Summary</a> is available on this <p>A <a href="changes.html">Change Summary</a> is available on this
@ -125,8 +104,25 @@ for SQLite change, it means that the underlying file format
has changed. See <a href="formatchng.html">formatchng.html</a> has changed. See <a href="formatchng.html">formatchng.html</a>
for additional information. for additional information.
</p> </p>
}
<h2>Documentation</h2> puts {<h2>Database File Format Change - Version 2.6.0 - 2002 July 17</h2>
<p>Beginning with version 2.6.0, the SQLite database file format changed
in an incompatible way. If you open a database file from version 2.5.6
or earlier with version 2.6.0 or later of the library, then the file format
will be converted automatically. This is an irreversible operation. Once
the conversion occurs, you will no longer be able to access the database
file from older versions of the library. If the database is large, the
conversion might take some time. (Allow 1 to 2 seconds per megabyte
of database under Linux.) If the database is read-only,
the conversion cannot occur and the attempt to open the database will
fail.
It is suggested that you make backup copies of older database files
before attempting to open them with version 2.6.0 or later of the library.</p>
}
puts {<h2>Documentation</h2>
<p>The following documentation is currently available:</p> <p>The following documentation is currently available:</p>
@ -201,16 +197,17 @@ $ make test <i> Optional: run regression tests </i>
puts {<h2>Related Sites</h2> puts {<h2>Related Sites</h2>
<ul> <p>
For information bindings of SQLite to other programming languages
(Perl, Python, Ruby, PHP, etc.) and for a list of programs currently
using SQLite, visit the Wiki documentation at:
</p>
<li><p>An ODBC driver for SQLite can be found at <blockquote>
<a href="http://www.ch-werner.de/sqliteodbc/"> <a href="http://cvs.hwaci.com:2080/sqlite/wiki">
http://www.ch-werner.de/sqliteodbc/</a>.</p></li> http://cvs.hwaci.com:2080/sqlite/wiki</a>
</blockquote>
<li><p>A PHP module for SQLite can be found at }
<a href="http://freshmeat.net/projects/sqlite-php">
http://freshmeat.net/projects/sqlite-php</a></li>
</ul>}
puts { puts {
</body></html>} </body></html>}