1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-07 02:42:48 +03:00

:-) (CVS 63)

FossilOrigin-Name: 65d2100d33350e6bce30d4d75f3cead9fcab3efb
This commit is contained in:
drh
2000-06-06 22:13:55 +00:00
parent 82c3d6368d
commit 1ecec3c03e
4 changed files with 21 additions and 16 deletions

View File

@@ -1,5 +1,5 @@
C :-)\s(CVS\s62) C :-)\s(CVS\s63)
D 2000-06-06T21:56:08 D 2000-06-06T22:13:55
F COPYRIGHT 74a8a6531a42e124df07ab5599aad63870fa0bd4 F COPYRIGHT 74a8a6531a42e124df07ab5599aad63870fa0bd4
F Makefile.in 17ba1ccf8d2d40c627796bba8f72952365d6d644 F Makefile.in 17ba1ccf8d2d40c627796bba8f72952365d6d644
F README 51f6a4e7408b34afa5bc1c0485f61b6a4efb6958 F README 51f6a4e7408b34afa5bc1c0485f61b6a4efb6958
@@ -14,7 +14,7 @@ F src/expr.c d350fe393e1753aaa733a5d21f0830a23e547400
F src/insert.c 5e69dd70c3f91cf5ec5090f39fd6cd8e135af9bf F src/insert.c 5e69dd70c3f91cf5ec5090f39fd6cd8e135af9bf
F src/main.c 93a7ad14bb5a82ad13ad59da23ef674a94b0c3d6 F src/main.c 93a7ad14bb5a82ad13ad59da23ef674a94b0c3d6
F src/parse.y 8b632f4c4ff2f4400f15592ca9d8fda27d97d0c4 F src/parse.y 8b632f4c4ff2f4400f15592ca9d8fda27d97d0c4
F src/select.c db29a091b6a5a4e90e7a0afb5721910ccaa9e19d F src/select.c 74fa3af62bfa2e6e29f43153f883fd28c295b853
F src/shell.c 5fa24c0bb678782ffe9070128e3e160674f297eb F src/shell.c 5fa24c0bb678782ffe9070128e3e160674f297eb
F src/sqlite.h 58da0a8590133777b741f9836beaef3d58f40268 F src/sqlite.h 58da0a8590133777b741f9836beaef3d58f40268
F src/sqliteInt.h 3cca846df0a8b5f811cf4f8021303547cd8f21fd F src/sqliteInt.h 3cca846df0a8b5f811cf4f8021303547cd8f21fd
@@ -22,7 +22,7 @@ F src/tclsqlite.c 9f358618ae803bedf4fb96da5154fd45023bc1f7
F src/tokenize.c 09373590cc3942aa4744eb431ac5b5ce31e7cfea F src/tokenize.c 09373590cc3942aa4744eb431ac5b5ce31e7cfea
F src/update.c 18746f920f989b3d19d96c08263c92584823cd35 F src/update.c 18746f920f989b3d19d96c08263c92584823cd35
F src/util.c 33f9baa01e45394ef0cf85361a0e872987884315 F src/util.c 33f9baa01e45394ef0cf85361a0e872987884315
F src/vdbe.c 562b12a9bafc098c114ab5eaec1307d071b89fd3 F src/vdbe.c d78231479a357b69fa61283c18477f1c208088f9
F src/vdbe.h 8f79f57c66ce1030f6371ff067b326d627a52c6d F src/vdbe.h 8f79f57c66ce1030f6371ff067b326d627a52c6d
F src/where.c c9b90e7672f4662a83ef9a27a193020d69fe034c F src/where.c c9b90e7672f4662a83ef9a27a193020d69fe034c
F test/all.test 0950c135cab7e60c07bd745ccfad1476211e5bd7 F test/all.test 0950c135cab7e60c07bd745ccfad1476211e5bd7
@@ -50,7 +50,7 @@ F www/c_interface.tcl 9ac800854272db5fe439e07b7435b243a5422293
F www/changes.tcl f5839fe8de7449d994c71a8e48ce8ea736bec7d1 F www/changes.tcl f5839fe8de7449d994c71a8e48ce8ea736bec7d1
F www/index.tcl 0c63672bad5188327143ecd0a07c7c0741ff9823 F www/index.tcl 0c63672bad5188327143ecd0a07c7c0741ff9823
F www/sqlite.tcl 2f933ce18cffd34a0a020a82435ab937137970fd F www/sqlite.tcl 2f933ce18cffd34a0a020a82435ab937137970fd
P 25984b4d3ce0f94fa98a159d840cc7bd4e8bc1ab P f4d9089c5d69b16fee5feb49b02e524499e6328d
R 390a7e6fa62aea4b8e4067014add32c4 R dbe7159bcbb54ce029964c82a0bd434c
U drh U drh
Z 9866a189debd27c7a4ca83d1442824ae Z cf4067fbc404bfe31608e9dcddc7bc35

View File

@@ -1 +1 @@
f4d9089c5d69b16fee5feb49b02e524499e6328d 65d2100d33350e6bce30d4d75f3cead9fcab3efb

View File

@@ -24,7 +24,7 @@
** This file contains C code routines that are called by the parser ** This file contains C code routines that are called by the parser
** to handle SELECT statements. ** to handle SELECT statements.
** **
** $Id: select.c,v 1.13 2000/06/06 21:56:08 drh Exp $ ** $Id: select.c,v 1.14 2000/06/06 22:13:55 drh Exp $
*/ */
#include "sqliteInt.h" #include "sqliteInt.h"
@@ -161,9 +161,8 @@ static int selectInnerLoop(
** the temporary table iParm. ** the temporary table iParm.
*/ */
if( eDest==SRT_Except ){ if( eDest==SRT_Except ){
assert( pEList->nExpr==1 ); sqliteVdbeAddOp(v, OP_MakeRecord, nField, 0, 0, 0);
sqliteVdbeAddOp(v, OP_String, 0, 0, "", 0); sqliteVdbeAddOp(v, OP_Delete, iParm, 0, 0, 0);
sqliteVdbeAddOp(v, OP_Put, iParm, 0, 0, 0);
}else }else
/* If we are creating a set for an "expr IN (SELECT ...)" construct, /* If we are creating a set for an "expr IN (SELECT ...)" construct,
@@ -182,6 +181,7 @@ static int selectInnerLoop(
** of the scan loop. ** of the scan loop.
*/ */
if( eDest==SRT_Mem ){ if( eDest==SRT_Mem ){
assert( pEList->nExpr==1 );
sqliteVdbeAddOp(v, OP_MemStore, iParm, 0, 0, 0); sqliteVdbeAddOp(v, OP_MemStore, iParm, 0, 0, 0);
sqliteVdbeAddOp(v, OP_Goto, 0, iBreak, 0, 0); sqliteVdbeAddOp(v, OP_Goto, 0, iBreak, 0, 0);
}else }else
@@ -306,7 +306,6 @@ static int multiSelect(Parse *pParse, Select *p, int eDest, int iParm){
} }
case TK_INTERSECT: { case TK_INTERSECT: {
int tab1, tab2; int tab1, tab2;
Select *pPrior;
int iCont, iBreak; int iCont, iBreak;
tab1 = pParse->nTab++; tab1 = pParse->nTab++;

View File

@@ -41,7 +41,7 @@
** But other routines are also provided to help in building up ** But other routines are also provided to help in building up
** a program instruction by instruction. ** a program instruction by instruction.
** **
** $Id: vdbe.c,v 1.23 2000/06/06 21:56:08 drh Exp $ ** $Id: vdbe.c,v 1.24 2000/06/06 22:13:55 drh Exp $
*/ */
#include "sqliteInt.h" #include "sqliteInt.h"
#include <unistd.h> #include <unistd.h>
@@ -1966,8 +1966,14 @@ int sqliteVdbeExec(
if( NeedStack(p, p->tos) ) goto no_mem; if( NeedStack(p, p->tos) ) goto no_mem;
if( i>=0 && i<p->nTable && (pTab = p->aTab[i].pTable)!=0 ){ if( i>=0 && i<p->nTable && (pTab = p->aTab[i].pTable)!=0 ){
char *z = sqliteDbbeReadKey(pTab, 0); char *z = sqliteDbbeReadKey(pTab, 0);
memcpy(&p->aStack[tos].i, z, sizeof(int)); if( p->aTab[i].keyAsData ){
p->aStack[tos].flags = STK_Int; p->zStack[tos] = z;
p->aStack[tos].flags = STK_Str;
p->aStack[tos].n = sqliteDbbeKeyLength(pTab);
}else{
memcpy(&p->aStack[tos].i, z, sizeof(int));
p->aStack[tos].flags = STK_Int;
}
} }
break; break;
} }