-C Fix\sa\scouple\sof\sproblems\sin\stest\sfile\stest_journal.c\sthat\swere\scausing\ssegfaults\swhen\srunning\sall.test.\s(CVS\s6063)
-D 2008-12-24T09:30:22
+C Fix\sa\svirtual\stable\srelated\sassert()\sthat\scan\sfail\sfollowing\sa\smalloc\sfailure.\s(CVS\s6064)
+D 2008-12-24T11:25:40
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in 77635d0909c2067cee03889a1e04ce910d8fb809
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
F src/vdbemem.c f9c859ac17e2e05a0f249868ce4f191f69edd31d
F src/vtab.c e39e011d7443a8d574b1b9cde207a35522e6df43
F src/walker.c 488c2660e13224ff70c0c82761118efb547f8f0d
-F src/where.c ef69833cdf0e19a91ec1b305b506d100ac3f648f
+F src/where.c b273a232aa6e7616bb6025a80276c8aff8df2b22
F tclinstaller.tcl 4356d9d94d2b5ed5e68f9f0c80c4df3048dd7617
F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
F test/alias.test 597662c5d777a122f9a3df0047ea5c5bd383a911
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
-P 55d4f493e7df8515574a75caec9967d6c71b6012
-R cc29a042a248eb8ecfc4c3d8c12a4a30
+P 416c9efb49ba207a9a79d06d0b13854695a8876c
+R 9a2fdeee38c8141c5f23656702bf84f1
U danielk1977
-Z f0704a3629730edd74463891e861aad2
+Z 50d42c2e2360bf3c9b72e4e25ad13cf2
-416c9efb49ba207a9a79d06d0b13854695a8876c
\ No newline at end of file
+c6fd3b8f29927c0fc634f82885f144c78f0105d9
\ No newline at end of file
** so is applicable. Because this module is responsible for selecting
** indices, you might also think of this module as the "query optimizer".
**
-** $Id: where.c,v 1.343 2008/12/23 23:56:22 drh Exp $
+** $Id: where.c,v 1.344 2008/12/24 11:25:40 danielk1977 Exp $
*/
#include "sqliteInt.h"
for(i=0; i<pWInfo->nLevel; i++){
sqlite3_index_info *pInfo = pWInfo->a[i].pIdxInfo;
if( pInfo ){
- assert( pInfo->needToFreeIdxStr==0 );
+ assert( pInfo->needToFreeIdxStr==0 || db->mallocFailed );
+ if( pInfo->needToFreeIdxStr ){
+ sqlite3_free(pInfo->idxStr);
+ }
sqlite3DbFree(db, pInfo);
}
}
}
}
WHERETRACE(("*** Optimizer Finished ***\n"));
- if( db->mallocFailed ) goto whereBeginError;
+ if( db->mallocFailed ){
+ goto whereBeginError;
+ }
/* If the total query only selects a single row, then the ORDER BY
** clause is irrelevant.