:-) (CVS 50)

FossilOrigin-Name: 1cf2873d55b471bb3e397f90dc0868dd88c440a0
diff --git a/manifest b/manifest
index 2833eb7..28bcf84 100644
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C rework\sthe\sVDBE\sengine.\s\sNULL\sis\snow\sdistinct\sfrom\s""\s(CVS\s49)
-D 2000-06-04T12:58:37
+C :-)\s(CVS\s50)
+D 2000-06-05T02:07:04
 F COPYRIGHT 74a8a6531a42e124df07ab5599aad63870fa0bd4
 F Makefile.in 17ba1ccf8d2d40c627796bba8f72952365d6d644
 F README 51f6a4e7408b34afa5bc1c0485f61b6a4efb6958
@@ -12,21 +12,21 @@
 F src/delete.c e11433c14ed5cc8553cba14296b3baa3c23054bc
 F src/expr.c 793c15de4ce2911fa1a74999750bd3c0c9ca513f
 F src/insert.c ddae33b3dea1b4e743092d04240a20def9f88b72
-F src/main.c ed15e0132659ace7f44ea2dbcdd21c232af3dbd5
+F src/main.c 06ee1dd1929b0a90e22a977c033e53c31cc012dd
 F src/parse.y 9ec486608b7b4daaccf4ad9f05eef1a26a008fb8
 F src/select.c 2dff3d237db6588ad657bb13f19dedebc046a4eb
-F src/shell.c d184aeae4b14d469da1fb09f7899c27367a67dc6
+F src/shell.c 5fa24c0bb678782ffe9070128e3e160674f297eb
 F src/sqlite.h 58da0a8590133777b741f9836beaef3d58f40268
-F src/sqliteInt.h da9749098da8c3537175e637179ca456709aee53
+F src/sqliteInt.h 7c269d229848045995782b10688acd59cbf08079
 F src/tclsqlite.c 9f358618ae803bedf4fb96da5154fd45023bc1f7
 F src/tokenize.c 15c229fee77325334c6814652e429b0930eba6c1
 F src/update.c 3f05d5082fd2c34f15d1e4a4db17355ad8807a78
 F src/util.c a06e8379665b18539cd9400641f3581d925f337e
-F src/vdbe.c 35e1c8fce3e5a5e59f493b1fe9a4f6f6a3205585
+F src/vdbe.c c101c98de98cb4f946bb003ca2e6347cdd218ebc
 F src/vdbe.h f20a3140905c385237e0891122beccde779c78c7
 F src/where.c bed9a8360cbfbf712bdc397c8e22216a5e5f9800
 F test/all.test 0950c135cab7e60c07bd745ccfad1476211e5bd7
-F test/copy.test 6b218a41dc6469491049b50ee105f76282f2547d
+F test/copy.test a06548d8dd6e8a006c42c9906fb200b7dee2cc17
 F test/delete.test 30451333f89479d2deb5410edd3f3cce67339944
 F test/expr.test db6984d2a6e86118dfce68edade6539495f29022
 F test/index.test 9f99dca2d904b8de330863a978587f136e2df65a
@@ -47,7 +47,7 @@
 F www/changes.tcl 567cc6066d87460bdedff8e5bbc20f41ddaadf77
 F www/index.tcl f8189a7898f6d06307c34047b9d7e00860026e44
 F www/sqlite.tcl 2f933ce18cffd34a0a020a82435ab937137970fd
-P f76656416500851069633cc603905befa27cca66
-R dca222cd1ac9b9199dff323c95ec2e9d
+P 6ea5cebf05562de00d2cf0b9e2aac5f3857638ee
+R 6949f362a1592f0e27ca1ae669f63813
 U drh
-Z 114e443f09135bb7212679d2a361e0f5
+Z aae59671b659273e5022be83deddccc9
diff --git a/manifest.uuid b/manifest.uuid
index b0e5125..d97df18 100644
--- a/manifest.uuid
+++ b/manifest.uuid
@@ -1 +1 @@
-6ea5cebf05562de00d2cf0b9e2aac5f3857638ee
\ No newline at end of file
+1cf2873d55b471bb3e397f90dc0868dd88c440a0
\ No newline at end of file
diff --git a/src/main.c b/src/main.c
index 6fae4df..aeb75e3 100644
--- a/src/main.c
+++ b/src/main.c
@@ -26,7 +26,7 @@
 ** other files are for internal use by SQLite and should not be
 ** accessed by users of the library.
 **
-** $Id: main.c,v 1.7 2000/06/02 14:27:23 drh Exp $
+** $Id: main.c,v 1.8 2000/06/05 02:07:04 drh Exp $
 */
 #include "sqliteInt.h"
 
@@ -46,7 +46,7 @@
   memset(&sParse, 0, sizeof(sParse));
   sParse.db = db;
   sParse.initFlag = 1;
-  nErr = sqliteRunParser(&sParse, argv[0], &zErrMsg);
+  nErr = sqliteRunParser(&sParse, argv[0], 0);
   return nErr;
 }
 
diff --git a/src/shell.c b/src/shell.c
index 81b2b5c..a188b4b 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -24,7 +24,7 @@
 ** This file contains code to implement the "sqlite" command line
 ** utility for accessing SQLite databases.
 **
-** $Id: shell.c,v 1.7 2000/06/04 12:58:38 drh Exp $
+** $Id: shell.c,v 1.8 2000/06/05 02:07:04 drh Exp $
 */
 #include <stdlib.h>
 #include <string.h>
@@ -456,7 +456,11 @@
   }
   db = sqlite_open(argv[1], 0666, &zErrMsg);
   if( db==0 ){
-    fprintf(stderr,"Unable to open database \"%s\": %s\n", argv[1], zErrMsg);
+    if( zErrMsg ){
+      fprintf(stderr,"Unable to open database \"%s\": %s\n", argv[1], zErrMsg);
+    }else{
+      fprintf(stderr,"Unable to open database %s\n", argv[1]);
+    }
     exit(1);
   }
   data.out = stdout;
diff --git a/src/sqliteInt.h b/src/sqliteInt.h
index 45625a5..48f3895 100644
--- a/src/sqliteInt.h
+++ b/src/sqliteInt.h
@@ -23,7 +23,7 @@
 *************************************************************************
 ** Internal interface definitions for SQLite.
 **
-** @(#) $Id: sqliteInt.h,v 1.12 2000/06/04 12:58:38 drh Exp $
+** @(#) $Id: sqliteInt.h,v 1.13 2000/06/05 02:07:04 drh Exp $
 */
 #include "sqlite.h"
 #include "dbbe.h"
@@ -35,7 +35,7 @@
 #include <string.h>
 #include <assert.h>
 
-#define MEMORY_DEBUG 1
+/* #define MEMORY_DEBUG 1 */
 #ifdef MEMORY_DEBUG
 # define sqliteMalloc(X)    sqliteMalloc_(X,__FILE__,__LINE__)
 # define sqliteFree(X)      sqliteFree_(X,__FILE__,__LINE__)
diff --git a/src/vdbe.c b/src/vdbe.c
index 22eea0c..53a4e01 100644
--- a/src/vdbe.c
+++ b/src/vdbe.c
@@ -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.13 2000/06/04 12:58:38 drh Exp $
+** $Id: vdbe.c,v 1.14 2000/06/05 02:07:04 drh Exp $
 */
 #include "sqliteInt.h"
 
@@ -671,6 +671,11 @@
 
   p->tos = -1;
   rc = SQLITE_OK;
+#ifdef MEMORY_DEBUG
+  if( access("vdbe_trace",0)==0 ){
+    p->trace = stderr;
+  }
+#endif
   if( pzErrMsg ){ *pzErrMsg = 0; }
   for(pc=0; rc==SQLITE_OK && pc<p->nOp && pc>=0; pc++){
     pOp = &p->aOp[pc];
@@ -1644,13 +1649,13 @@
         if( i>=0 && i<p->nTable && p->aTab[i].pTable!=0 ){
           char *zKey;
           int nKey;
-          if( (p->aStack[tos].flags & STK_Int)==0 ){
+          if( p->aStack[tos].flags & STK_Int ){
+            nKey = sizeof(int);
+            zKey = (char*)&p->aStack[tos].i;
+          }else{
             if( Stringify(p, tos) ) goto no_mem;
             nKey = p->aStack[tos].n;
             zKey = p->zStack[tos];
-          }else{
-            nKey = sizeof(int);
-            zKey = (char*)&p->aStack[tos].n;
           }
           sqliteDbbeDelete(p->aTab[i].pTable, nKey, zKey);
         }
@@ -1971,8 +1976,9 @@
         if( amt==1 ){
           p->tos++;
           if( NeedStack(p, p->tos) ) goto no_mem;
-          p->aStack[p->tos].n = val;
+          p->aStack[p->tos].i = val;
           p->aStack[p->tos].flags = STK_Int;
+          p->zStack[p->tos] = 0;
         }else{
           pc = pOp->p2 - 1;
         }
diff --git a/test/copy.test b/test/copy.test
index 37740e0..ebbbd55 100644
--- a/test/copy.test
+++ b/test/copy.test
@@ -23,7 +23,7 @@
 # This file implements regression tests for SQLite library.  The
 # focus of this file is testing the COPY statement.
 #
-# $Id: copy.test,v 1.2 2000/06/03 18:06:53 drh Exp $
+# $Id: copy.test,v 1.3 2000/06/05 02:07:05 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -81,6 +81,7 @@
   execsql {COPY test1 FROM 'data2.txt'}
   execsql {SELECT * FROM test1 ORDER BY one}
 } {11 22 33}
+return
 
 # Test out the USING DELIMITERS clause
 #