iliaa           Sun Jan 18 18:02:04 2009 UTC

  Modified files:              (Branch: PHP_5_3)
    /php-src    NEWS 
    /php-src/ext/sqlite3/libsqlite      sqlite3.c sqlite3.h sqlite3ext.h 
  Log:
  
  Upgraded bundled sqlite3 to 3.6.10
  
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.965.2.462&r2=1.2027.2.547.2.965.2.463&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.965.2.462 
php-src/NEWS:1.2027.2.547.2.965.2.463
--- php-src/NEWS:1.2027.2.547.2.965.2.462       Sat Jan 17 02:09:53 2009
+++ php-src/NEWS        Sun Jan 18 18:01:37 2009
@@ -1,7 +1,7 @@
 PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? ??? 2009, PHP 5.3.0 Alpha 4
-- Upgraded bundled sqlite to version 3.6.8. (Scott, Ilia)
+- Upgraded bundled sqlite to version 3.6.10. (Scott, Ilia)
 
 - Deprecated session_register(), session_unregister() and
   session_is_registered(). (Hannes)
http://cvs.php.net/viewvc.cgi/php-src/ext/sqlite3/libsqlite/sqlite3.c?r1=1.1.2.15&r2=1.1.2.16&diff_format=u
Index: php-src/ext/sqlite3/libsqlite/sqlite3.c
diff -u php-src/ext/sqlite3/libsqlite/sqlite3.c:1.1.2.15 
php-src/ext/sqlite3/libsqlite/sqlite3.c:1.1.2.16
--- php-src/ext/sqlite3/libsqlite/sqlite3.c:1.1.2.15    Mon Jan 12 18:55:20 2009
+++ php-src/ext/sqlite3/libsqlite/sqlite3.c     Sun Jan 18 18:01:38 2009
@@ -4,7 +4,7 @@
 
 /******************************************************************************
 ** This file is an amalgamation of many separate C source files from SQLite
-** version 3.6.8.  By combining all the individual C code files into this 
+** version 3.6.10.  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
@@ -21,7 +21,7 @@
 ** is also in a separate file.  This file contains only code for the core
 ** SQLite library.
 **
-** This amalgamation was generated on 2009-01-12 15:45:58 UTC.
+** This amalgamation was generated on 2009-01-15 16:03:22 UTC.
 */
 #define SQLITE_CORE 1
 #define SQLITE_AMALGAMATION 1
@@ -45,7 +45,7 @@
 *************************************************************************
 ** Internal interface definitions for SQLite.
 **
-** @(#) $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** @(#) $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #ifndef _SQLITEINT_H_
 #define _SQLITEINT_H_
@@ -74,7 +74,7 @@
 ** 
 ** This file defines various limits of what SQLite can process.
 **
-** @(#) $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** @(#) $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -424,16 +424,22 @@
 ** where multiple cases go to the same block of code, testcase()
 ** can insure that all cases are evaluated.
 **
-** The TESTONLY macro is used to enclose variable declarations or
-** other bits of code that are needed to support the arguments
-** within testcase() macros.
 */
 #ifdef SQLITE_COVERAGE_TEST
 SQLITE_PRIVATE   void sqlite3Coverage(int);
 # define testcase(X)  if( X ){ sqlite3Coverage(__LINE__); }
-# define TESTONLY(X)  X
 #else
 # define testcase(X)
+#endif
+
+/*
+** The TESTONLY macro is used to enclose variable declarations or
+** other bits of code that are needed to support the arguments
+** within testcase() and assert() macros.
+*/
+#if !defined(NDEBUG) || defined(SQLITE_COVERAGE_TEST)
+# define TESTONLY(X)  X
+#else
 # define TESTONLY(X)
 #endif
 
@@ -526,7 +532,7 @@
 ** the version number) and changes its name to "sqlite3.h" as
 ** part of the build process.
 **
-** @(#) $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** @(#) $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #ifndef _SQLITE3_H_
 #define _SQLITE3_H_
@@ -603,8 +609,8 @@
 **          with the value (X*1000000 + Y*1000 + Z) where X, Y, and Z
 **          are the major version, minor version, and release number.
 */
-#define SQLITE_VERSION         "3.6.8"
-#define SQLITE_VERSION_NUMBER  3006008
+#define SQLITE_VERSION         "3.6.10"
+#define SQLITE_VERSION_NUMBER  3006010
 
 /*
 ** CAPI3REF: Run-Time Library Version Numbers {H10020} <S60100>
@@ -7249,7 +7255,7 @@
 ** This is the header file for the generic hash-table implemenation
 ** used in SQLite.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #ifndef _SQLITE_HASH_H_
 #define _SQLITE_HASH_H_
@@ -7805,7 +7811,7 @@
 ** subsystem.  See comments in the source code for a detailed description
 ** of what each interface routine does.
 **
-** @(#) $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** @(#) $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #ifndef _BTREE_H_
 #define _BTREE_H_
@@ -8037,7 +8043,7 @@
 ** 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.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #ifndef _SQLITE_VDBE_H_
 #define _SQLITE_VDBE_H_
@@ -8430,7 +8436,7 @@
 ** 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.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** @(#) $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 #ifndef _PAGER_H_
@@ -8580,7 +8586,7 @@
 ** This header file defines the interface that the sqlite page cache
 ** subsystem. 
 **
-** @(#) $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** @(#) $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 #ifndef _PCACHE_H_
@@ -8748,7 +8754,7 @@
 ** This header file is #include-ed by sqliteInt.h and thus ends up
 ** being included by every source file.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #ifndef _SQLITE_OS_H_
 #define _SQLITE_OS_H_
@@ -8976,6 +8982,7 @@
 SQLITE_PRIVATE int sqlite3OsUnlock(sqlite3_file*, int);
 SQLITE_PRIVATE int sqlite3OsCheckReservedLock(sqlite3_file *id, int *pResOut);
 SQLITE_PRIVATE int sqlite3OsFileControl(sqlite3_file*,int,void*);
+#define SQLITE_FCNTL_DB_UNCHANGED 0xca093fa0
 SQLITE_PRIVATE int sqlite3OsSectorSize(sqlite3_file *id);
 SQLITE_PRIVATE int sqlite3OsDeviceCharacteristics(sqlite3_file *id);
 
@@ -9030,7 +9037,7 @@
 ** Source files should #include the sqliteInt.h file and let that file
 ** include this one indirectly.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 
@@ -11195,7 +11202,7 @@
 **
 ** This file contains definitions of global variables and contants.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 
@@ -11302,7 +11309,7 @@
 ** This module implements the sqlite3_status() interface and related
 ** functionality.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -11429,7 +11436,7 @@
 ** sqlite3RegisterDateTimeFunctions() found at the bottom of the file.
 ** All other code has file scope.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 **
 ** SQLite processes all times and dates as Julian Day numbers.  The
 ** dates and times are stored as the number of days since noon
@@ -12514,7 +12521,7 @@
 ** This file contains OS interface code that is common to all
 ** architectures.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #define _SQLITE_OS_C_ 1
 #undef _SQLITE_OS_C_
@@ -12791,7 +12798,7 @@
 **
 *************************************************************************
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -12890,7 +12897,7 @@
 ** are merely placeholders.  Real drivers must be substituted using
 ** sqlite3_config() before SQLite will operate.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -12954,7 +12961,7 @@
 ** This file contains implementations of the low-level memory allocation
 ** routines specified in the sqlite3_mem_methods object.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -13103,7 +13110,7 @@
 ** This file contains implementations of the low-level memory allocation
 ** routines specified in the sqlite3_mem_methods object.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -13548,7 +13555,7 @@
 ** This version of the memory allocation subsystem is included
 ** in the build only if SQLITE_ENABLE_MEMSYS3 is defined.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -14238,7 +14245,7 @@
 ** This version of the memory allocation subsystem is included
 ** in the build only if SQLITE_ENABLE_MEMSYS5 is defined.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -14719,7 +14726,7 @@
 ** This file contains code that is common across all mutex implementations.
 
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 #ifndef SQLITE_MUTEX_OMIT
@@ -14879,7 +14886,7 @@
 ** that does error checking on mutexes to make sure they are being
 ** called correctly.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 
@@ -15053,7 +15060,7 @@
 *************************************************************************
 ** This file contains the C functions that implement mutexes for OS/2
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -15328,7 +15335,7 @@
 *************************************************************************
 ** This file contains the C functions that implement mutexes for pthreads
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -15658,7 +15665,7 @@
 *************************************************************************
 ** This file contains the C functions that implement mutexes for win32
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -15915,7 +15922,7 @@
 **
 ** Memory allocation functions used throughout sqlite.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -16700,7 +16707,7 @@
 ** an historical reference.  Most of the "enhancements" have been backed
 ** out so that the functionality is now the same as standard printf().
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 **
 **************************************************************************
 **
@@ -17648,7 +17655,7 @@
 ** 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.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 
@@ -17794,7 +17801,7 @@
 ** This file contains routines used to translate between UTF-8, 
 ** UTF-16, UTF-16BE, and UTF-16LE.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 **
 ** Notes on UTF-8:
 **
@@ -17836,7 +17843,7 @@
 ** 6000 lines long) it was split up into several smaller files and
 ** this header information was factored out.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #ifndef _VDBEINT_H_
 #define _VDBEINT_H_
@@ -18738,7 +18745,7 @@
 ** This file contains functions for allocating memory, comparing
 ** strings, and stuff like that.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 
@@ -19729,7 +19736,7 @@
 ** This is the implementation of generic hash-tables
 ** used in SQLite.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /* Turn bulk memory into a hash table object by initializing the
@@ -20190,7 +20197,7 @@
 **
 ** This file contains code that is specific to OS/2.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 
@@ -20253,7 +20260,7 @@
 ** This file should be #included by the os_*.c files only.  It is not a
 ** general purpose header file.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #ifndef _OS_COMMON_H_
 #define _OS_COMMON_H_
@@ -20324,7 +20331,7 @@
 ** This file contains inline asm code for retrieving "high-performance"
 ** counters for x86 class CPUs.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #ifndef _HWTIME_H_
 #define _HWTIME_H_
@@ -21582,7 +21589,7 @@
 **   *  Definitions of sqlite3_vfs objects for all locking methods
 **      plus implementations of sqlite3_os_init() and sqlite3_os_end().
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #if SQLITE_OS_UNIX              /* This file is used on unix only */
 
@@ -21727,6 +21734,18 @@
   int isDelete;                    /* Delete on close if true */
   struct vxworksFileId *pId;       /* Unique file ID */
 #endif
+#ifndef NDEBUG
+  /* The next group of variables are used to track whether or not the
+  ** transaction counter in bytes 24-27 of database files are updated
+  ** whenever any part of the database changes.  An assertion fault will
+  ** occur if a file is updated without also updating the transaction
+  ** counter.  This test is made to avoid new problems similar to the
+  ** one described by ticket #3584. 
+  */
+  unsigned char transCntrChng;   /* True if the transaction counter changed */
+  unsigned char dbUpdate;        /* True if any part of database file changed 
*/
+  unsigned char inNormalWrite;   /* True if in a normal write operation */
+#endif
 #ifdef SQLITE_TEST
   /* In test mode, increase the size of this structure a bit so that 
   ** it is larger than the struct CrashFile defined in test6.c.
@@ -21759,7 +21778,7 @@
 ** This file should be #included by the os_*.c files only.  It is not a
 ** general purpose header file.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #ifndef _OS_COMMON_H_
 #define _OS_COMMON_H_
@@ -21830,7 +21849,7 @@
 ** This file contains inline asm code for retrieving "high-performance"
 ** counters for x86 class CPUs.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #ifndef _HWTIME_H_
 #define _HWTIME_H_
@@ -23086,6 +23105,24 @@
     }
   }
   
+
+#ifndef NDEBUG
+  /* Set up the transaction-counter change checking flags when
+  ** transitioning from a SHARED to a RESERVED lock.  The change
+  ** from SHARED to RESERVED marks the beginning of a normal
+  ** write operation (not a hot journal rollback).
+  */
+  if( rc==SQLITE_OK
+   && pFile->locktype<=SHARED_LOCK
+   && locktype==RESERVED_LOCK
+  ){
+    pFile->transCntrChng = 0;
+    pFile->dbUpdate = 0;
+    pFile->inNormalWrite = 1;
+  }
+#endif
+
+
   if( rc==SQLITE_OK ){
     pFile->locktype = locktype;
     pLock->locktype = locktype;
@@ -23135,6 +23172,23 @@
     SimulateIOErrorBenign(1);
     SimulateIOError( h=(-1) )
     SimulateIOErrorBenign(0);
+
+#ifndef NDEBUG
+    /* When reducing a lock such that other processes can start
+    ** reading the database file again, make sure that the
+    ** transaction counter was updated if any part of the database
+    ** file changed.  If the transaction counter is not updated,
+    ** other connections to the same file might not realize that
+    ** the file has changed and hence might not know to flush their
+    ** cache.  The use of a stale cache can lead to database corruption.
+    */
+    assert( pFile->inNormalWrite==0
+         || pFile->dbUpdate==0
+         || pFile->transCntrChng==1 );
+    pFile->inNormalWrite = 0;
+#endif
+
+
     if( locktype==SHARED_LOCK ){
       lock.l_type = F_RDLCK;
       lock.l_whence = SEEK_SET;
@@ -24467,6 +24521,29 @@
   int wrote = 0;
   assert( id );
   assert( amt>0 );
+
+#ifndef NDEBUG
+  /* If we are doing a normal write to a database file (as opposed to
+  ** doing a hot-journal rollback or a write to some file other than a
+  ** normal database file) then record the fact that the database
+  ** has changed.  If the transaction counter is modified, record that
+  ** fact too.
+  */
+  if( ((unixFile*)id)->inNormalWrite ){
+    unixFile *pFile = (unixFile*)id;
+    pFile->dbUpdate = 1;  /* The database has been modified */
+    if( offset<=24 && offset+amt>=27 ){
+      char oldCntr[4];
+      SimulateIOErrorBenign(1);
+      seekAndRead(pFile, 24, oldCntr, 4);
+      SimulateIOErrorBenign(0);
+      if( memcmp(oldCntr, &((char*)pBuf)[24-offset], 4)!=0 ){
+        pFile->transCntrChng = 1;  /* The transaction counter has changed */
+      }
+    }
+  }
+#endif
+
   while( amt>0 && (wrote = seekAndWrite((unixFile*)id, offset, pBuf, amt))>0 ){
     amt -= wrote;
     offset += wrote;
@@ -24576,9 +24653,11 @@
 #else 
   if( dataOnly ){
     rc = fdatasync(fd);
-    if( OS_VXWORKS && rc==-1 && errno==ENOTSUP ){
+#if OS_VXWORKS
+    if( rc==-1 && errno==ENOTSUP ){
       rc = fsync(fd);
     }
+#endif
   }else{
     rc = fsync(fd);
   }
@@ -24726,6 +24805,17 @@
       *(int*)pArg = ((unixFile*)id)->lastErrno;
       return SQLITE_OK;
     }
+#ifndef NDEBUG
+    /* The pager calls this method to signal that it has done
+    ** a rollback and that the database is therefore unchanged and
+    ** it hence it is OK for the transaction change counter to be
+    ** unchanged.
+    */
+    case SQLITE_FCNTL_DB_UNCHANGED: {
+      ((unixFile*)id)->dbUpdate = 0;
+      return SQLITE_OK;
+    }
+#endif
 #if SQLITE_ENABLE_LOCKING_STYLE && defined(__APPLE__)
     case SQLITE_SET_LOCKPROXYFILE:
     case SQLITE_GET_LOCKPROXYFILE: {
@@ -26755,7 +26845,7 @@
 **
 ** This file contains code that is specific to windows.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #if SQLITE_OS_WIN               /* This file is used for windows only */
 
@@ -26823,7 +26913,7 @@
 ** This file should be #included by the os_*.c files only.  It is not a
 ** general purpose header file.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #ifndef _OS_COMMON_H_
 #define _OS_COMMON_H_
@@ -26894,7 +26984,7 @@
 ** This file contains inline asm code for retrieving "high-performance"
 ** counters for x86 class CPUs.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #ifndef _HWTIME_H_
 #define _HWTIME_H_
@@ -28734,7 +28824,7 @@
 ** start of a transaction, and is thus usually less than a few thousand,
 ** but can be as large as 2 billion for a really big database.
 **
-** @(#) $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** @(#) $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /* Size of the Bitvec structure in bytes. */
@@ -29099,7 +29189,7 @@
 *************************************************************************
 ** This file implements that page cache.
 **
-** @(#) $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** @(#) $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -29686,7 +29776,7 @@
 ** If the default page cache implementation is overriden, then neither of
 ** these two features are available.
 **
-** @(#) $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** @(#) $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 
@@ -30447,6 +30537,8 @@
 **
 ** Big chunks of rowid/next-ptr pairs are allocated at a time, to
 ** reduce the malloc overhead.
+**
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -30679,7 +30771,7 @@
 ** file simultaneously, or one process from reading the database while
 ** another is writing.
 **
-** @(#) $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** @(#) $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #ifndef SQLITE_OMIT_DISKIO
 
@@ -31645,10 +31737,7 @@
 */
 static void pager_unlock(Pager *pPager){
   if( !pPager->exclusiveMode ){
-    int rc = osUnlock(pPager->fd, NO_LOCK);
-    if( rc ) pPager->errCode = rc;
-    pPager->dbSizeValid = 0;
-    IOTRACE(("UNLOCK %p\n", pPager))
+    int rc;
 
     /* Always close the journal file when dropping the database lock.
     ** Otherwise, another connection with journal_mode=delete might
@@ -31663,6 +31752,11 @@
       pPager->pAlwaysRollback = 0;
     }
 
+    rc = osUnlock(pPager->fd, NO_LOCK);
+    if( rc ) pPager->errCode = rc;
+    pPager->dbSizeValid = 0;
+    IOTRACE(("UNLOCK %p\n", pPager))
+
     /* If Pager.errCode is set, the contents of the pager cache cannot be
     ** trusted. Now that the pager file is unlocked, the contents of the
     ** cache can be discarded and the error code safely cleared.
@@ -31763,6 +31857,7 @@
   if( !pPager->exclusiveMode ){
     rc2 = osUnlock(pPager->fd, SHARED_LOCK);
     pPager->state = PAGER_SHARED;
+    pPager->changeCountDone = 0;
   }else if( pPager->state==PAGER_SYNCED ){
     pPager->state = PAGER_EXCLUSIVE;
   }
@@ -32380,6 +32475,16 @@
   assert( 0 );
 
 end_playback:
+  /* Following a rollback, the database file should be back in its original
+  ** state prior to the start of the transaction, so invoke the
+  ** SQLITE_FCNTL_DB_UNCHANGED file-control method to disable the
+  ** assertion that the transaction counter was modified.
+  */
+  assert(
+    pPager->fd->pMethods==0 ||
+    sqlite3OsFileControl(pPager->fd,SQLITE_FCNTL_DB_UNCHANGED,0)>=SQLITE_OK
+  );
+
   if( rc==SQLITE_OK ){
     zMaster = pPager->pTmpSpace;
     rc = readMasterJournal(pPager->jfd, zMaster, pPager->pVfs->mxPathname+1);
@@ -35202,7 +35307,7 @@
 **
 *************************************************************************
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa 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
@@ -35222,7 +35327,7 @@
 **    May you share freely, never taking more than you give.
 **
 *************************************************************************
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 **
 ** This file implements a external (disk-based) database using BTrees.
 ** For a detailed discussion of BTrees, refer to
@@ -36154,7 +36259,7 @@
 **    May you share freely, never taking more than you give.
 **
 *************************************************************************
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 **
 ** This file implements a external (disk-based) database using BTrees.
 ** See the header comment on "btreeInt.h" for additional information.
@@ -43647,7 +43752,7 @@
 ** only within the VDBE.  Interface routines refer to a Mem using the
 ** name sqlite_value
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -44734,7 +44839,7 @@
 ** to version 2.8.7, all this code was combined into the vdbe.c source file.
 ** But that file was getting too big so this subroutines were split out.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 
@@ -47278,7 +47383,7 @@
 ** This file contains code use to implement APIs that are part of the
 ** VDBE.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 #if 0 && defined(SQLITE_ENABLE_MEMORY_MANAGEMENT)
@@ -48619,7 +48724,7 @@
 ** 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.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -49055,7 +49160,7 @@
 ** This file contains inline asm code for retrieving "high-performance"
 ** counters for x86 class CPUs.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #ifndef _HWTIME_H_
 #define _HWTIME_H_
@@ -52572,6 +52677,7 @@
   rc = sqlite3BtreeLast(pCrsr, &res);
   pC->nullRow = (u8)res;
   pC->deferredMoveto = 0;
+  pC->rowidIsValid = 0;
   pC->cacheStatus = CACHE_STALE;
   if( res && pOp->p2>0 ){
     pc = pOp->p2 - 1;
@@ -52622,6 +52728,7 @@
     pC->atFirst = res==0 ?1:0;
     pC->deferredMoveto = 0;
     pC->cacheStatus = CACHE_STALE;
+    pC->rowidIsValid = 0;
   }else{
     res = 1;
   }
@@ -54015,7 +54122,7 @@
 **
 ** This file contains code used to implement incremental BLOB I/O.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 
@@ -54362,7 +54469,7 @@
 **
 *************************************************************************
 **
-** @(#) $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** @(#) $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 #ifdef SQLITE_ENABLE_ATOMIC_WRITE
@@ -54607,7 +54714,7 @@
 ** The in-memory rollback journal is used to journal transactions for
 ** ":memory:" databases and when the journal_mode=MEMORY pragma is used.
 **
-** @(#) $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** @(#) $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /* Forward references to internal structures */
@@ -54852,7 +54959,7 @@
 ** This file contains routines used for walking the parser tree for
 ** an SQL statement.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 
@@ -54988,7 +55095,7 @@
 ** resolve all identifiers by associating them with a particular
 ** table and column.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -56155,7 +56262,7 @@
 ** This file contains routines used for analyzing expressions and
 ** for generating VDBE code that evaluates expressions in SQLite.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -59242,7 +59349,7 @@
 ** This file contains C code routines that used to generate VDBE code
 ** that implements the ALTER TABLE command.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -59868,7 +59975,7 @@
 *************************************************************************
 ** This file contains code associated with the ANALYZE command.
 **
-** @(#) $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** @(#) $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #ifndef SQLITE_OMIT_ANALYZE
 
@@ -60297,7 +60404,7 @@
 *************************************************************************
 ** This file contains code used to implement the ATTACH and DETACH commands.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 #ifndef SQLITE_OMIT_ATTACH
@@ -60841,7 +60948,7 @@
 ** systems that do not need this facility may omit it by recompiling
 ** the library with -DSQLITE_OMIT_AUTHORIZATION=1
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -61085,7 +61192,7 @@
 **     COMMIT
 **     ROLLBACK
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -64684,7 +64791,7 @@
 ** This file contains functions used to access the internal hash tables
 ** of user defined functions and collation sequences.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 
@@ -65136,7 +65243,7 @@
 ** 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.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -65772,7 +65879,7 @@
 ** sqliteRegisterBuildinFunctions() found at the bottom of the file.
 ** All other code has file scope.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -67168,7 +67275,7 @@
 ** This file contains C code routines that are called by the parser
 ** to handle INSERT statements in SQLite.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -68909,7 +69016,7 @@
 ** other files are for internal use by SQLite and should not be
 ** accessed by users of the library.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 
@@ -69054,7 +69161,7 @@
 ** This file contains code used to dynamically load extensions into
 ** the SQLite library.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 #ifndef SQLITE_CORE
@@ -69079,7 +69186,7 @@
 ** as extensions by SQLite should #include this file instead of 
 ** sqlite3.h.
 **
-** @(#) $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** @(#) $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #ifndef _SQLITE3EXT_H_
 #define _SQLITE3EXT_H_
@@ -70040,7 +70147,7 @@
 *************************************************************************
 ** This file contains code used to implement the PRAGMA command.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /* Ignore this whole file if pragmas are disabled
@@ -70552,7 +70659,7 @@
   **  PRAGMA [database.]journal_size_limit
   **  PRAGMA [database.]journal_size_limit=N
   **
-  ** Get or set the (boolean) value of the database 'auto-vacuum' parameter.
+  ** Get or set the size limit on rollback journal files.
   */
   if( sqlite3StrICmp(zLeft,"journal_size_limit")==0 ){
     Pager *pPager = sqlite3BtreePager(pDb->pBt);
@@ -70574,7 +70681,8 @@
   **  PRAGMA [database.]auto_vacuum
   **  PRAGMA [database.]auto_vacuum=N
   **
-  ** Get or set the (boolean) value of the database 'auto-vacuum' parameter.
+  ** Get or set the value of the database 'auto-vacuum' parameter.
+  ** The value is one of:  0 NONE 1 FULL 2 INCREMENTAL
   */
 #ifndef SQLITE_OMIT_AUTOVACUUM
   if( sqlite3StrICmp(zLeft,"auto_vacuum")==0 ){
@@ -71476,7 +71584,7 @@
 ** interface, and routines that contribute to loading the database schema
 ** from disk.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -72287,7 +72395,7 @@
 ** This file contains C code routines that are called by the parser
 ** to handle SELECT statements in SQLite.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 
@@ -76477,7 +76585,7 @@
 ** These routines are in a separate files so that they will not be linked
 ** if they are not used.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 #ifndef SQLITE_OMIT_GET_TABLE
@@ -76672,7 +76780,7 @@
 *************************************************************************
 **
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 #ifndef SQLITE_OMIT_TRIGGER
@@ -77531,7 +77639,7 @@
 ** This file contains C code routines that are called by the parser
 ** to handle UPDATE statements.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 #ifndef SQLITE_OMIT_VIRTUALTABLE
@@ -78220,7 +78328,7 @@
 ** Most of the code in this file may be omitted by defining the
 ** SQLITE_OMIT_VACUUM macro.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 #if !defined(SQLITE_OMIT_VACUUM) && !defined(SQLITE_OMIT_ATTACH)
@@ -78518,7 +78626,7 @@
 *************************************************************************
 ** This file contains code used to help implement virtual tables.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #ifndef SQLITE_OMIT_VIRTUALTABLE
 
@@ -79368,7 +79476,7 @@
 ** 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.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -81197,6 +81305,7 @@
       WhereClause *pOrWC = &pTerm->u.pOrInfo->wc;
       WhereTerm *pOrTerm;
       int j;
+      int sortable = 0;
       double rTotal = 0;
       nRow = 0;
       for(j=0, pOrTerm=pOrWC->a; j<pOrWC->nTerm; j++, pOrTerm++){
@@ -81216,6 +81325,14 @@
         nRow += sTermCost.nRow;
         if( rTotal>=pCost->rCost ) break;
       }
+      if( pOrderBy!=0 ){
+        if( sortableByRowid(iCur, pOrderBy, pWC->pMaskSet, &rev) && !rev ){
+          sortable = 1;
+        }else{
+          rTotal += nRow*estLog(nRow);
+          WHERETRACE(("... sorting increases OR cost to %.9g\n", rTotal));
+        }
+      }
       WHERETRACE(("... multi-index OR cost=%.9g nrow=%.9g\n",
                   rTotal, nRow));
       if( rTotal<pCost->rCost ){
@@ -81223,10 +81340,7 @@
         pCost->nRow = nRow;
         pCost->plan.wsFlags = WHERE_MULTI_OR;
         pCost->plan.u.pTerm = pTerm;
-        if( pOrderBy!=0
-         && sortableByRowid(iCur, pOrderBy, pWC->pMaskSet, &rev)
-         && !rev
-        ){
+        if( sortable ){
           pCost->plan.wsFlags = WHERE_ORDERBY|WHERE_MULTI_OR;
         }
       }
@@ -86017,7 +86131,7 @@
 ** individual tokens and sends those tokens one-by-one over to the
 ** parser for analysis.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 /*
@@ -86070,7 +86184,7 @@
 **
 ** The code in this file has been automatically generated by
 **
-**     $Header: /repository/php-src/ext/sqlite3/libsqlite/sqlite3.c,v 1.1.2.15 
2009/01/12 18:55:20 scottmac Exp $
+**     $Header: /repository/php-src/ext/sqlite3/libsqlite/sqlite3.c,v 1.1.2.16 
2009/01/18 18:01:38 iliaa 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
@@ -86804,7 +86918,7 @@
 ** separating it out, the code will be automatically omitted from
 ** static links that do not use it.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 #ifndef SQLITE_OMIT_COMPLETE
 
@@ -87081,7 +87195,7 @@
 ** other files are for internal use by SQLite and should not be
 ** accessed by users of the library.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 #ifdef SQLITE_ENABLE_FTS3
@@ -89498,8 +89612,8 @@
 **
 **
 **** Segment merging ****
-** To amortize update costs, segments are groups into levels and
-** merged in matches.  Each increase in level represents exponentially
+** To amortize update costs, segments are grouped into levels and
+** merged in batches.  Each increase in level represents exponentially
 ** more documents.
 **
 ** New documents (actually, document updates) are tokenized and
@@ -99174,7 +99288,7 @@
 ** This file contains code for implementations of the r-tree and r*-tree
 ** algorithms packaged as an SQLite virtual table module.
 **
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 #if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_RTREE)
@@ -102029,7 +102143,7 @@
 **    May you share freely, never taking more than you give.
 **
 *************************************************************************
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 **
 ** This file implements an integration between the ICU library 
 ** ("International Components for Unicode", an open-source library 
@@ -102530,7 +102644,7 @@
 *************************************************************************
 ** This file implements a tokenizer for fts3 based on the ICU library.
 ** 
-** $Id: sqlite3.c,v 1.1.2.15 2009/01/12 18:55:20 scottmac Exp $
+** $Id: sqlite3.c,v 1.1.2.16 2009/01/18 18:01:38 iliaa Exp $
 */
 
 #if !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_FTS3)
http://cvs.php.net/viewvc.cgi/php-src/ext/sqlite3/libsqlite/sqlite3.h?r1=1.1.2.12&r2=1.1.2.13&diff_format=u
Index: php-src/ext/sqlite3/libsqlite/sqlite3.h
diff -u php-src/ext/sqlite3/libsqlite/sqlite3.h:1.1.2.12 
php-src/ext/sqlite3/libsqlite/sqlite3.h:1.1.2.13
--- php-src/ext/sqlite3/libsqlite/sqlite3.h:1.1.2.12    Mon Jan 12 18:55:37 2009
+++ php-src/ext/sqlite3/libsqlite/sqlite3.h     Sun Jan 18 18:01:53 2009
@@ -30,7 +30,7 @@
 ** the version number) and changes its name to "sqlite3.h" as
 ** part of the build process.
 **
-** @(#) $Id: sqlite3.h,v 1.1.2.12 2009/01/12 18:55:37 scottmac Exp $
+** @(#) $Id: sqlite3.h,v 1.1.2.13 2009/01/18 18:01:53 iliaa Exp $
 */
 #ifndef _SQLITE3_H_
 #define _SQLITE3_H_
@@ -107,8 +107,8 @@
 **          with the value (X*1000000 + Y*1000 + Z) where X, Y, and Z
 **          are the major version, minor version, and release number.
 */
-#define SQLITE_VERSION         "3.6.8"
-#define SQLITE_VERSION_NUMBER  3006008
+#define SQLITE_VERSION         "3.6.10"
+#define SQLITE_VERSION_NUMBER  3006010
 
 /*
 ** CAPI3REF: Run-Time Library Version Numbers {H10020} <S60100>
http://cvs.php.net/viewvc.cgi/php-src/ext/sqlite3/libsqlite/sqlite3ext.h?r1=1.1.2.11&r2=1.1.2.12&diff_format=u
Index: php-src/ext/sqlite3/libsqlite/sqlite3ext.h
diff -u php-src/ext/sqlite3/libsqlite/sqlite3ext.h:1.1.2.11 
php-src/ext/sqlite3/libsqlite/sqlite3ext.h:1.1.2.12
--- php-src/ext/sqlite3/libsqlite/sqlite3ext.h:1.1.2.11 Mon Jan 12 18:55:37 2009
+++ php-src/ext/sqlite3/libsqlite/sqlite3ext.h  Sun Jan 18 18:01:53 2009
@@ -15,7 +15,7 @@
 ** as extensions by SQLite should #include this file instead of 
 ** sqlite3.h.
 **
-** @(#) $Id: sqlite3ext.h,v 1.1.2.11 2009/01/12 18:55:37 scottmac Exp $
+** @(#) $Id: sqlite3ext.h,v 1.1.2.12 2009/01/18 18:01:53 iliaa Exp $
 */
 #ifndef _SQLITE3EXT_H_
 #define _SQLITE3EXT_H_

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to