assert( pazCol && pabPK );
- nThis = strlen(zThis);
+ nThis = sqlite3Strlen30(zThis);
zPragma = sqlite3_mprintf("PRAGMA '%q'.table_info('%q')", zDb, zThis);
if( !zPragma ) return SQLITE_NOMEM;
sqlite3_int64 iKey2 /* New rowid value (for a rowid UPDATE) */
){
sqlite3_session *pSession;
- int nDb = strlen(zDb);
- int nName = strlen(zDb);
+ int nDb = sqlite3Strlen30(zDb);
+ int nName = sqlite3Strlen30(zName);
assert( sqlite3_mutex_held(db->mutex) );
){
sqlite3_session *pNew; /* Newly allocated session object */
sqlite3_session *pOld; /* Session object already attached to db */
- int nDb = strlen(zDb); /* Length of zDb in bytes */
+ int nDb = sqlite3Strlen30(zDb); /* Length of zDb in bytes */
/* Zero the output value in case an error occurs. */
*ppSession = 0;
sqlite3_free(p);
}
}
- sqlite3_free(pTab->azCol);
+ sqlite3_free((char*)pTab->azCol); /* cast works around VC++ bug */
sqlite3_free(pTab->apChange);
sqlite3_free(pTab);
}
/* First search for an existing entry. If one is found, this call is
** a no-op. Return early. */
- nName = strlen(zName);
+ nName = sqlite3Strlen30(zName);
for(pTab=pSession->pTable; pTab; pTab=pTab->pNext){
if( 0==sqlite3_strnicmp(pTab->zName, zName, nName+1) ) break;
}
** If an OOM condition is encountered, set *pRc to SQLITE_NOMEM before
** returning.
*/
-static void sessionAppendVarint(SessionBuffer *p, sqlite3_int64 v, int *pRc){
+static void sessionAppendVarint(SessionBuffer *p, int v, int *pRc){
if( *pRc==SQLITE_OK && 0==sessionBufferGrow(p, 9, pRc) ){
p->nBuf += sessionVarintPut(&p->aBuf[p->nBuf], v);
}
const char *zStr,
int *pRc
){
- int nStr = strlen(zStr);
+ int nStr = sqlite3Strlen30(zStr);
if( *pRc==SQLITE_OK && 0==sessionBufferGrow(p, nStr, pRc) ){
memcpy(&p->aBuf[p->nBuf], zStr, nStr);
p->nBuf += nStr;
const char *zStr, /* String to quote, escape and append */
int *pRc /* IN/OUT: Error code */
){
- int nStr = strlen(zStr)*2 + 2 + 1;
+ int nStr = sqlite3Strlen30(zStr)*2 + 2 + 1;
if( *pRc==SQLITE_OK && 0==sessionBufferGrow(p, nStr, pRc) ){
char *zOut = (char *)&p->aBuf[p->nBuf];
const char *zIn = zStr;
*zOut++ = *(zIn++);
}
*zOut++ = '"';
- p->nBuf = ((u8 *)zOut - p->aBuf);
+ p->nBuf = (int)((u8 *)zOut - p->aBuf);
}
}
sessionAppendByte(&buf, 'T', &rc);
sessionAppendVarint(&buf, nCol, &rc);
sessionAppendBlob(&buf, pTab->abPK, nCol, &rc);
- sessionAppendBlob(&buf, (u8 *)zName, strlen(zName)+1, &rc);
+ sessionAppendBlob(&buf, (u8 *)zName, sqlite3Strlen30(zName)+1, &rc);
/* Build and compile a statement to execute: */
if( rc==SQLITE_OK ){
if( buf.nBuf==nNoop ){
buf.nBuf = nRewind;
}
- sqlite3_free(azCol);
+ sqlite3_free((char*)azCol); /* cast works around VC++ bug */
}
}
p->abPK = (u8 *)aChange;
aChange += p->nCol;
p->zTab = (char *)aChange;
- aChange += (strlen((char *)aChange) + 1);
+ aChange += (sqlite3Strlen30((char *)aChange) + 1);
p->op = *(aChange++);
p->bIndirect = *(aChange++);
sqlite3_free(p->apValue);
*/
int nByte = 1 + sessionVarintGet(&aIn[i+1], &nCol);
nByte += nCol;
- nByte += 1 + strlen((char *)&aIn[i+nByte]);
+ nByte += 1 + sqlite3Strlen30((char *)&aIn[i+nByte]);
memcpy(&aOut[i], &aIn[i], nByte);
i += nByte;
break;
sessionReadRecord(&aEnd, nCol, 0);
aOut[i] = (eType==SQLITE_DELETE ? SQLITE_INSERT : SQLITE_DELETE);
aOut[i+1] = aIn[i+1];
- nByte = aEnd - &aIn[i+2];
+ nByte = (int)(aEnd - &aIn[i+2]);
memcpy(&aOut[i+2], &aIn[i+2], nByte);
i += 2 + nByte;
break;
u8 *aEnd = &aIn[i+2];
sessionReadRecord(&aEnd, nCol, 0);
- nByte1 = aEnd - &aIn[i+2];
+ nByte1 = (int)(aEnd - &aIn[i+2]);
sessionReadRecord(&aEnd, nCol, 0);
- nByte2 = aEnd - &aIn[i+2] - nByte1;
+ nByte2 = (int)(aEnd - &aIn[i+2]) - nByte1;
aOut[i] = SQLITE_UPDATE;
aOut[i+1] = aIn[i+1];
sqlite3_changeset_iter *pIter; /* Iterator to skip through changeset */
int rc; /* Return code */
const char *zTab = 0; /* Name of current table */
- int nTab = 0; /* Result of strlen(zTab) */
+ int nTab = 0; /* Result of sqlite3Strlen30(zTab) */
SessionApplyCtx sApply; /* changeset_apply() context object */
memset(&sApply, 0, sizeof(sApply));
u8 *abPK;
schemaMismatch = 0;
- sqlite3_free(sApply.azCol);
+ sqlite3_free((char*)sApply.azCol); /* cast works around VC++ bug */
sqlite3_finalize(sApply.pDelete);
sqlite3_finalize(sApply.pUpdate);
sqlite3_finalize(sApply.pInsert);
){
break;
}
- nTab = strlen(zTab);
+ nTab = sqlite3Strlen30(zTab);
}
/* If there is a schema mismatch on the current table, proceed to the
sqlite3_finalize(sApply.pDelete);
sqlite3_finalize(sApply.pUpdate);
sqlite3_finalize(sApply.pSelect);
- sqlite3_free(sApply.azCol);
+ sqlite3_free((char*)sApply.azCol); /* cast works around VC++ bug */
sqlite3_mutex_leave(sqlite3_db_mutex(db));
return rc;
}
-C Merge\sin\sthe\slatest\schanges\sfrom\sthe\strunk.
-D 2011-04-06T22:33:50.737
+C Fix\sVC++\scompiler\swarnings.
+D 2011-04-06T23:39:28.224
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 7a4d9524721d40ef9ee26f93f9bd6a51dba106f2
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
F ext/session/session4.test a6ed685da7a5293c5d6f99855bcf41dbc352ca84
F ext/session/session_common.tcl fb91560b6dbd086010df8b3a137a452f1ac21a28
F ext/session/sessionfault.test 2544a2e2ecad56e3c07a32c09799871d243c114c
-F ext/session/sqlite3session.c 2b2936b5188776b33bba1263f93267f3ec9d0d84
+F ext/session/sqlite3session.c bc6fc77d70d4d9994598b1daf0a43d48965b2155
F ext/session/sqlite3session.h f284bac51c12de0e0096fc986e61f5ae6b9e5be5
F ext/session/test_session.c 82e3fd7d94f485ea63bcfb15d636c95a01db97a9
F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
F src/vdbeaux.c b0a2a184a25380f7eb9d07e9336034ec38d1b213
F src/vdbeblob.c c3ccb7c8732858c680f442932e66ad06bb036562
F src/vdbemem.c 0498796b6ffbe45e32960d6a1f5adfb6e419883b
-F src/vdbetrace.c 3ba13bc32bdf16d2bdea523245fd16736bed67b5
+F src/vdbetrace.c 5d0dc3d5fd54878cc8d6d28eb41deb8d5885b114
F src/vtab.c b0abc931f95af94c9ffdf9f747eb191cda953123
F src/wal.c 7334009b396285b658a95a3b6bc6d2b016a1f794
F src/wal.h 7a5fbb00114b7f2cd40c7e1003d4c41ce9d26840
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/split-sqlite3c.tcl d9be87f1c340285a3e081eb19b4a247981ed290c
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 45f20261720dcd73eb887f7e3df100723000418b 614de91a504d2231009a9de1305e31fce1b1c5a6
-R 502dde3bb5feee985b14f915e41e9858
+P 435b57dc2be7b071270a6cddece297758b8153aa
+R 430b240dcc83276815f3990defb9cdf0
U drh
-Z 9b010756d90228476ef26682d9d1164b
+Z 063f7a6f50976dabf014f8516d936514