aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2016-03-08 00:39:58 +0000
committerdrh <drh@noemail.net>2016-03-08 00:39:58 +0000
commitfb826b8c13d10fbabfd83301979c9779bc8fe8b3 (patch)
tree76b7640d937fc1f435a021f66317d73991683d22
parent108b7953ed1ec8b434edcd3764bed457fedab4bd (diff)
downloadsqlite-fb826b8c13d10fbabfd83301979c9779bc8fe8b3.tar.gz
sqlite-fb826b8c13d10fbabfd83301979c9779bc8fe8b3.zip
Changes so that some assert()s in the virtual table query planner are
correct even following an OOM error. FossilOrigin-Name: 9805f6f85211dcb5a0ab3ceca204e6f2e48530ea
-rw-r--r--manifest14
-rw-r--r--manifest.uuid2
-rw-r--r--src/wherecode.c2
3 files changed, 9 insertions, 9 deletions
diff --git a/manifest b/manifest
index c6b7f7d8a..1361fa2b6 100644
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Update\sfts3/4\sso\sthat\sthe\s'merge=X,0'\scommand\smerges\sX\spages\sfrom\sall\ssegments\sof\sthe\sfirst\slevel\sin\sthe\sfts\sindex\sthat\scontains\s2\sor\smore\ssegments.
-D 2016-03-07T20:14:27.338
+C Changes\sso\sthat\ssome\sassert()s\sin\sthe\svirtual\stable\squery\splanner\sare\ncorrect\seven\sfollowing\san\sOOM\serror.
+D 2016-03-08T00:39:58.482
F Makefile.in f53429fb2f313c099283659d0df6f20f932c861f
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc df0bf9ff7f8b3f4dd9fb4cc43f92fe58f6ec5c66
@@ -430,7 +430,7 @@ F src/wal.h 2f7c831cf3b071fa548bf2d5cac640846a7ff19c
F src/walker.c 0f142b5bd3ed2041fc52d773880748b212e63354
F src/where.c ccc62c39af1e6340f6af36fcf68efb96482d4c3a
F src/whereInt.h 93297d56edd137b7ea004490690fb6e2ce028a34
-F src/wherecode.c 870f3e92602f216701a14d3f26805caffbfb5c34
+F src/wherecode.c 36ea3526e4d297b8438453689176c6543fe67b3a
F src/whereexpr.c fb87944b1254234e5bba671aaf6dee476241506a
F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
F test/affinity2.test a6d901b436328bd67a79b41bb0ac2663918fe3bd
@@ -1454,7 +1454,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P c924008692e35f1f5144830af08d6de051dd21dd
-R f3add94e73abe6caae33e7ec37099121
-U dan
-Z db7aad48334dff0e6979b8c94cd633a5
+P cddf69dbc46f10ee7e87538dd850e086386b544c
+R eadc238ea6455af5bdaa5c7ea27cb6ae
+U drh
+Z 93924e30a271561dfe424f31cad070b7
diff --git a/manifest.uuid b/manifest.uuid
index 9c4f38bdb..2b6f7883d 100644
--- a/manifest.uuid
+++ b/manifest.uuid
@@ -1 +1 @@
-cddf69dbc46f10ee7e87538dd850e086386b544c \ No newline at end of file
+9805f6f85211dcb5a0ab3ceca204e6f2e48530ea \ No newline at end of file
diff --git a/src/wherecode.c b/src/wherecode.c
index 1f5a324ec..4c0878a5a 100644
--- a/src/wherecode.c
+++ b/src/wherecode.c
@@ -915,7 +915,7 @@ Bitmask sqlite3WhereCodeOneLoopStart(
** the xFilter implementation might have changed the datatype or
** encoding of the value in the register, so it *must* be reloaded. */
assert( pLevel->u.in.aInLoop!=0 || db->mallocFailed );
- if( pLevel->u.in.aInLoop!=0 ){
+ if( !db->mallocFailed ){
assert( iIn>0 );
pOp = sqlite3VdbeGetOp(v, pLevel->u.in.aInLoop[--iIn].addrInTop);
assert( pOp->opcode==OP_Column || pOp->opcode==OP_Rowid );