]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
:-) (CVS 63)
authordrh <drh@noemail.net>
Tue, 6 Jun 2000 22:13:55 +0000 (22:13 +0000)
committerdrh <drh@noemail.net>
Tue, 6 Jun 2000 22:13:55 +0000 (22:13 +0000)
FossilOrigin-Name: 65d2100d33350e6bce30d4d75f3cead9fcab3efb

manifest
manifest.uuid
src/select.c
src/vdbe.c

index 76cb25718421b7dbd38a0f46b10b985dd2533238..76b2e0830cd23cbda28cd0ade0f63eb96b2c0769 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C :-)\s(CVS\s62)
-D 2000-06-06T21:56:08
+C :-)\s(CVS\s63)
+D 2000-06-06T22:13:55
 F COPYRIGHT 74a8a6531a42e124df07ab5599aad63870fa0bd4
 F Makefile.in 17ba1ccf8d2d40c627796bba8f72952365d6d644
 F README 51f6a4e7408b34afa5bc1c0485f61b6a4efb6958
@@ -14,7 +14,7 @@ F src/expr.c d350fe393e1753aaa733a5d21f0830a23e547400
 F src/insert.c 5e69dd70c3f91cf5ec5090f39fd6cd8e135af9bf
 F src/main.c 93a7ad14bb5a82ad13ad59da23ef674a94b0c3d6
 F src/parse.y 8b632f4c4ff2f4400f15592ca9d8fda27d97d0c4
-F src/select.c db29a091b6a5a4e90e7a0afb5721910ccaa9e19d
+F src/select.c 74fa3af62bfa2e6e29f43153f883fd28c295b853
 F src/shell.c 5fa24c0bb678782ffe9070128e3e160674f297eb
 F src/sqlite.h 58da0a8590133777b741f9836beaef3d58f40268
 F src/sqliteInt.h 3cca846df0a8b5f811cf4f8021303547cd8f21fd
@@ -22,7 +22,7 @@ F src/tclsqlite.c 9f358618ae803bedf4fb96da5154fd45023bc1f7
 F src/tokenize.c 09373590cc3942aa4744eb431ac5b5ce31e7cfea
 F src/update.c 18746f920f989b3d19d96c08263c92584823cd35
 F src/util.c 33f9baa01e45394ef0cf85361a0e872987884315
-F src/vdbe.c 562b12a9bafc098c114ab5eaec1307d071b89fd3
+F src/vdbe.c d78231479a357b69fa61283c18477f1c208088f9
 F src/vdbe.h 8f79f57c66ce1030f6371ff067b326d627a52c6d
 F src/where.c c9b90e7672f4662a83ef9a27a193020d69fe034c
 F test/all.test 0950c135cab7e60c07bd745ccfad1476211e5bd7
@@ -50,7 +50,7 @@ F www/c_interface.tcl 9ac800854272db5fe439e07b7435b243a5422293
 F www/changes.tcl f5839fe8de7449d994c71a8e48ce8ea736bec7d1
 F www/index.tcl 0c63672bad5188327143ecd0a07c7c0741ff9823
 F www/sqlite.tcl 2f933ce18cffd34a0a020a82435ab937137970fd
-P 25984b4d3ce0f94fa98a159d840cc7bd4e8bc1ab
-R 390a7e6fa62aea4b8e4067014add32c4
+P f4d9089c5d69b16fee5feb49b02e524499e6328d
+R dbe7159bcbb54ce029964c82a0bd434c
 U drh
-Z 9866a189debd27c7a4ca83d1442824ae
+Z cf4067fbc404bfe31608e9dcddc7bc35
index 2ea4ee081328ee7126763a86b0d4ed62f7933d1a..ed40a9aa09ea2eea318ad386a8bba4fcf7daa304 100644 (file)
@@ -1 +1 @@
-f4d9089c5d69b16fee5feb49b02e524499e6328d
\ No newline at end of file
+65d2100d33350e6bce30d4d75f3cead9fcab3efb
\ No newline at end of file
index bcfcd69bed9359f3af26041295df56ca21bb362a..46bdb42894f36e01bf495d2163725cf09ce994b2 100644 (file)
@@ -24,7 +24,7 @@
 ** This file contains C code routines that are called by the parser
 ** 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"
 
@@ -161,9 +161,8 @@ static int selectInnerLoop(
   ** the temporary table iParm.
   */
   if( eDest==SRT_Except ){
-    assert( pEList->nExpr==1 );
-    sqliteVdbeAddOp(v, OP_String, 0, 0, "", 0);
-    sqliteVdbeAddOp(v, OP_Put, iParm, 0, 0, 0);
+    sqliteVdbeAddOp(v, OP_MakeRecord, nField, 0, 0, 0);
+    sqliteVdbeAddOp(v, OP_Delete, iParm, 0, 0, 0);
   }else 
 
   /* If we are creating a set for an "expr IN (SELECT ...)" construct,
@@ -182,6 +181,7 @@ static int selectInnerLoop(
   ** of the scan loop.
   */
   if( eDest==SRT_Mem ){
+    assert( pEList->nExpr==1 );
     sqliteVdbeAddOp(v, OP_MemStore, iParm, 0, 0, 0);
     sqliteVdbeAddOp(v, OP_Goto, 0, iBreak, 0, 0);
   }else
@@ -306,7 +306,6 @@ static int multiSelect(Parse *pParse, Select *p, int eDest, int iParm){
     }
     case TK_INTERSECT: {
       int tab1, tab2;
-      Select *pPrior;
       int iCont, iBreak;
 
       tab1 = pParse->nTab++;
index 6a9c1c7da753feeacc97e2e02e13671f43df1505..83118cec8b9cd54e219f2469e37810964c718d06 100644 (file)
@@ -41,7 +41,7 @@
 ** But other routines are also provided to help in building up
 ** 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 <unistd.h>
@@ -1966,8 +1966,14 @@ int sqliteVdbeExec(
         if( NeedStack(p, p->tos) ) goto no_mem;
         if( i>=0 && i<p->nTable && (pTab = p->aTab[i].pTable)!=0 ){
           char *z = sqliteDbbeReadKey(pTab, 0);
-          memcpy(&p->aStack[tos].i, z, sizeof(int));
-          p->aStack[tos].flags = STK_Int;
+          if( p->aTab[i].keyAsData ){
+            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;
       }