Expression nodes of type TK_ROW mean the rowid of the first table in the

source list. (CVS 5769)

FossilOrigin-Name: 2f7db6c98f17e0b7110258093c283091a91d4e4f
This commit is contained in:
drh 2008-10-06 13:54:35 +00:00
parent 488e7b6323
commit 41204f1fdd
3 changed files with 28 additions and 8 deletions

View File

@ -1,5 +1,5 @@
C In\ssqlite3_bind()\sinterfaces,\savoid\sacquiring\sthe\smutex\suntil\safter\sthe\nstatement\shandle\shas\sbeen\svalidated.\s\sTicket\s#3418.\s(CVS\s5768)
D 2008-10-06T12:46:44
C Expression\snodes\sof\stype\sTK_ROW\smean\sthe\srowid\sof\sthe\sfirst\stable\sin\sthe\nsource\slist.\s(CVS\s5769)
D 2008-10-06T13:54:35
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in e4ab842f9a64ef61d57093539a8aab76b12810db
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@ -146,7 +146,7 @@ F src/pragma.c 0b1c2d2a241dd79a7361bbeb8ff575a9e9d7cd71
F src/prepare.c c7e00ed1b0bdcf699b1aad651247d4dc3d281b0b
F src/printf.c 785f87120589c1db672e37c6eb1087c456e6f84d
F src/random.c 11bbdf7def3746a762fbdb56c9d04648135ad6d8
F src/resolve.c a6abf83125bce0c80ba04acc27c3565155ad305c
F src/resolve.c 9aeb0719949bad117e0df9fdd06688a5fa06223b
F src/select.c 75d4ffe971e25831125ea165c0c580df00f4c403
F src/shell.c d83b578a8ccdd3e0e7fef4388a0887ce9f810967
F src/sqlite.h.in ea235b37a691b32e7941baa70fb0afaf6377dbb4
@ -639,7 +639,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 1dbced29de5f59ba2ebf877edcadf171540374d1
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
P bb51c34506b3353506b6f3566fbe2a10d02e8ebc
R 69a4995829880b2d104f98bd582a2981
P 693503e241001271512f4ce3e8cc932ba6a3106c
R 497dc3af1e2cb1328ea2b80e152ed99a
U drh
Z aca7259dd10a822c578f92e2091145fe
Z 1bfcb8fd89bfe1a5f0eb7238feee16f8

View File

@ -1 +1 @@
693503e241001271512f4ce3e8cc932ba6a3106c
2f7db6c98f17e0b7110258093c283091a91d4e4f

View File

@ -14,7 +14,7 @@
** resolve all identifiers by associating them with a particular
** table and column.
**
** $Id: resolve.c,v 1.5 2008/08/29 02:14:03 drh Exp $
** $Id: resolve.c,v 1.6 2008/10/06 13:54:35 drh Exp $
*/
#include "sqliteInt.h"
#include <stdlib.h>
@ -418,6 +418,26 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){
}
#endif
switch( pExpr->op ){
#ifndef SQLITE_OMIT_UPDATE_DELETE_LIMIT
/* The special operator TK_ROW means use the rowid for the first
** column in the FROM clause. This is used by the LIMIT and ORDER BY
** clause processing on UPDATE and DELETE statements.
*/
case TK_ROW: {
SrcList *pSrcList = pNC->pSrcList;
struct SrcList_item *pItem;
assert( pSrcList && pSrcList->nSrc==1 );
pItem = pSrcList->a;
pExpr->op = TK_COLUMN;
pExpr->pTab = pItem->pTab;
pExpr->iTable = pItem->iCursor;
pExpr->iColumn = -1;
pExpr->affinity = SQLITE_AFF_INTEGER;
break;
}
#endif /* SQLITE_OMIT_UPDATE_DELETE_LIMIT
/* A lone identifier is the name of a column.
*/
case TK_ID: {