]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Correctly handle joins of move than 32 tables. Ticket #806. (CVS 1813)
authordrh <drh@noemail.net>
Mon, 19 Jul 2004 02:24:02 +0000 (02:24 +0000)
committerdrh <drh@noemail.net>
Mon, 19 Jul 2004 02:24:02 +0000 (02:24 +0000)
FossilOrigin-Name: 5ba0acd6c788b6ec07b29dc40c17265f8fb8a337

manifest
manifest.uuid
src/where.c

index 0334762eebf75a50f55dbaae9d778d14a80040c4..499020edbb95cf4e5f3b1b2c9d6f35c9860ffeb1 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Use\sonly\sunsigned\scharacters\sin\supper()\sand\slower().\s\sTicket\s#708.\s(CVS\s1807)
-D 2004-07-18T23:03:11
+C Correctly\shandle\sjoins\sof\smove\sthan\s32\stables.\s\sTicket\s#806.\s(CVS\s1813)
+D 2004-07-19T02:24:03
 F Makefile.in ab7b0d5118e2da97bac66be8684a1034e3500f5a
 F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906
 F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd
@@ -65,7 +65,7 @@ F src/vdbe.c 0853ab9983b7adbba8c012bb8b152d8453bf8a97
 F src/vdbe.h ac987945e4dd6f987bca534c6005899f089fc270
 F src/vdbeInt.h b40ff02ce39fd076e6ff3369e19c1bbfe1986682
 F src/vdbeaux.c 14ff0eb6ed9d5998f927433c91b0a3d13d81f4f6
-F src/where.c b58764861a96bab3f1d294200f9e53519b92c274
+F src/where.c 3a85d88ec1447bda08d6a7a90d763dd6a0ceddcf
 F test/all.test 569a92a8ee88f5300c057cc4a8f50fbbc69a3242
 F test/attach.test ba8261d38da6b6a7d4f78ec543c548c4418582ef
 F test/attach2.test ce61e6185b3cd891cc0e9a4c868fcc65eb92fc55
@@ -189,7 +189,7 @@ F www/sqlite.tcl 3c83b08cf9f18aa2d69453ff441a36c40e431604
 F www/tclsqlite.tcl b9271d44dcf147a93c98f8ecf28c927307abd6da
 F www/vdbe.tcl 9b9095d4495f37697fd1935d10e14c6015e80aa1
 F www/whentouse.tcl a8335bce47cc2fddb07f19052cb0cb4d9129a8e4
-P 135e5447f66fcd8ec4350c81707a2e8d3c9fd31c
-R 4bbf2b16a71111c796b58a274ab175a8
+P f9b2aa8f8a6c0a7f74af2844a80fe14b85d05a45
+R 7602201687962f870e55ba293d7c4589
 U drh
-Z dce0cbde79c5dcc8e9719582aaa1c6f7
+Z 66fa816cf92b236bf8ebf0582e88ba0f
index 5ec78a1a87f7ca215e3e0d4417472a871c75ecce..a07fa6b7e70f01e997d8da63726d64fc5ddfa399 100644 (file)
@@ -1 +1 @@
-f9b2aa8f8a6c0a7f74af2844a80fe14b85d05a45
\ No newline at end of file
+5ba0acd6c788b6ec07b29dc40c17265f8fb8a337
\ No newline at end of file
index 34195c6516b254d2bca78e8ec10dd85dd163d40f..5db5f9016923b550d2fff9984554ed3fbc13c920 100644 (file)
@@ -12,7 +12,7 @@
 ** This module contains C code that generates VDBE code used to process
 ** the WHERE clause of SQL statements.
 **
-** $Id: where.c,v 1.89 2004/02/22 20:05:02 drh Exp $
+** $Id: where.c,v 1.89.2.1 2004/07/19 02:24:03 drh Exp $
 */
 #include "sqliteInt.h"
 
@@ -46,7 +46,7 @@ struct ExprInfo {
 typedef struct ExprMaskSet ExprMaskSet;
 struct ExprMaskSet {
   int n;          /* Number of assigned cursor values */
-  int ix[32];     /* Cursor assigned to each bit */
+  int ix[31];     /* Cursor assigned to each bit */
 };
 
 /*
@@ -123,7 +123,9 @@ static int exprTableUsage(ExprMaskSet *pMaskSet, Expr *p){
   unsigned int mask = 0;
   if( p==0 ) return 0;
   if( p->op==TK_COLUMN ){
-    return getMask(pMaskSet, p->iTable);
+    mask = getMask(pMaskSet, p->iTable);
+    if( mask==0 ) mask = -1;
+    return mask;
   }
   if( p->pRight ){
     mask = exprTableUsage(pMaskSet, p->pRight);