Make sure sqlite3_data_count() behaves as documented, even for

EXPLAIN QUERY PLAN queries.

FossilOrigin-Name: d4f95b3b6e9f4a4072606af5daa17ea7c645382e
This commit is contained in:
drh 2011-10-07 18:24:25 +00:00
parent be7beab5f4
commit 9734e6e1f4
3 changed files with 10 additions and 9 deletions

View File

@ -1,5 +1,5 @@
C Improved\shandling\sof\sOR\sterms\sin\sthe\sWHERE\sclause\swith\smulti-column\sindexes.
D 2011-10-07T17:52:40.878
C Make\ssure\ssqlite3_data_count()\sbehaves\sas\sdocumented,\seven\sfor\nEXPLAIN\sQUERY\sPLAN\squeries.
D 2011-10-07T18:24:25.948
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in a162fe39e249b8ed4a65ee947c30152786cfe897
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@ -242,7 +242,7 @@ F src/vdbe.c 60340bfb23f456ea0791cb28262a887363773371
F src/vdbe.h f0725ee997db869ecae5bb70a71612aabeca7755
F src/vdbeInt.h 693d6ac6810298fc6b4c503cfbe3f99a240f40af
F src/vdbeapi.c 11dc47987abacb76ad016dcf5abc0dc422482a98
F src/vdbeaux.c 9542e2fba791f14022c23fbe5cbe179eee36abc6
F src/vdbeaux.c b4d509749502554e67ed14268928e4cc038b8efb
F src/vdbeblob.c 32f2a4899d67f69634ea4dd93e3f651936d732cb
F src/vdbemem.c 2fc78b3e0fabcc1eaa23cd79dd2e30e6dcfe1e56
F src/vdbesort.c 468d43c057063e54da4f1988b38b4f46d60e7790
@ -967,7 +967,7 @@ F tool/symbols.sh caaf6ccc7300fd43353318b44524853e222557d5
F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
P 1da87fcdacfa7d277c3ee98e410a9ea8b529c368 5c132592820e9dc2355e26ea14e155c797c335b3
R 8ca3076f2df3dea6526cd23b3be813bd
P b23ae131874bc5c621f0f5ea8d76fce1ec089cc2
R c851b7fc8ea31836b467cff36423209c
U drh
Z ddb3b7cdb3a83c191cd3bc7c8f9d4238
Z ec0b90c872666342728b41ee2195393b

View File

@ -1 +1 @@
b23ae131874bc5c621f0f5ea8d76fce1ec089cc2
d4f95b3b6e9f4a4072606af5daa17ea7c645382e

View File

@ -1142,7 +1142,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 );
@ -1153,7 +1153,7 @@ int sqlite3VdbeList(
** sqlite3_column_text16(), causing a translation to UTF-16 encoding.
*/
releaseMemArray(pMem, 8);
p->nResColumn = 0;
p->pResultSet = 0;
if( p->rc==SQLITE_NOMEM ){
/* This happens if a malloc() inside a call to sqlite3_column_text() or
@ -1308,6 +1308,7 @@ int sqlite3VdbeList(
}
p->nResColumn = 8 - 4*(p->explain-1);
p->pResultSet = &p->aMem[1];
p->rc = SQLITE_OK;
rc = SQLITE_ROW;
}