From: drh Date: Mon, 10 Oct 2011 18:59:05 +0000 (+0000) Subject: Cherrypick the sqlite_data_count() changes from [d4f95b3b6e] and X-Git-Tag: mountain-lion~17^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d74c576ee6bd1edf72bd0f1cf0610a439337cb87;p=thirdparty%2Fsqlite.git Cherrypick the sqlite_data_count() changes from [d4f95b3b6e] and [9913996e7b] into the apple-osx branch for version 3.7.7. FossilOrigin-Name: aef7945c423a8338374572eeda9444866c64569b --- diff --git a/manifest b/manifest index 3708a4362e..c3cd1f857e 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Changes\sto\smake\spragma\ssynchronous\ssticky\swhen\sSQLITE_DEFAULT_WAL_SAFETYLEVEL\sis\sused -D 2011-06-25T21:43:15.946 +C Cherrypick\sthe\ssqlite_data_count()\schanges\sfrom\s[d4f95b3b6e]\sand\n[9913996e7b]\sinto\sthe\sapple-osx\sbranch\sfor\sversion\s3.7.7. +D 2011-10-10T18:59:05.365 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.in 8410b02448997eb43bdf0ffa482c9bc2d2624e45 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 @@ -184,7 +184,7 @@ F src/resolve.c 1c0f32b64f8e3f555fe1f732f9d6f501a7f05706 F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697 F src/select.c 75b7dd8c6a5ff9b8ec3f7ed51d31af8b30f114bc F src/shell.c 0e0173b3e79d956368013e759f084caa7995ecb1 -F src/sqlite.h.in dc26f18c71a30680b163317aa3d068e3aa02980c +F src/sqlite.h.in 7289ab65b3eaf9dad5284b100764f3db1bd667a9 F src/sqlite3_private.h 1d18557420cb0cc51ff31ec0a3fcce11e5cd6f5a F src/sqlite3ext.h c90bd5507099f62043832d73f6425d8d5c5da754 F src/sqliteInt.h 7240bba17d8f49a667d67bdbbe4cdf898536fc61 @@ -246,7 +246,7 @@ F src/vdbe.c 80d511d7096918f4f6be6a63988a885c54dd1048 F src/vdbe.h 5cf09e7ee8a3f7d93bc51f196a96550786afe7a1 F src/vdbeInt.h ad84226cc0adcb1185c22b70696b235a1678bb45 F src/vdbeapi.c 7f01db7d26758b2be316116f8325a0b9f0d8edd6 -F src/vdbeaux.c 0b2e2880f13af400a27c92a7673287c3eaec8b21 +F src/vdbeaux.c ebe8ca774b6bb9fb4252037f3bb53883b632704e F src/vdbeblob.c f024f0bf420f36b070143c32b15cc7287341ffd3 F src/vdbemem.c 0498796b6ffbe45e32960d6a1f5adfb6e419883b F src/vdbetrace.c 4b92fe7355f682368203d29b2be7125cbab85e79 @@ -954,7 +954,10 @@ F tool/symbols.sh bc2a3709940d47c8ac8e0a1fdf17ec801f015a00 F tool/tostr.awk 11760e1b94a5d3dcd42378f3cc18544c06cfa576 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f F tool/warnings.sh 347d974d143cf132f953b565fbc03026f19fcb4d -P 8f8b373eed7052e6e93c1805fc1effcf1db09366 -R e151aa11e88480c804b5ef43a2ab643c -U adam -Z 3111cbbb811aa7ac12c37845c0ffea17 +P c6158b254fabd02a3d58b1a047a3c5fa979b41a8 +R 698ad78198c29aa949534e4c4e347713 +T *branch * apple-osx-377 +T *sym-apple-osx-377 * +T -sym-apple-osx * +U drh +Z 06f34d41d072554967ad572a94c4a640 diff --git a/manifest.uuid b/manifest.uuid index 54617e53b2..65c398afe7 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -c6158b254fabd02a3d58b1a047a3c5fa979b41a8 \ No newline at end of file +aef7945c423a8338374572eeda9444866c64569b \ No newline at end of file diff --git a/src/sqlite.h.in b/src/sqlite.h.in index 824c96d1bc..2d3676a3d9 100644 --- a/src/sqlite.h.in +++ b/src/sqlite.h.in @@ -3323,6 +3323,12 @@ int sqlite3_step(sqlite3_stmt*); ** (via calls to the [sqlite3_column_int | sqlite3_column_*()] of ** interfaces) then sqlite3_data_count(P) returns 0. ** ^The sqlite3_data_count(P) routine also returns 0 if P is a NULL pointer. +** ^The sqlite3_data_count(P) routine returns 0 if the previous call to +** [sqlite3_step](P) returned [SQLITE_DONE]. ^The sqlite3_data_count(P) +** will return non-zero if previous call to [sqlite3_step](P) returned +** [SQLITE_ROW], except in the case of the [PRAGMA incremental_vacuum] +** where it always returns zero since each step of that multi-step +** pragma returns 0 columns of data. ** ** See also: [sqlite3_column_count()] */ diff --git a/src/vdbeaux.c b/src/vdbeaux.c index 447ba57a1e..5d5f47aa38 100644 --- a/src/vdbeaux.c +++ b/src/vdbeaux.c @@ -1138,7 +1138,7 @@ int sqlite3VdbeList( sqlite3 *db = p->db; /* The database connection */ int i; /* Loop counter */ int rc = SQLITE_OK; /* Return code */ - Mem *pMem = p->pResultSet = &p->aMem[1]; /* First Mem of result set */ + Mem *pMem = &p->aMem[1]; /* First Mem of result set */ assert( p->explain ); assert( p->magic==VDBE_MAGIC_RUN ); @@ -1149,6 +1149,7 @@ int sqlite3VdbeList( ** sqlite3_column_text16(), causing a translation to UTF-16 encoding. */ releaseMemArray(pMem, 8); + p->pResultSet = 0; if( p->rc==SQLITE_NOMEM ){ /* This happens if a malloc() inside a call to sqlite3_column_text() or @@ -1303,6 +1304,7 @@ int sqlite3VdbeList( } p->nResColumn = 8 - 4*(p->explain-1); + p->pResultSet = &p->aMem[1]; p->rc = SQLITE_OK; rc = SQLITE_ROW; }