From: drh Date: Mon, 19 Jul 2004 02:24:02 +0000 (+0000) Subject: Correctly handle joins of move than 32 tables. Ticket #806. (CVS 1813) X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=90ddc11b7715ba4e2651b3449f142de77f2ba577;p=thirdparty%2Fsqlite.git Correctly handle joins of move than 32 tables. Ticket #806. (CVS 1813) FossilOrigin-Name: 5ba0acd6c788b6ec07b29dc40c17265f8fb8a337 --- diff --git a/manifest b/manifest index 0334762eeb..499020edbb 100644 --- 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 diff --git a/manifest.uuid b/manifest.uuid index 5ec78a1a87..a07fa6b7e7 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -f9b2aa8f8a6c0a7f74af2844a80fe14b85d05a45 \ No newline at end of file +5ba0acd6c788b6ec07b29dc40c17265f8fb8a337 \ No newline at end of file diff --git a/src/where.c b/src/where.c index 34195c6516..5db5f90169 100644 --- a/src/where.c +++ b/src/where.c @@ -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);