1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-12 13:01:09 +03:00

Merge updates from trunk.

FossilOrigin-Name: 45acf6a85150839d591316418dad59ae20ce3aa4
This commit is contained in:
mistachkin
2015-03-27 18:22:01 +00:00
7 changed files with 50 additions and 39 deletions

View File

@@ -331,7 +331,7 @@ SHELL_CCONV_OPTS =
# These are additional compiler options used for the core library. # These are additional compiler options used for the core library.
# #
!IFNDEF CORE_COMPILE_OPTS !IFNDEF CORE_COMPILE_OPTS
!IF $(USE_STDCALL)!=0 !IF $(DYNAMIC_SHELL)!=0
CORE_COMPILE_OPTS = $(CORE_CCONV_OPTS) -DSQLITE_API=__declspec(dllexport) CORE_COMPILE_OPTS = $(CORE_CCONV_OPTS) -DSQLITE_API=__declspec(dllexport)
!ELSE !ELSE
CORE_COMPILE_OPTS = $(CORE_CCONV_OPTS) CORE_COMPILE_OPTS = $(CORE_CCONV_OPTS)
@@ -342,7 +342,7 @@ CORE_COMPILE_OPTS = $(CORE_CCONV_OPTS)
# when linking. # when linking.
# #
!IFNDEF CORE_LINK_DEP !IFNDEF CORE_LINK_DEP
!IF $(USE_STDCALL)!=0 !IF $(DYNAMIC_SHELL)!=0
CORE_LINK_DEP = CORE_LINK_DEP =
!ELSE !ELSE
CORE_LINK_DEP = sqlite3.def CORE_LINK_DEP = sqlite3.def
@@ -352,7 +352,7 @@ CORE_LINK_DEP = sqlite3.def
# These are additional linker options used for the core library. # These are additional linker options used for the core library.
# #
!IFNDEF CORE_LINK_OPTS !IFNDEF CORE_LINK_OPTS
!IF $(USE_STDCALL)!=0 !IF $(DYNAMIC_SHELL)!=0
CORE_LINK_OPTS = CORE_LINK_OPTS =
!ELSE !ELSE
CORE_LINK_OPTS = /DEF:sqlite3.def CORE_LINK_OPTS = /DEF:sqlite3.def

View File

@@ -1,9 +1,9 @@
C When\ssyncing\sa\smemory\smapped\sfile\son\sWindows,\sflush\sthe\smapped\sview\sas\swell. C Merge\supdates\sfrom\strunk.
D 2015-03-26T23:36:35.332 D 2015-03-27T18:22:01.427
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 88a3e6261286db378fdffa1124cad11b3c05f5bb F Makefile.in 88a3e6261286db378fdffa1124cad11b3c05f5bb
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F Makefile.msc 3481e2dd260968742c715542db178c2bdd5db99f F Makefile.msc 23e6eaa84569829c3e7f409513caa136e5bcaf2a
F Makefile.vxworks e1b65dea203f054e71653415bd8f96dcaed47858 F Makefile.vxworks e1b65dea203f054e71653415bd8f96dcaed47858
F README.md d58e3bebc0a4145e0f2a87994015fdb575a8e866 F README.md d58e3bebc0a4145e0f2a87994015fdb575a8e866
F VERSION 319eb1ced4b4d17a67730f2b7b85f15c1346cb60 F VERSION 319eb1ced4b4d17a67730f2b7b85f15c1346cb60
@@ -195,7 +195,7 @@ F src/journal.c b4124532212b6952f42eb2c12fa3c25701d8ba8d
F src/legacy.c ba1863ea58c4c840335a84ec276fc2b25e22bc4e F src/legacy.c ba1863ea58c4c840335a84ec276fc2b25e22bc4e
F src/lempar.c 7274c97d24bb46631e504332ccd3bd1b37841770 F src/lempar.c 7274c97d24bb46631e504332ccd3bd1b37841770
F src/loadext.c 86bd4e2fccd520b748cba52492ab60c4a770f660 F src/loadext.c 86bd4e2fccd520b748cba52492ab60c4a770f660
F src/main.c 569d45ba9eb4fbdd631d53f440bcdb4a35ab1505 F src/main.c 40e333960d53f7d50ee8ce09d40431c87ea653f2
F src/malloc.c 6a370b83d54e4bbf6f94021221c2a311cff26a18 F src/malloc.c 6a370b83d54e4bbf6f94021221c2a311cff26a18
F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
F src/mem1.c abe6ee469b6c5a35c7f22bfeb9c9bac664a1c987 F src/mem1.c abe6ee469b6c5a35c7f22bfeb9c9bac664a1c987
@@ -215,7 +215,7 @@ F src/os.h 3e57a24e2794a94d3cf2342c6d9a884888cd96bf
F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04 F src/os_common.h 92815ed65f805560b66166e3583470ff94478f04
F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa F src/os_setup.h c9d4553b5aaa6f73391448b265b89bed0b890faa
F src/os_unix.c a4dadbc2da41599e99093e91e276c38c17a73b89 F src/os_unix.c a4dadbc2da41599e99093e91e276c38c17a73b89
F src/os_win.c af359cc1f0acc6b091c971ef0cf77c1280048cd3 F src/os_win.c 1e39f146fceb4d843b8e4d847588bf3e5567e9e0
F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca F src/os_win.h eb7a47aa17b26b77eb97e4823f20a00b8bda12ca
F src/pager.c 4120a49ecd37697e28f5ed807f470b9c0b88410c F src/pager.c 4120a49ecd37697e28f5ed807f470b9c0b88410c
F src/pager.h c3476e7c89cdf1c6914e50a11f3714e30b4e0a77 F src/pager.h c3476e7c89cdf1c6914e50a11f3714e30b4e0a77
@@ -231,11 +231,11 @@ F src/random.c ba2679f80ec82c4190062d756f22d0c358180696
F src/resolve.c f4d79e31ffa5820c2e3d1740baa5e9b190425f2b F src/resolve.c f4d79e31ffa5820c2e3d1740baa5e9b190425f2b
F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e F src/rowset.c eccf6af6d620aaa4579bd3b72c1b6395d9e9fa1e
F src/select.c 72ffb62e2879956302140e9f6e6ae88aee36b0e5 F src/select.c 72ffb62e2879956302140e9f6e6ae88aee36b0e5
F src/shell.c 3ae1e53878d2804fe77b8c8f1f6ca287a0e5d80e F src/shell.c 84a1593bd86aaa14f4da8a8f9b16fbc239d262aa
F src/sqlite.h.in 278602140d49575e8708e643161f4263e428a02a F src/sqlite.h.in 278602140d49575e8708e643161f4263e428a02a
F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad F src/sqlite3.rc 992c9f5fb8285ae285d6be28240a7e8d3a7f2bad
F src/sqlite3ext.h 17d487c3c91b0b8c584a32fbeb393f6f795eea7d F src/sqlite3ext.h 17d487c3c91b0b8c584a32fbeb393f6f795eea7d
F src/sqliteInt.h bedf15914c09bfb5fe3ec4e3f211a4a6fc42cd33 F src/sqliteInt.h d02d2b85cb02a38bc442cf9302ec8209baf6771d
F src/sqliteLimit.h 216557999cb45f2e3578ed53ebefe228d779cb46 F src/sqliteLimit.h 216557999cb45f2e3578ed53ebefe228d779cb46
F src/status.c f266ad8a2892d659b74f0f50cb6a88b6e7c12179 F src/status.c f266ad8a2892d659b74f0f50cb6a88b6e7c12179
F src/table.c e7a09215315a978057fb42c640f890160dbcc45e F src/table.c e7a09215315a978057fb42c640f890160dbcc45e
@@ -1247,10 +1247,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32 F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
P 1bc76339e8542770bff7829a3dd346680950c0a5 P df204049b9ec8dd3e43ed7dc251eaecedc05af4b ab5800291e1908b5b51d912feeacf748dc9be14b
R 8fcf9359fa4528c262f390ec8d494656 R 0f0075a96ff27d99566a591d99fb96e9
T *branch * winViewFlush
T *sym-winViewFlush *
T -sym-trunk *
U mistachkin U mistachkin
Z 96541edc57aab968aa95035dbba0935a Z c5eb52c9dcfe775299e290baea598f63

View File

@@ -1 +1 @@
df204049b9ec8dd3e43ed7dc251eaecedc05af4b 45acf6a85150839d591316418dad59ae20ce3aa4

View File

@@ -62,7 +62,7 @@ int sqlite3_threadsafe(void){ return SQLITE_THREADSAFE; }
** I/O active are written using this function. These messages ** I/O active are written using this function. These messages
** are intended for debugging activity only. ** are intended for debugging activity only.
*/ */
/* not-private */ void (*sqlite3IoTrace)(const char*, ...) = 0; SQLITE_API void (SQLITE_CDECL *sqlite3IoTrace)(const char*, ...) = 0;
#endif #endif
/* /*

View File

@@ -2461,7 +2461,8 @@ static int winClose(sqlite3_file *id){
assert( pFile->pShm==0 ); assert( pFile->pShm==0 );
#endif #endif
assert( pFile->h!=NULL && pFile->h!=INVALID_HANDLE_VALUE ); assert( pFile->h!=NULL && pFile->h!=INVALID_HANDLE_VALUE );
OSTRACE(("CLOSE file=%p\n", pFile->h)); OSTRACE(("CLOSE pid=%lu, pFile=%p, file=%p\n",
osGetCurrentProcessId(), pFile, pFile->h));
#if SQLITE_MAX_MMAP_SIZE>0 #if SQLITE_MAX_MMAP_SIZE>0
winUnmapfile(pFile); winUnmapfile(pFile);
@@ -2490,7 +2491,8 @@ static int winClose(sqlite3_file *id){
pFile->h = NULL; pFile->h = NULL;
} }
OpenCounter(-1); OpenCounter(-1);
OSTRACE(("CLOSE file=%p, rc=%s\n", pFile->h, rc ? "ok" : "failed")); OSTRACE(("CLOSE pid=%lu, pFile=%p, file=%p, rc=%s\n",
osGetCurrentProcessId(), pFile, pFile->h, rc ? "ok" : "failed"));
return rc ? SQLITE_OK return rc ? SQLITE_OK
: winLogError(SQLITE_IOERR_CLOSE, osGetLastError(), : winLogError(SQLITE_IOERR_CLOSE, osGetLastError(),
"winClose", pFile->zPath); "winClose", pFile->zPath);
@@ -2518,7 +2520,8 @@ static int winRead(
assert( amt>0 ); assert( amt>0 );
assert( offset>=0 ); assert( offset>=0 );
SimulateIOError(return SQLITE_IOERR_READ); SimulateIOError(return SQLITE_IOERR_READ);
OSTRACE(("READ file=%p, buffer=%p, amount=%d, offset=%lld, lock=%d\n", OSTRACE(("READ pid=%lu, pFile=%p, file=%p, buffer=%p, amount=%d, "
"offset=%lld, lock=%d\n", osGetCurrentProcessId(), pFile,
pFile->h, pBuf, amt, offset, pFile->locktype)); pFile->h, pBuf, amt, offset, pFile->locktype));
#if SQLITE_MAX_MMAP_SIZE>0 #if SQLITE_MAX_MMAP_SIZE>0
@@ -2527,7 +2530,8 @@ static int winRead(
if( offset<pFile->mmapSize ){ if( offset<pFile->mmapSize ){
if( offset+amt <= pFile->mmapSize ){ if( offset+amt <= pFile->mmapSize ){
memcpy(pBuf, &((u8 *)(pFile->pMapRegion))[offset], amt); memcpy(pBuf, &((u8 *)(pFile->pMapRegion))[offset], amt);
OSTRACE(("READ-MMAP file=%p, rc=SQLITE_OK\n", pFile->h)); OSTRACE(("READ-MMAP pid=%lu, pFile=%p, file=%p, rc=SQLITE_OK\n",
osGetCurrentProcessId(), pFile, pFile->h));
return SQLITE_OK; return SQLITE_OK;
}else{ }else{
int nCopy = (int)(pFile->mmapSize - offset); int nCopy = (int)(pFile->mmapSize - offset);
@@ -2541,7 +2545,8 @@ static int winRead(
#if SQLITE_OS_WINCE || defined(SQLITE_WIN32_NO_OVERLAPPED) #if SQLITE_OS_WINCE || defined(SQLITE_WIN32_NO_OVERLAPPED)
if( winSeekFile(pFile, offset) ){ if( winSeekFile(pFile, offset) ){
OSTRACE(("READ file=%p, rc=SQLITE_FULL\n", pFile->h)); OSTRACE(("READ pid=%lu, pFile=%p, file=%p, rc=SQLITE_FULL\n",
osGetCurrentProcessId(), pFile, pFile->h));
return SQLITE_FULL; return SQLITE_FULL;
} }
while( !osReadFile(pFile->h, pBuf, amt, &nRead, 0) ){ while( !osReadFile(pFile->h, pBuf, amt, &nRead, 0) ){
@@ -2555,7 +2560,8 @@ static int winRead(
DWORD lastErrno; DWORD lastErrno;
if( winRetryIoerr(&nRetry, &lastErrno) ) continue; if( winRetryIoerr(&nRetry, &lastErrno) ) continue;
pFile->lastErrno = lastErrno; pFile->lastErrno = lastErrno;
OSTRACE(("READ file=%p, rc=SQLITE_IOERR_READ\n", pFile->h)); OSTRACE(("READ pid=%lu, pFile=%p, file=%p, rc=SQLITE_IOERR_READ\n",
osGetCurrentProcessId(), pFile, pFile->h));
return winLogError(SQLITE_IOERR_READ, pFile->lastErrno, return winLogError(SQLITE_IOERR_READ, pFile->lastErrno,
"winRead", pFile->zPath); "winRead", pFile->zPath);
} }
@@ -2563,11 +2569,13 @@ static int winRead(
if( nRead<(DWORD)amt ){ if( nRead<(DWORD)amt ){
/* Unread parts of the buffer must be zero-filled */ /* Unread parts of the buffer must be zero-filled */
memset(&((char*)pBuf)[nRead], 0, amt-nRead); memset(&((char*)pBuf)[nRead], 0, amt-nRead);
OSTRACE(("READ file=%p, rc=SQLITE_IOERR_SHORT_READ\n", pFile->h)); OSTRACE(("READ pid=%lu, pFile=%p, file=%p, rc=SQLITE_IOERR_SHORT_READ\n",
osGetCurrentProcessId(), pFile, pFile->h));
return SQLITE_IOERR_SHORT_READ; return SQLITE_IOERR_SHORT_READ;
} }
OSTRACE(("READ file=%p, rc=SQLITE_OK\n", pFile->h)); OSTRACE(("READ pid=%lu, pFile=%p, file=%p, rc=SQLITE_OK\n",
osGetCurrentProcessId(), pFile, pFile->h));
return SQLITE_OK; return SQLITE_OK;
} }
@@ -2590,7 +2598,8 @@ static int winWrite(
SimulateIOError(return SQLITE_IOERR_WRITE); SimulateIOError(return SQLITE_IOERR_WRITE);
SimulateDiskfullError(return SQLITE_FULL); SimulateDiskfullError(return SQLITE_FULL);
OSTRACE(("WRITE file=%p, buffer=%p, amount=%d, offset=%lld, lock=%d\n", OSTRACE(("WRITE pid=%lu, pFile=%p, file=%p, buffer=%p, amount=%d, "
"offset=%lld, lock=%d\n", osGetCurrentProcessId(), pFile,
pFile->h, pBuf, amt, offset, pFile->locktype)); pFile->h, pBuf, amt, offset, pFile->locktype));
#if SQLITE_MAX_MMAP_SIZE>0 #if SQLITE_MAX_MMAP_SIZE>0
@@ -2599,7 +2608,8 @@ static int winWrite(
if( offset<pFile->mmapSize ){ if( offset<pFile->mmapSize ){
if( offset+amt <= pFile->mmapSize ){ if( offset+amt <= pFile->mmapSize ){
memcpy(&((u8 *)(pFile->pMapRegion))[offset], pBuf, amt); memcpy(&((u8 *)(pFile->pMapRegion))[offset], pBuf, amt);
OSTRACE(("WRITE-MMAP file=%p, rc=SQLITE_OK\n", pFile->h)); OSTRACE(("WRITE-MMAP pid=%lu, pFile=%p, file=%p, rc=SQLITE_OK\n",
osGetCurrentProcessId(), pFile, pFile->h));
return SQLITE_OK; return SQLITE_OK;
}else{ }else{
int nCopy = (int)(pFile->mmapSize - offset); int nCopy = (int)(pFile->mmapSize - offset);
@@ -2662,17 +2672,20 @@ static int winWrite(
if( rc ){ if( rc ){
if( ( pFile->lastErrno==ERROR_HANDLE_DISK_FULL ) if( ( pFile->lastErrno==ERROR_HANDLE_DISK_FULL )
|| ( pFile->lastErrno==ERROR_DISK_FULL )){ || ( pFile->lastErrno==ERROR_DISK_FULL )){
OSTRACE(("WRITE file=%p, rc=SQLITE_FULL\n", pFile->h)); OSTRACE(("WRITE pid=%lu, pFile=%p, file=%p, rc=SQLITE_FULL\n",
osGetCurrentProcessId(), pFile, pFile->h));
return winLogError(SQLITE_FULL, pFile->lastErrno, return winLogError(SQLITE_FULL, pFile->lastErrno,
"winWrite1", pFile->zPath); "winWrite1", pFile->zPath);
} }
OSTRACE(("WRITE file=%p, rc=SQLITE_IOERR_WRITE\n", pFile->h)); OSTRACE(("WRITE pid=%lu, pFile=%p, file=%p, rc=SQLITE_IOERR_WRITE\n",
osGetCurrentProcessId(), pFile, pFile->h));
return winLogError(SQLITE_IOERR_WRITE, pFile->lastErrno, return winLogError(SQLITE_IOERR_WRITE, pFile->lastErrno,
"winWrite2", pFile->zPath); "winWrite2", pFile->zPath);
}else{ }else{
winLogIoerr(nRetry, __LINE__); winLogIoerr(nRetry, __LINE__);
} }
OSTRACE(("WRITE file=%p, rc=SQLITE_OK\n", pFile->h)); OSTRACE(("WRITE pid=%lu, pFile=%p, file=%p, rc=SQLITE_OK\n",
osGetCurrentProcessId(), pFile, pFile->h));
return SQLITE_OK; return SQLITE_OK;
} }
@@ -2686,8 +2699,8 @@ static int winTruncate(sqlite3_file *id, sqlite3_int64 nByte){
assert( pFile ); assert( pFile );
SimulateIOError(return SQLITE_IOERR_TRUNCATE); SimulateIOError(return SQLITE_IOERR_TRUNCATE);
OSTRACE(("TRUNCATE file=%p, size=%lld, lock=%d\n", OSTRACE(("TRUNCATE pid=%lu, pFile=%p, file=%p, size=%lld, lock=%d\n",
pFile->h, nByte, pFile->locktype)); osGetCurrentProcessId(), pFile, pFile->h, nByte, pFile->locktype));
/* If the user has configured a chunk-size for this file, truncate the /* If the user has configured a chunk-size for this file, truncate the
** file so that it consists of an integer number of chunks (i.e. the ** file so that it consists of an integer number of chunks (i.e. the
@@ -2719,7 +2732,8 @@ static int winTruncate(sqlite3_file *id, sqlite3_int64 nByte){
} }
#endif #endif
OSTRACE(("TRUNCATE file=%p, rc=%s\n", pFile->h, sqlite3ErrName(rc))); OSTRACE(("TRUNCATE pid=%lu, pFile=%p, file=%p, rc=%s\n",
osGetCurrentProcessId(), pFile, pFile->h, sqlite3ErrName(rc)));
return rc; return rc;
} }

View File

@@ -370,7 +370,7 @@ static FILE *iotrace = 0;
** is written to iotrace. ** is written to iotrace.
*/ */
#ifdef SQLITE_ENABLE_IOTRACE #ifdef SQLITE_ENABLE_IOTRACE
static void iotracePrintf(const char *zFormat, ...){ static void SQLITE_CDECL iotracePrintf(const char *zFormat, ...){
va_list ap; va_list ap;
char *z; char *z;
if( iotrace==0 ) return; if( iotrace==0 ) return;
@@ -3144,7 +3144,7 @@ static int do_meta_command(char *zLine, ShellState *p){
#ifdef SQLITE_ENABLE_IOTRACE #ifdef SQLITE_ENABLE_IOTRACE
if( c=='i' && strncmp(azArg[0], "iotrace", n)==0 ){ if( c=='i' && strncmp(azArg[0], "iotrace", n)==0 ){
extern void (*sqlite3IoTrace)(const char*, ...); SQLITE_API extern void (SQLITE_CDECL *sqlite3IoTrace)(const char*, ...);
if( iotrace && iotrace!=stdout ) fclose(iotrace); if( iotrace && iotrace!=stdout ) fclose(iotrace);
iotrace = 0; iotrace = 0;
if( nArg<2 ){ if( nArg<2 ){
@@ -3803,9 +3803,9 @@ static int do_meta_command(char *zLine, ShellState *p){
azArg[2], azArg[2],
integerValue(azArg[3]), integerValue(azArg[3]),
integerValue(azArg[4])); integerValue(azArg[4]));
fprintf(p->out, "%d (0x%08x)\n", rc, rc);
}else{ }else{
fprintf(stderr,"Usage: .testctrl initmode dbName onoff tnum\n"); fprintf(stderr,"Usage: .testctrl imposter dbName onoff tnum\n");
rc = 1;
} }
break; break;

View File

@@ -3803,7 +3803,7 @@ void sqlite3Put4byte(u8*, u32);
#ifdef SQLITE_ENABLE_IOTRACE #ifdef SQLITE_ENABLE_IOTRACE
# define IOTRACE(A) if( sqlite3IoTrace ){ sqlite3IoTrace A; } # define IOTRACE(A) if( sqlite3IoTrace ){ sqlite3IoTrace A; }
void sqlite3VdbeIOTraceSql(Vdbe*); void sqlite3VdbeIOTraceSql(Vdbe*);
SQLITE_EXTERN void (*sqlite3IoTrace)(const char*,...); SQLITE_API SQLITE_EXTERN void (SQLITE_CDECL *sqlite3IoTrace)(const char*,...);
#else #else
# define IOTRACE(A) # define IOTRACE(A)
# define sqlite3VdbeIOTraceSql(X) # define sqlite3VdbeIOTraceSql(X)