Bug 415947: Upgrade to SQLite 3.5.4.2 to pick up OS/2 code changes, r=sdwilsh, a1.9=beltzner

This commit is contained in:
mozilla@weilbacher.org 2008-04-15 12:29:45 -07:00
Родитель 5836051593
Коммит 6f0611869f
3 изменённых файлов: 126 добавлений и 145 удалений

Просмотреть файл

@ -128,7 +128,7 @@ LIBGNOME_VERSION=2.0
STARTUP_NOTIFICATION_VERSION=0.8
DBUS_VERSION=0.60
LCMS_VERSION=1.17
SQLITE_VERSION=3.5
SQLITE_VERSION=3.5.4
MSMANIFEST_TOOL=

Просмотреть файл

@ -1,7 +1,7 @@
This is sqlite 3.5.4.1
This is sqlite 3.5.4.2
-- Shawn Wilsher <me@shawnwilsher.com> 01/2008
-- Peter Weilbacher <mozilla@weilbacher.org>, 04/2008
See http://www.sqlite.org/ for more info.
@ -12,7 +12,6 @@ To move to a new version:
Simply copy the sqlite3.h and sqlite3.c files from the amalgamation of sqlite.
If mozstorage or nss code need changes due to API changes in sqlite3, be sure
to update SQLITE_VERSION accordingly in $(topsrcdir)/configure.in.
Be sure to update SQLITE_VERSION accordingly in $(topsrcdir)/configure.in.
-- Shawn Wilsher <me@shawnwilsher.com> 01/2008

Просмотреть файл

@ -1,6 +1,6 @@
/******************************************************************************
** This file is an amalgamation of many separate C source files from SQLite
** version 3.5.4.1. By combining all the individual C code files into this
** version 3.5.4.2. By combining all the individual C code files into this
** single large file, the entire code can be compiled as a one translation
** unit. This allows many compilers to do optimizations that would not be
** possible if the files were compiled separately. Performance improvements
@ -17,7 +17,7 @@
** is also in a separate file. This file contains only code for the core
** SQLite library.
**
** This amalgamation was generated on 2008-01-20 20:21:55 UTC.
** This amalgamation was generated on 2008-04-11 06:58:05 UTC.
*/
#define SQLITE_AMALGAMATION 1
#ifndef SQLITE_PRIVATE
@ -40,7 +40,7 @@
*************************************************************************
** Internal interface definitions for SQLite.
**
** @(#) $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** @(#) $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef _SQLITEINT_H_
#define _SQLITEINT_H_
@ -104,7 +104,7 @@
**
** This file defines various limits of what SQLite can process.
**
** @(#) $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** @(#) $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/*
@ -395,7 +395,7 @@
** the version number) and changes its name to "sqlite3.h" as
** part of the build process.
**
** @(#) $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** @(#) $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef _SQLITE3_H_
#define _SQLITE3_H_
@ -453,7 +453,7 @@ extern "C" {
**
** See also: [sqlite3_libversion()] and [sqlite3_libversion_number()].
*/
#define SQLITE_VERSION "3.5.4.1"
#define SQLITE_VERSION "3.5.4.2"
#define SQLITE_VERSION_NUMBER 3005004
/*
@ -4222,7 +4222,7 @@ SQLITE_API int sqlite3_file_control(sqlite3*, const char *zDbName, int op, void*
** This is the header file for the generic hash-table implemenation
** used in SQLite.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef _SQLITE_HASH_H_
#define _SQLITE_HASH_H_
@ -4655,7 +4655,7 @@ struct BusyHandler {
** subsystem. See comments in the source code for a detailed description
** of what each interface routine does.
**
** @(#) $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** @(#) $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef _BTREE_H_
#define _BTREE_H_
@ -4865,7 +4865,7 @@ SQLITE_PRIVATE void sqlite3BtreeMutexArrayInsert(BtreeMutexArray*, Btree*);
** or VDBE. The VDBE implements an abstract machine that runs a
** simple program to access and modify the underlying database.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef _SQLITE_VDBE_H_
#define _SQLITE_VDBE_H_
@ -5181,7 +5181,7 @@ SQLITE_PRIVATE void sqlite3VdbeComment(Vdbe*, const char*, ...);
** subsystem. The page cache subsystem reads and writes a file a page
** at a time and provides a journal for rollback.
**
** @(#) $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** @(#) $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef _PAGER_H_
@ -5656,7 +5656,7 @@ SQLITE_PRIVATE sqlite3_vfs *sqlite3OsDefaultVfs(void);
** Source files should #include the sqliteInt.h file and let that file
** include this one indirectly.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
@ -7389,7 +7389,7 @@ SQLITE_EXTERN void (*sqlite3_io_trace)(const char*,...);
** sqlite3RegisterDateTimeFunctions() found at the bottom of the file.
** All other code has file scope.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
**
** SQLite processes all times and dates as Julian Day numbers. The
** dates and times are stored as the number of days since noon
@ -8715,7 +8715,7 @@ SQLITE_API int sqlite3_vfs_unregister(sqlite3_vfs *pVfs){
** This file contains the C functions that implement a memory
** allocation subsystem for use by SQLite.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/*
@ -8949,7 +8949,7 @@ SQLITE_API void *sqlite3_realloc(void *pPrior, int nBytes){
** This file contains the C functions that implement a memory
** allocation subsystem for use by SQLite.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/*
@ -9531,7 +9531,7 @@ SQLITE_PRIVATE void sqlite3MallocAllow(void){
** This version of the memory allocation subsystem is used if
** and only if SQLITE_MEMORY_SIZE is defined.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/*
@ -10185,7 +10185,7 @@ SQLITE_API void sqlite3_memdebug_dump(const char *zFilename){
** implementation is suitable for testing.
** debugging purposes
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifdef SQLITE_MUTEX_NOOP_DEBUG
@ -10305,7 +10305,7 @@ SQLITE_API int sqlite3_mutex_notheld(sqlite3_mutex *p){
*************************************************************************
** This file contains the C functions that implement mutexes for OS/2
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/*
@ -10324,13 +10324,14 @@ SQLITE_API int sqlite3_mutex_notheld(sqlite3_mutex *p){
** Each recursive mutex is an instance of the following structure.
*/
struct sqlite3_mutex {
PSZ mutexName; /* Mutex name controlling the lock */
HMTX mutex; /* Mutex controlling the lock */
int id; /* Mutex type */
int nRef; /* Number of references */
TID owner; /* Thread holding this mutex */
};
#define OS2_MUTEX_INITIALIZER 0,0,0,0
/*
** The sqlite3_mutex_alloc() routine allocates a new
** mutex and returns a pointer to it. If it returns NULL
@ -10371,46 +10372,55 @@ struct sqlite3_mutex {
** the same type number.
*/
SQLITE_API sqlite3_mutex *sqlite3_mutex_alloc(int iType){
PSZ mutex_name = "\\SEM32\\SQLITE\\MUTEX";
int mutex_name_len = strlen(mutex_name) + 1; /* name length + null byte */
sqlite3_mutex *p;
sqlite3_mutex *p = NULL;
switch( iType ){
case SQLITE_MUTEX_FAST:
case SQLITE_MUTEX_RECURSIVE: {
p = sqlite3MallocZero( sizeof(*p) );
if( p ){
p->mutexName = (PSZ)malloc(mutex_name_len);
sqlite3_snprintf(mutex_name_len, p->mutexName, "%s", mutex_name);
p->id = iType;
DosCreateMutexSem(p->mutexName, &p->mutex, 0, FALSE);
DosOpenMutexSem(p->mutexName, &p->mutex);
if( DosCreateMutexSem( 0, &p->mutex, 0, FALSE ) != NO_ERROR ){
sqlite3_free( p );
p = NULL;
}
}
break;
}
default: {
static sqlite3_mutex staticMutexes[5];
static int isInit = 0;
while( !isInit ) {
static long lock = 0;
DosEnterCritSec();
lock++;
if( lock == 1 ) {
int i;
DosExitCritSec();
for(i = 0; i < sizeof(staticMutexes)/sizeof(staticMutexes[0]); i++) {
staticMutexes[i].mutexName = (PSZ)malloc(mutex_name_len + 1);
sqlite3_snprintf(mutex_name_len + 1, /* one more for the number */
staticMutexes[i].mutexName, "%s%1d", mutex_name, i);
DosCreateMutexSem(staticMutexes[i].mutexName,
&staticMutexes[i].mutex, 0, FALSE);
DosOpenMutexSem(staticMutexes[i].mutexName,
&staticMutexes[i].mutex);
static volatile int isInit = 0;
static sqlite3_mutex staticMutexes[] = {
{ OS2_MUTEX_INITIALIZER, },
{ OS2_MUTEX_INITIALIZER, },
{ OS2_MUTEX_INITIALIZER, },
{ OS2_MUTEX_INITIALIZER, },
{ OS2_MUTEX_INITIALIZER, },
};
if ( !isInit ){
APIRET rc;
PTIB ptib;
PPIB ppib;
HMTX mutex;
char name[32];
DosGetInfoBlocks( &ptib, &ppib );
sqlite3_snprintf( sizeof(name), name, "\\SEM32\\SQLITE%04x",
ppib->pib_ulpid );
while( !isInit ){
mutex = 0;
rc = DosCreateMutexSem( name, &mutex, 0, FALSE);
if( rc == NO_ERROR ){
int i;
if( !isInit ){
for( i = 0; i < sizeof(staticMutexes)/sizeof(staticMutexes[0]); i++ ){
DosCreateMutexSem( 0, &staticMutexes[i].mutex, 0, FALSE );
}
isInit = 1;
}
DosCloseMutexSem( mutex );
}else if( rc == ERROR_DUPLICATE_NAME ){
DosSleep( 1 );
}else{
return p;
}
isInit = 1;
} else {
DosExitCritSec();
DosSleep(1);
}
}
assert( iType-2 >= 0 );
@ -10432,9 +10442,8 @@ SQLITE_API void sqlite3_mutex_free(sqlite3_mutex *p){
assert( p );
assert( p->nRef==0 );
assert( p->id==SQLITE_MUTEX_FAST || p->id==SQLITE_MUTEX_RECURSIVE );
DosCloseMutexSem(p->mutex);
free(p->mutexName);
sqlite3_free(p);
DosCloseMutexSem( p->mutex );
sqlite3_free( p );
}
/*
@ -10543,7 +10552,7 @@ SQLITE_API int sqlite3_mutex_notheld(sqlite3_mutex *p){
*************************************************************************
** This file contains the C functions that implement mutexes for pthreads
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/*
@ -10843,7 +10852,7 @@ SQLITE_API int sqlite3_mutex_notheld(sqlite3_mutex *p){
*************************************************************************
** This file contains the C functions that implement mutexes for win32
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/*
@ -11065,7 +11074,7 @@ SQLITE_API int sqlite3_mutex_notheld(sqlite3_mutex *p){
** Memory allocation functions used throughout sqlite.
**
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/*
@ -12213,7 +12222,7 @@ SQLITE_PRIVATE void sqlite3DebugPrintf(const char *zFormat, ...){
** Random numbers are used by some of the database backends in order
** to generate random integer keys for tables or random filenames.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
@ -12315,7 +12324,7 @@ SQLITE_PRIVATE void sqlite3Randomness(int N, void *pBuf){
** This file contains routines used to translate between UTF-8,
** UTF-16, UTF-16BE, and UTF-16LE.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
**
** Notes on UTF-8:
**
@ -13294,7 +13303,7 @@ SQLITE_PRIVATE void sqlite3UtfSelfTest(){
** This file contains functions for allocating memory, comparing
** strings, and stuff like that.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
@ -13999,7 +14008,7 @@ SQLITE_PRIVATE int sqlite3SafetyOff(sqlite3 *db){
** This is the implementation of generic hash-tables
** used in SQLite.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/* Turn bulk memory into a hash table object by initializing the
@ -14855,15 +14864,10 @@ int os2Write(
*/
int os2Truncate( sqlite3_file *id, i64 nByte ){
APIRET rc = NO_ERROR;
ULONG filePosition = 0L;
os2File *pFile = (os2File*)id;
OSTRACE3( "TRUNCATE %d %lld\n", pFile->h, nByte );
SimulateIOError( return SQLITE_IOERR_TRUNCATE );
rc = DosSetFilePtr( pFile->h, nByte, FILE_BEGIN, &filePosition );
if( rc != NO_ERROR ){
return SQLITE_IOERR;
}
rc = DosSetFilePtr( pFile->h, 0L, FILE_END, &filePosition );
rc = DosSetFileSize( pFile->h, nByte );
return rc == NO_ERROR ? SQLITE_OK : SQLITE_IOERR;
}
@ -15117,15 +15121,16 @@ int os2Lock( sqlite3_file *id, int locktype ){
** non-zero, otherwise zero.
*/
int os2CheckReservedLock( sqlite3_file *id ){
APIRET rc = NO_ERROR;
int r = 0;
os2File *pFile = (os2File*)id;
assert( pFile!=0 );
if( pFile->locktype>=RESERVED_LOCK ){
rc = 1;
OSTRACE3( "TEST WR-LOCK %d %d (local)\n", pFile->h, rc );
r = 1;
OSTRACE3( "TEST WR-LOCK %d %d (local)\n", pFile->h, r );
}else{
FILELOCK LockArea,
UnlockArea;
APIRET rc = NO_ERROR;
memset(&LockArea, 0, sizeof(LockArea));
memset(&UnlockArea, 0, sizeof(UnlockArea));
LockArea.lOffset = RESERVED_BYTE;
@ -15135,17 +15140,18 @@ int os2CheckReservedLock( sqlite3_file *id ){
rc = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, 2000L, 1L );
OSTRACE3( "TEST WR-LOCK %d lock reserved byte rc=%d\n", pFile->h, rc );
if( rc == NO_ERROR ){
int r;
APIRET rcu = NO_ERROR; /* return code for unlocking */
LockArea.lOffset = 0L;
LockArea.lRange = 0L;
UnlockArea.lOffset = RESERVED_BYTE;
UnlockArea.lRange = 1L;
r = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, 2000L, 1L );
OSTRACE3( "TEST WR-LOCK %d unlock reserved byte r=%d\n", pFile->h, r );
rcu = DosSetFileLocks( pFile->h, &UnlockArea, &LockArea, 2000L, 1L );
OSTRACE3( "TEST WR-LOCK %d unlock reserved byte r=%d\n", pFile->h, rcu );
}
OSTRACE3( "TEST WR-LOCK %d %d (remote)\n", pFile->h, rc );
r = !(rc == NO_ERROR);
OSTRACE3( "TEST WR-LOCK %d %d (remote)\n", pFile->h, r );
}
return rc;
return r;
}
/*
@ -15336,15 +15342,8 @@ static int os2Open(
OSTRACE1( "OPEN normal file attribute\n" );
}
//ulOpenMode |= flags & (SQLITE_OPEN_MAIN_DB | SQLITE_OPEN_TEMP_DB) ?
// OPEN_FLAGS_RANDOM : OPEN_FLAGS_SEQUENTIAL;
if( flags & (SQLITE_OPEN_MAIN_DB | SQLITE_OPEN_TEMP_DB) ){
ulOpenMode |= OPEN_FLAGS_RANDOM;
OSTRACE1( "OPEN random access\n" );
}else{
ulOpenMode |= OPEN_FLAGS_SEQUENTIAL;
OSTRACE1( "OPEN sequential access\n" );
}
/* always open in random access mode for possibly better speed */
ulOpenMode |= OPEN_FLAGS_RANDOM;
ulOpenMode |= OPEN_FLAGS_FAIL_ON_ERROR;
rc = DosOpen( (PSZ)zName,
@ -15455,8 +15454,7 @@ static int os2GetTempname( sqlite3_vfs *pVfs, int nBuf, char *zBuf ){
j--;
}
zTempPath[j] = '\0';
assert( nBuf>=pVfs->mxPathname );
sqlite3_snprintf( pVfs->mxPathname-30, zBuf,
sqlite3_snprintf( nBuf-30, zBuf,
"%s\\"SQLITE_TEMP_FILE_PREFIX, zTempPath );
j = strlen( zBuf );
sqlite3Randomness( 20, &zBuf[j] );
@ -15480,24 +15478,8 @@ static int os2FullPathname(
int nFull, /* Size of output buffer in bytes */
char *zFull /* Output buffer */
){
if( strchr(zRelative, ':') ){
sqlite3_snprintf( nFull, zFull, "%s", zRelative );
}else{
ULONG ulDriveNum = 0;
ULONG ulDriveMap = 0;
ULONG cbzBufLen = SQLITE_TEMPNAME_SIZE;
char *zBuff = (char*)malloc( cbzBufLen );
if( zBuff == 0 ){
return SQLITE_NOMEM;
}
DosQueryCurrentDisk( &ulDriveNum, &ulDriveMap );
if( DosQueryCurrentDir( ulDriveNum, (PBYTE)zBuff, &cbzBufLen ) == NO_ERROR ){
sqlite3_snprintf( nFull, zFull, "%c:\\%s\\%s",
(char)('A' + ulDriveNum - 1), zBuff, zRelative);
}
free( zBuff );
}
return SQLITE_OK;
APIRET rc = DosQueryPathInfo( zRelative, FIL_QUERYFULLNAME, zFull, nFull );
return rc == NO_ERROR ? SQLITE_OK : SQLITE_IOERR;
}
#ifndef SQLITE_OMIT_LOAD_EXTENSION
@ -20300,7 +20282,7 @@ SQLITE_PRIVATE sqlite3_vfs *sqlite3OsDefaultVfs(void){
** file simultaneously, or one process from reading the database while
** another is writing.
**
** @(#) $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** @(#) $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef SQLITE_OMIT_DISKIO
@ -25415,7 +25397,7 @@ SQLITE_PRIVATE void sqlite3PagerRefdump(Pager *pPager){
**
*************************************************************************
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
**
** This file contains code used to implement mutexes on Btree objects.
** This code really belongs in btree.c. But btree.c is getting too
@ -25435,7 +25417,7 @@ SQLITE_PRIVATE void sqlite3PagerRefdump(Pager *pPager){
** May you share freely, never taking more than you give.
**
*************************************************************************
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
**
** This file implements a external (disk-based) database using BTrees.
** For a detailed discussion of BTrees, refer to
@ -26381,7 +26363,7 @@ SQLITE_PRIVATE void sqlite3BtreeMutexArrayLeave(BtreeMutexArray *pArray){
** May you share freely, never taking more than you give.
**
*************************************************************************
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
**
** This file implements a external (disk-based) database using BTrees.
** See the header comment on "btreeInt.h" for additional information.
@ -37835,7 +37817,7 @@ SQLITE_API sqlite3 *sqlite3_db_handle(sqlite3_stmt *pStmt){
** in this file for details. If in doubt, do not deviate from existing
** commenting and indentation practices when changing or adding code.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/*
@ -43109,7 +43091,7 @@ abort_due_to_interrupt:
**
** This file contains code used to implement incremental BLOB I/O.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
@ -43448,7 +43430,7 @@ SQLITE_API int sqlite3_blob_bytes(sqlite3_blob *pBlob){
**
*************************************************************************
**
** @(#) $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** @(#) $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifdef SQLITE_ENABLE_ATOMIC_WRITE
@ -43690,7 +43672,7 @@ SQLITE_PRIVATE int sqlite3JournalSize(sqlite3_vfs *pVfs){
** This file contains routines used for analyzing expressions and
** for generating VDBE code that evaluates expressions in SQLite.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/*
@ -46507,7 +46489,7 @@ SQLITE_PRIVATE int sqlite3ExprAnalyzeAggList(NameContext *pNC, ExprList *pList){
** This file contains C code routines that used to generate VDBE code
** that implements the ALTER TABLE command.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/*
@ -47136,7 +47118,7 @@ exit_begin_add_column:
*************************************************************************
** This file contains code associated with the ANALYZE command.
**
** @(#) $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** @(#) $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef SQLITE_OMIT_ANALYZE
@ -47558,7 +47540,7 @@ SQLITE_PRIVATE int sqlite3AnalysisLoad(sqlite3 *db, int iDb){
*************************************************************************
** This file contains code used to implement the ATTACH and DETACH commands.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef SQLITE_OMIT_ATTACH
@ -48086,7 +48068,7 @@ SQLITE_PRIVATE int sqlite3FixTriggerStep(
** systems that do not need this facility may omit it by recompiling
** the library with -DSQLITE_OMIT_AUTHORIZATION=1
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/*
@ -48330,7 +48312,7 @@ SQLITE_PRIVATE void sqlite3AuthContextPop(AuthContext *pContext){
** COMMIT
** ROLLBACK
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/*
@ -51761,7 +51743,7 @@ SQLITE_PRIVATE KeyInfo *sqlite3IndexKeyinfo(Parse *pParse, Index *pIdx){
** This file contains functions used to access the internal hash tables
** of user defined functions and collation sequences.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
@ -52140,7 +52122,7 @@ SQLITE_PRIVATE Schema *sqlite3SchemaGet(sqlite3 *db, Btree *pBt){
** This file contains C code routines that are called by the parser
** in order to generate code for DELETE FROM statements.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/*
@ -52617,7 +52599,7 @@ SQLITE_PRIVATE void sqlite3GenerateIndexKey(
** sqliteRegisterBuildinFunctions() found at the bottom of the file.
** All other code has file scope.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
@ -54186,7 +54168,7 @@ SQLITE_PRIVATE int sqlite3IsLikeFunction(sqlite3 *db, Expr *pExpr, int *pIsNocas
** This file contains C code routines that are called by the parser
** to handle INSERT statements in SQLite.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/*
@ -55816,7 +55798,7 @@ static int xferOptimization(
** other files are for internal use by SQLite and should not be
** accessed by users of the library.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
@ -55971,7 +55953,7 @@ exec_out:
** as extensions by SQLite should #include this file instead of
** sqlite3.h.
**
** @(#) $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** @(#) $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef _SQLITE3EXT_H_
#define _SQLITE3EXT_H_
@ -56817,7 +56799,7 @@ SQLITE_PRIVATE int sqlite3AutoLoadExtensions(sqlite3 *db){
*************************************************************************
** This file contains code used to implement the PRAGMA command.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/* Ignore this whole file if pragmas are disabled
@ -58022,7 +58004,7 @@ pragma_out:
** interface, and routines that contribute to loading the database schema
** from disk.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/*
@ -58787,7 +58769,7 @@ SQLITE_API int sqlite3_prepare16_v2(
** This file contains C code routines that are called by the parser
** to handle SELECT statements in SQLite.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
@ -63504,7 +63486,7 @@ SQLITE_PRIVATE int sqlite3CodeRowTrigger(
** This file contains C code routines that are called by the parser
** to handle UPDATE statements.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef SQLITE_OMIT_VIRTUALTABLE
@ -64147,7 +64129,7 @@ static void updateVirtualTable(
** Most of the code in this file may be omitted by defining the
** SQLITE_OMIT_VACUUM macro.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#if !defined(SQLITE_OMIT_VACUUM) && !defined(SQLITE_OMIT_ATTACH)
@ -64408,7 +64390,7 @@ end_of_vacuum:
*************************************************************************
** This file contains code used to help implement virtual tables.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef SQLITE_OMIT_VIRTUALTABLE
@ -65212,7 +65194,7 @@ SQLITE_PRIVATE FuncDef *sqlite3VtabOverloadFunction(
** so is applicable. Because this module is responsible for selecting
** indices, you might also think of this module as the "query optimizer".
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/*
@ -71115,7 +71097,7 @@ SQLITE_PRIVATE void sqlite3Parser(
** individual tokens and sends those tokens one-by-one over to the
** parser for analysis.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/*
@ -71168,7 +71150,7 @@ const unsigned char ebcdicToAscii[] = {
**
** The code in this file has been automatically generated by
**
** $Header: /cvsroot/mozilla/db/sqlite3/src/sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Header: /cvsroot/mozilla/db/sqlite3/src/sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
**
** The code in this file implements a function that determines whether
** or not a given identifier is really an SQL keyword. The same thing
@ -71740,7 +71722,7 @@ abort_parse:
** separating it out, the code will be automatically omitted from
** static links that do not use it.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef SQLITE_OMIT_COMPLETE
@ -72011,7 +71993,7 @@ SQLITE_API int sqlite3_complete16(const void *zSql){
** other files are for internal use by SQLite and should not be
** accessed by users of the library.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
/*
@ -73828,7 +73810,7 @@ SQLITE_API int sqlite3_file_control(sqlite3 *db, const char *zDbName, int op, vo
** the version number) and changes its name to "sqlite3.h" as
** part of the build process.
**
** @(#) $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** @(#) $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef _SQLITE3_H_
#define _SQLITE3_H_
@ -77829,7 +77811,7 @@ void sqlite3Fts3HashClear(fts3Hash*);
** the version number) and changes its name to "sqlite3.h" as
** part of the build process.
**
** @(#) $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** @(#) $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef _SQLITE3_H_
#define _SQLITE3_H_
@ -87939,7 +87921,7 @@ int sqlite3_extension_init(
** the version number) and changes its name to "sqlite3.h" as
** part of the build process.
**
** @(#) $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** @(#) $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef _SQLITE3_H_
#define _SQLITE3_H_
@ -92298,7 +92280,7 @@ void *sqlite3Fts3HashInsert(
** the version number) and changes its name to "sqlite3.h" as
** part of the build process.
**
** @(#) $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** @(#) $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef _SQLITE3_H_
#define _SQLITE3_H_
@ -96886,7 +96868,7 @@ void sqlite3Fts3PorterTokenizerModule(
** as extensions by SQLite should #include this file instead of
** sqlite3.h.
**
** @(#) $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** @(#) $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef _SQLITE3EXT_H_
#define _SQLITE3EXT_H_
@ -96924,7 +96906,7 @@ void sqlite3Fts3PorterTokenizerModule(
** the version number) and changes its name to "sqlite3.h" as
** part of the build process.
**
** @(#) $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** @(#) $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef _SQLITE3_H_
#define _SQLITE3_H_
@ -101244,7 +101226,7 @@ void sqlite3Fts3HashClear(fts3Hash*);
** the version number) and changes its name to "sqlite3.h" as
** part of the build process.
**
** @(#) $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** @(#) $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef _SQLITE3_H_
#define _SQLITE3_H_
@ -105603,7 +105585,7 @@ int sqlite3Fts3InitHashTable(
** the version number) and changes its name to "sqlite3.h" as
** part of the build process.
**
** @(#) $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** @(#) $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef _SQLITE3_H_
#define _SQLITE3_H_
@ -109746,7 +109728,7 @@ void sqlite3Fts3SimpleTokenizerModule(
*************************************************************************
** This file implements a tokenizer for fts3 based on the ICU library.
**
** $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3)
@ -109814,7 +109796,7 @@ void sqlite3Fts3SimpleTokenizerModule(
** the version number) and changes its name to "sqlite3.h" as
** part of the build process.
**
** @(#) $Id: sqlite3.c,v 1.15 2008/03/20 19:17:10 gavin%gavinsharp.com Exp $
** @(#) $Id: sqlite3.c,v 1.16 2008/04/15 19:29:46 mozilla%weilbacher.org Exp $
*/
#ifndef _SQLITE3_H_
#define _SQLITE3_H_