]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Use the new API calls more consistently. (CVS 1459)
authordanielk1977 <danielk1977@noemail.net>
Wed, 26 May 2004 02:04:57 +0000 (02:04 +0000)
committerdanielk1977 <danielk1977@noemail.net>
Wed, 26 May 2004 02:04:57 +0000 (02:04 +0000)
FossilOrigin-Name: 17e7db488dac6b30d174f2272edf1046c2bb9990

manifest
manifest.uuid
src/legacy.c
src/main.c
src/sqlite.h.in
src/tclsqlite.c
src/test1.c
src/test4.c
src/vdbe.c
src/vdbeInt.h
src/vdbeaux.c

index 557334a2c2b44cdd5bd78bd620855afd430e1ded..3ecd3fe9fc50f61606b5859bc7de285b9435caab 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C More\schanges\sto\sdo\swith\sthe\snew\ssqlite3_step()\sAPI.\s(CVS\s1458)
-D 2004-05-26T00:07:25
+C Use\sthe\snew\sAPI\scalls\smore\sconsistently.\s(CVS\s1459)
+D 2004-05-26T02:04:57
 F Makefile.in ab7b0d5118e2da97bac66be8684a1034e3500f5a
 F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906
 F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd
@@ -36,8 +36,8 @@ F src/func.c e67a36ae28ee3495d02261f74989a7bb192658fd
 F src/hash.c 440c2f8cb373ee1b4e13a0988489c7cd95d55b6f
 F src/hash.h 762d95f1e567664d1eafc1687de755626be962fb
 F src/insert.c 48bb15bff280767684a0f9ee4ae5973c9504f880
-F src/legacy.c 706484c32e86b95d65aeb31f661c0e4a3649b862
-F src/main.c 843361d68f275bc9dd3494897a105b34ad80e019
+F src/legacy.c a856d2d5317ed2ac93c2c6cbba7d4faa564a5b20
+F src/main.c c9044ad6896e41aa9bab1957cfd4e9725e5efb01
 F src/md5.c 32ec4d879e9b34d6a597ae8bda684d8e395003f4
 F src/os.h ab42f4a7c4c716f26b988e759b6e12085a3bfc67
 F src/os_common.h 744286a27de55c52f1b18921e8d17abbf7fafc0f
@@ -55,14 +55,14 @@ F src/printf.c ef750e8e2398ca7e8b58be991075f08c6a7f0e53
 F src/random.c eff68e3f257e05e81eae6c4d50a51eb88beb4ff3
 F src/select.c 867cab23c0577d4ac0510c925a85b8e032cfe139
 F src/shell.c ed4d237b3e52a0a42512bfcc53530e46de20c28f
-F src/sqlite.h.in 532e8b3b4a266ab5d7245a8ca3173fdd10f4a89f
+F src/sqlite.h.in a9d71fd4f781cc61e586b8eabed4d271d88e31c2
 F src/sqliteInt.h 6559811caeae0d1855e0b973e363a8c5141e566b
 F src/table.c af14284fa36c8d41f6829e3f2819dce07d3e2de2
-F src/tclsqlite.c 0b62e8df6da5abdddf49f3d9274a8103ee61fb63
-F src/test1.c 616c288a49b48facb54b9a925aeede1ba4093d8c
+F src/tclsqlite.c a125a8b99d427e132cb6e728cf9310f6554b410b
+F src/test1.c a9f40903f6a14150ca1201da492d4f5a652a1c0c
 F src/test2.c 6195a1ca2c8d0d2d93644e86da3289b403486872
 F src/test3.c 5e4a6d596f982f6f47a5f9f75ede9b4a3b739968
-F src/test4.c b9947c319a5c023c10c1e953e6610abd571c2283
+F src/test4.c 014478492bddb3f9b4a3151b05f9ac708fe279fb
 F src/test5.c 9a1f15133f6955f067c5246e564723b5f23ff221
 F src/tokenize.c e7536dd31205d5afb76c1bdc832dea009c7a3847
 F src/trigger.c 11afe9abfba13a2ba142944c797c952e162d117f
@@ -70,10 +70,10 @@ F src/update.c 2b5ec85fa19020686ed2fc4a3fc43cbcefbfdfa7
 F src/utf.c 1d38da85bffb928fb0d9f301e7db913a6df486ce
 F src/util.c 4c0adcbc9ce6678dd046931253e45d623c6d279f
 F src/vacuum.c 8734f89742f246abd91dbd3e087fc153bddbfbad
-F src/vdbe.c 7f41e2f73dcca885618b9baec0ffea9f8b0714aa
+F src/vdbe.c 0c10b0036444f99eb625c6a003d007e3043187ef
 F src/vdbe.h ebd59ee7a988d39c58b27149593f09a432ad1410
-F src/vdbeInt.h e500998a0ab3b10850c771c60d6b132037ff56e7
-F src/vdbeaux.c b2527b7ce884c2c1dc102d48a07c6327f8eac3c2
+F src/vdbeInt.h c8706615ad49c7a5292daa31425dd1b0b24b3b9b
+F src/vdbeaux.c a792ac602eb81c15ebdea64931bd3fad85b025f2
 F src/where.c efe5d25fe18cd7381722457898cd863e84097a0c
 F test/all.test 569a92a8ee88f5300c057cc4a8f50fbbc69a3242
 F test/attach.test cb9b884344e6cfa5e165965d5b1adea679a24c83
@@ -203,7 +203,7 @@ F www/sqlite.tcl 3c83b08cf9f18aa2d69453ff441a36c40e431604
 F www/tclsqlite.tcl b9271d44dcf147a93c98f8ecf28c927307abd6da
 F www/vdbe.tcl 9b9095d4495f37697fd1935d10e14c6015e80aa1
 F www/whentouse.tcl a8335bce47cc2fddb07f19052cb0cb4d9129a8e4
-P 143c502a59e727975f61c8d13b6c5a90dad038f3
-R aab0f00d021548c4204f1bc870566ab7
+P e83138250ce0a8caacbd1822eec2e06796d2f5f2
+R 2d9cfc7b0183db7d18c182936822729e
 U danielk1977
-Z 3b5c9e0de208be70045790485a870245
+Z a8211c11f21dbceb0c77c5b2788c41e4
index b428914deda4be08a179b46fc2234f6ff3141fd5..1201a7037f1a088a94035192ada7a0d1da89fad1 100644 (file)
@@ -1 +1 @@
-e83138250ce0a8caacbd1822eec2e06796d2f5f2
\ No newline at end of file
+17e7db488dac6b30d174f2272edf1046c2bb9990
\ No newline at end of file
index 58ab6e8cd6fdb1ecab6de7104d00f87e5aa3cb80..655f2bb7bd69408cd29068175ee22fe6c2e0dff2 100644 (file)
@@ -14,7 +14,7 @@
 ** other files are for internal use by SQLite and should not be
 ** accessed by users of the library.
 **
-** $Id: legacy.c,v 1.1 2004/05/26 00:01:35 danielk1977 Exp $
+** $Id: legacy.c,v 1.2 2004/05/26 02:04:57 danielk1977 Exp $
 */
 
 #include "sqliteInt.h"
@@ -55,7 +55,7 @@ int sqlite3_exec(
     pStmt = 0;
     rc = sqlite3_prepare(db, zSql, -1, &pStmt, &zLeftover);
     if( rc!=SQLITE_OK ){
-      if( pStmt ) sqlite3_finalize_new(pStmt);
+      if( pStmt ) sqlite3_finalize(pStmt);
       continue;
     }
     if( !pStmt ){
@@ -100,7 +100,7 @@ int sqlite3_exec(
       }
 
       if( rc!=SQLITE_ROW ){
-        rc = sqlite3_finalize_new(pStmt);
+        rc = sqlite3_finalize(pStmt);
         pStmt = 0;
         if( db->pVdbe==0 ){
           nChange = db->nChange;
@@ -119,7 +119,7 @@ int sqlite3_exec(
   }
 
 exec_out:
-  if( pStmt ) sqlite3_finalize_new(pStmt);
+  if( pStmt ) sqlite3_finalize(pStmt);
   if( azCols ) sqliteFree(azCols);
 
   if( rc!=SQLITE_OK && rc==sqlite3_errcode(db) && pzErrMsg ){
index d23c0982d01ccef6b22e1c69bd7ad7a67fb9ab7c..79525bb87a83bfcb5de3d31e7e77961c04804c83 100644 (file)
@@ -14,7 +14,7 @@
 ** other files are for internal use by SQLite and should not be
 ** accessed by users of the library.
 **
-** $Id: main.c,v 1.189 2004/05/25 23:35:18 danielk1977 Exp $
+** $Id: main.c,v 1.190 2004/05/26 02:04:57 danielk1977 Exp $
 */
 #include "sqliteInt.h"
 #include "os.h"
@@ -482,135 +482,6 @@ void sqlite3RollbackAll(sqlite *db){
   /* sqlite3RollbackInternalChanges(db); */
 }
 
-/*
-** Compile a single statement of SQL into a virtual machine.  Return one
-** of the SQLITE_ success/failure codes.  Also write an error message into
-** memory obtained from malloc() and make *pzErrMsg point to that message.
-*/
-int sqlite3_compile(
-  sqlite *db,                 /* The database on which the SQL executes */
-  const char *zSql,           /* The SQL to be executed */
-  const char **pzTail,        /* OUT: Next statement after the first */
-  sqlite_vm **ppVm,           /* OUT: The virtual machine */
-  char **pzErrMsg             /* OUT: Write error messages here */
-){
-  Parse sParse;
-
-  if( pzErrMsg ) *pzErrMsg = 0;
-  if( sqlite3SafetyOn(db) ) goto exec_misuse;
-  if( !db->init.busy ){
-    if( (db->flags & SQLITE_Initialized)==0 ){
-      int rc, cnt = 1;
-      while( (rc = sqlite3Init(db, pzErrMsg))==SQLITE_BUSY
-         && db->xBusyCallback
-         && db->xBusyCallback(db->pBusyArg, "", cnt++)!=0 ){}
-      if( rc!=SQLITE_OK ){
-        sqlite3StrRealloc(pzErrMsg);
-        sqlite3SafetyOff(db);
-        return rc;
-      }
-      if( pzErrMsg ){
-        sqliteFree(*pzErrMsg);
-        *pzErrMsg = 0;
-      }
-    }
-  }
-  assert( (db->flags & SQLITE_Initialized)!=0 || db->init.busy );
-  if( db->pVdbe==0 ){ db->nChange = 0; }
-  memset(&sParse, 0, sizeof(sParse));
-  sParse.db = db;
-  sqlite3RunParser(&sParse, zSql, pzErrMsg);
-  if( db->xTrace && !db->init.busy ){
-    /* Trace only the statment that was compiled.
-    ** Make a copy of that part of the SQL string since zSQL is const
-    ** and we must pass a zero terminated string to the trace function
-    ** The copy is unnecessary if the tail pointer is pointing at the
-    ** beginnig or end of the SQL string.
-    */
-    if( sParse.zTail && sParse.zTail!=zSql && *sParse.zTail ){
-      char *tmpSql = sqliteStrNDup(zSql, sParse.zTail - zSql);
-      if( tmpSql ){
-        db->xTrace(db->pTraceArg, tmpSql);
-        free(tmpSql);
-      }else{
-        /* If a memory error occurred during the copy,
-        ** trace entire SQL string and fall through to the
-        ** sqlite3_malloc_failed test to report the error.
-        */
-        db->xTrace(db->pTraceArg, zSql); 
-      }
-    }else{
-      db->xTrace(db->pTraceArg, zSql); 
-    }
-  }
-  if( sqlite3_malloc_failed ){
-    sqlite3SetString(pzErrMsg, "out of memory", (char*)0);
-    sParse.rc = SQLITE_NOMEM;
-    sqlite3RollbackAll(db);
-    sqlite3ResetInternalSchema(db, 0);
-    db->flags &= ~SQLITE_InTrans;
-  }
-  if( sParse.rc==SQLITE_DONE ) sParse.rc = SQLITE_OK;
-  if( sParse.rc!=SQLITE_OK && pzErrMsg && *pzErrMsg==0 ){
-    sqlite3SetString(pzErrMsg, sqlite3_error_string(sParse.rc), (char*)0);
-  }
-  sqlite3StrRealloc(pzErrMsg);
-  if( sParse.rc==SQLITE_SCHEMA ){
-    sqlite3ResetInternalSchema(db, 0);
-  }
-  assert( ppVm );
-  *ppVm = (sqlite_vm*)sParse.pVdbe;
-  if( pzTail ) *pzTail = sParse.zTail;
-  if( sqlite3SafetyOff(db) ) goto exec_misuse;
-  return sParse.rc;
-
-exec_misuse:
-  if( pzErrMsg ){
-    *pzErrMsg = 0;
-    sqlite3SetString(pzErrMsg, sqlite3_error_string(SQLITE_MISUSE), (char*)0);
-    sqlite3StrRealloc(pzErrMsg);
-  }
-  return SQLITE_MISUSE;
-}
-
-
-/*
-** The following routine destroys a virtual machine that is created by
-** the sqlite3_compile() routine.
-**
-** The integer returned is an SQLITE_ success/failure code that describes
-** the result of executing the virtual machine.  An error message is
-** written into memory obtained from malloc and *pzErrMsg is made to
-** point to that error if pzErrMsg is not NULL.  The calling routine
-** should use sqlite3_freemem() to delete the message when it has finished
-** with it.
-*/
-int sqlite3_finalize(
-  sqlite_vm *pVm,            /* The virtual machine to be destroyed */
-  char **pzErrMsg            /* OUT: Write error messages here */
-){
-  int rc = sqlite3VdbeFinalize((Vdbe*)pVm, pzErrMsg);
-  sqlite3StrRealloc(pzErrMsg);
-  return rc;
-}
-
-/*
-** Terminate the current execution of a virtual machine then
-** reset the virtual machine back to its starting state so that it
-** can be reused.  Any error message resulting from the prior execution
-** is written into *pzErrMsg.  A success code from the prior execution
-** is returned.
-*/
-int sqlite3_reset(
-  sqlite_vm *pVm,            /* The virtual machine to be destroyed */
-  char **pzErrMsg            /* OUT: Write error messages here */
-){
-  int rc = sqlite3VdbeReset((Vdbe*)pVm, pzErrMsg);
-  sqlite3VdbeMakeReady((Vdbe*)pVm, -1, 0);
-  sqlite3StrRealloc(pzErrMsg);
-  return rc;
-}
-
 /*
 ** Return a static string that describes the kind of error specified in the
 ** argument.
@@ -1252,7 +1123,7 @@ int sqlite3_open16(
 ** This routine sets the error code and string returned by
 ** sqlite3_errcode(), sqlite3_errmsg() and sqlite3_errmsg16().
 */
-int sqlite3_finalize_new(sqlite3_stmt *pStmt){
+int sqlite3_finalize(sqlite3_stmt *pStmt){
   return sqlite3VdbeFinalize((Vdbe*)pStmt, 0);
 }
 
@@ -1264,7 +1135,7 @@ int sqlite3_finalize_new(sqlite3_stmt *pStmt){
 ** This routine sets the error code and string returned by
 ** sqlite3_errcode(), sqlite3_errmsg() and sqlite3_errmsg16().
 */
-int sqlite3_reset_new(sqlite3_stmt *pStmt){
+int sqlite3_reset(sqlite3_stmt *pStmt){
   int rc = sqlite3VdbeReset((Vdbe*)pStmt, 0);
   sqlite3VdbeMakeReady((Vdbe*)pStmt, -1, 0);
   return rc;
index fa1c0869c07bc748f2febf9f9d37ced7961ed3c3..3d8ee52387cea72904de1c52ee1c51637dc52ce8 100644 (file)
@@ -12,7 +12,7 @@
 ** This header file defines the interface that the SQLite library
 ** presents to client programs.
 **
-** @(#) $Id: sqlite.h.in,v 1.78 2004/05/26 00:07:25 danielk1977 Exp $
+** @(#) $Id: sqlite.h.in,v 1.79 2004/05/26 02:04:57 danielk1977 Exp $
 */
 #ifndef _SQLITE_H_
 #define _SQLITE_H_
@@ -542,112 +542,6 @@ int sqlite3_set_authorizer(
 */
 void *sqlite3_trace(sqlite*, void(*xTrace)(void*,const char*), void*);
 
-/*** The Callback-Free API
-** 
-** The following routines implement a new way to access SQLite that does not
-** involve the use of callbacks.
-**
-** An sqlite_vm is an opaque object that represents a single SQL statement
-** that is ready to be executed.
-*/
-typedef struct sqlite_vm sqlite_vm;
-
-/*
-** To execute an SQLite query without the use of callbacks, you first have
-** to compile the SQL using this routine.  The 1st parameter "db" is a pointer
-** to an sqlite object obtained from sqlite3_open().  The 2nd parameter
-** "zSql" is the text of the SQL to be compiled.   The remaining parameters
-** are all outputs.
-**
-** *pzTail is made to point to the first character past the end of the first
-** SQL statement in zSql.  This routine only compiles the first statement
-** in zSql, so *pzTail is left pointing to what remains uncompiled.
-**
-** *ppVm is left pointing to a "virtual machine" that can be used to execute
-** the compiled statement.  Or if there is an error, *ppVm may be set to NULL.
-** If the input text contained no SQL (if the input is and empty string or
-** a comment) then *ppVm is set to NULL.
-**
-** If any errors are detected during compilation, an error message is written
-** into space obtained from malloc() and *pzErrMsg is made to point to that
-** error message.  The calling routine is responsible for freeing the text
-** of this message when it has finished with it.  Use sqlite3_freemem() to
-** free the message.  pzErrMsg may be NULL in which case no error message
-** will be generated.
-**
-** On success, SQLITE_OK is returned.  Otherwise and error code is returned.
-*/
-int sqlite3_compile(
-  sqlite *db,                   /* The open database */
-  const char *zSql,             /* SQL statement to be compiled */
-  const char **pzTail,          /* OUT: uncompiled tail of zSql */
-  sqlite_vm **ppVm,             /* OUT: the virtual machine to execute zSql */
-  char **pzErrmsg               /* OUT: Error message. */
-);
-
-/*
-** This routine is called to delete a virtual machine after it has finished
-** executing.  The return value is the result code.  SQLITE_OK is returned
-** if the statement executed successfully and some other value is returned if
-** there was any kind of error.  If an error occurred and pzErrMsg is not
-** NULL, then an error message is written into memory obtained from malloc()
-** and *pzErrMsg is made to point to that error message.  The calling routine
-** should use sqlite3_freemem() to delete this message when it has finished
-** with it.
-**
-** This routine can be called at any point during the execution of the
-** virtual machine.  If the virtual machine has not completed execution
-** when this routine is called, that is like encountering an error or
-** an interrupt.  (See sqlite3_interrupt().)  Incomplete updates may be
-** rolled back and transactions cancelled,  depending on the circumstances,
-** and the result code returned will be SQLITE_ABORT.
-*/
-int sqlite3_finalize(sqlite_vm*, char **pzErrMsg);
-
-/*
-** This routine deletes the virtual machine, writes any error message to
-** *pzErrMsg and returns an SQLite return code in the same way as the
-** sqlite3_finalize() function.
-**
-** Additionally, if ppVm is not NULL, *ppVm is left pointing to a new virtual
-** machine loaded with the compiled version of the original query ready for
-** execution.
-**
-** If sqlite3_reset() returns SQLITE_SCHEMA, then *ppVm is set to NULL.
-**
-******* THIS IS AN EXPERIMENTAL API AND IS SUBJECT TO CHANGE ******
-*/
-int sqlite3_reset(sqlite_vm*, char **pzErrMsg);
-
-/*
-** If the SQL that was handed to sqlite3_prepare contains variables that
-** are represeted in the SQL text by a question mark ('?').  This routine
-** is used to assign values to those variables.
-**
-** The first parameter is a virtual machine obtained from sqlite3_prepare().
-** The 2nd "idx" parameter determines which variable in the SQL statement
-** to bind the value to.  The left most '?' is 1.  The 3rd parameter is
-** the value to assign to that variable.  The 4th parameter is the number
-** of bytes in the value, including the terminating \000 for strings.
-** Finally, the 5th "copy" parameter is TRUE if SQLite should make its
-** own private copy of this value, or false if the space that the 3rd
-** parameter points to will be unchanging and can be used directly by
-** SQLite.
-**
-** Unbound variables are treated as having a value of NULL.  To explicitly
-** set a variable to NULL, call this routine with the 3rd parameter as a
-** NULL pointer.
-**
-** If the 4th "len" parameter is -1, then strlen() is used to find the
-** length.
-**
-** This routine can only be called immediately after sqlite3_prepare()
-** or sqlite3_reset() and before any calls to sqlite3_step().
-**
-******* THIS IS AN EXPERIMENTAL API AND IS SUBJECT TO CHANGE ******
-*/
-int sqlite3_bind(sqlite_vm*, int idx, const char *value, int len, int copy);
-
 /*
 ** This routine configures a callback function - the progress callback - that
 ** is invoked periodically during long running calls to sqlite3_exec(),
@@ -664,7 +558,6 @@ int sqlite3_bind(sqlite_vm*, int idx, const char *value, int len, int copy);
 ** in less than N opcodes being executed, then the progress callback is not
 ** invoked.
 ** 
-** Calling this routine overwrites any previously installed progress callback.
 ** To remove the progress callback altogether, pass NULL as the third
 ** argument to this function.
 **
@@ -755,10 +648,10 @@ int sqlite_encode_binary(const unsigned char *in, int n, unsigned char *out);
 int sqlite_decode_binary(const unsigned char *in, unsigned char *out);
 
 
-/* FIX ME */
-typedef sqlite_vm sqlite3_stmt;
 typedef sqlite sqlite3;
 
+typedef struct sqlite3_stmt sqlite3_stmt;
+
 /*
 ** This routine is used to bind a 32-bit integer value to a variable
 ** in an SQL statement compiled by sqlite3_prepare(). See comments for
@@ -1084,8 +977,15 @@ int sqlite3_step(sqlite3_stmt*);
 ** or sqlite3_prepare16(). If the statement was executed successfully, or
 ** not executed at all, then SQLITE_OK is returned. If execution of the
 ** statement failed then an error code is returned. 
+**
+** This routine can be called at any point during the execution of the
+** virtual machine.  If the virtual machine has not completed execution
+** when this routine is called, that is like encountering an error or
+** an interrupt.  (See sqlite3_interrupt().)  Incomplete updates may be
+** rolled back and transactions cancelled,  depending on the circumstances,
+** and the result code returned will be SQLITE_ABORT.
 */
-int sqlite3_finalize_new(sqlite3_stmt *pStmt);
+int sqlite3_finalize(sqlite3_stmt *pStmt);
 
 /*
 ** The sqlite3_reset() function is called to reset a compiled SQL
@@ -1094,7 +994,7 @@ int sqlite3_finalize_new(sqlite3_stmt *pStmt);
 ** Any SQL statement variables that had values bound to them using
 ** the sqlite3_bind_*() API retain their values.
 */
-int sqlite3_reset_new(sqlite3_stmt *pStmt);
+int sqlite3_reset(sqlite3_stmt *pStmt);
 
 /*
 ** Open the sqlite database file "filename", where "filename" is UTF-8
index 7cb5bf8dae14364f2078c2705c4a632750748f1b..0b9437ddaa71d63a33a871a63709f86a3e49eeb4 100644 (file)
@@ -11,7 +11,7 @@
 *************************************************************************
 ** A TCL Interface to SQLite
 **
-** $Id: tclsqlite.c,v 1.69 2004/05/25 12:05:57 danielk1977 Exp $
+** $Id: tclsqlite.c,v 1.70 2004/05/26 02:04:57 danielk1977 Exp $
 */
 #ifndef NO_TCL     /* Omit this whole file if TCL is unavailable */
 
@@ -1218,7 +1218,7 @@ int TCLSH_MAIN(int argc, char **argv){
     Sqlitetest1_Init(interp);
     Sqlitetest2_Init(interp);
     Sqlitetest3_Init(interp);
-/*    Sqlitetest4_Init(interp); */
+    Sqlitetest4_Init(interp);
     Sqlitetest5_Init(interp);
     Md5_Init(interp);
   }
index 9ced503a3c0fb4fff590bc630f72de48d2c9d382..aa2a8209f376cfff8f106682d92af48c36679312 100644 (file)
@@ -13,7 +13,7 @@
 ** is not included in the SQLite library.  It is used for automated
 ** testing of the SQLite library.
 **
-** $Id: test1.c,v 1.53 2004/05/26 00:07:26 danielk1977 Exp $
+** $Id: test1.c,v 1.54 2004/05/26 02:04:57 danielk1977 Exp $
 */
 #include "sqliteInt.h"
 #include "tcl.h"
@@ -76,17 +76,6 @@ static int getDbPointer(Tcl_Interp *interp, const char *zA, sqlite **ppDb){
   return TCL_OK;
 }
 
-/*
-** Decode a pointer to an sqlite_vm object.
-*/
-static int getVmPointer(Tcl_Interp *interp, const char *zArg, sqlite_vm **ppVm){
-  if( sscanf(zArg, PTR_FMT, (void**)ppVm)!=1 ){
-    Tcl_AppendResult(interp, "\"", zArg, "\" is not a valid pointer value", 0);
-    return TCL_ERROR;
-  }
-  return TCL_OK;
-}
-
 /*
 ** Decode a pointer to an sqlite3_stmt object.
 */
@@ -780,7 +769,7 @@ static int test_finalize(
 
   if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt) ) return TCL_ERROR;
 
-  rc = sqlite3_finalize_new(pStmt);
+  rc = sqlite3_finalize(pStmt);
   if( rc ){
     return TCL_ERROR;
   }
@@ -809,7 +798,7 @@ static int test_reset(
 
   if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt) ) return TCL_ERROR;
 
-  rc = sqlite3_reset_new(pStmt);
+  rc = sqlite3_reset(pStmt);
   if( rc ){
     return TCL_ERROR;
   }
@@ -844,7 +833,7 @@ static int test_bind(
   int argc,              /* Number of arguments */
   char **argv            /* Text of each argument */
 ){
-  sqlite_vm *vm;
+  sqlite3_stmt *pStmt;
   int rc;
   int idx;
   if( argc!=5 ){
@@ -852,14 +841,14 @@ static int test_bind(
        " VM IDX VALUE (null|static|normal)\"", 0);
     return TCL_ERROR;
   }
-  if( getVmPointer(interp, argv[1], &vm) ) return TCL_ERROR;
+  if( getStmtPointer(interp, argv[1], &pStmt) ) return TCL_ERROR;
   if( Tcl_GetInt(interp, argv[2], &idx) ) return TCL_ERROR;
   if( strcmp(argv[4],"null")==0 ){
-    rc = sqlite3_bind(vm, idx, 0, 0, 0);
+    rc = sqlite3_bind_null(pStmt, idx);
   }else if( strcmp(argv[4],"static")==0 ){
-    rc = sqlite3_bind(vm, idx, sqlite_static_bind_value, -1, 0);
+    rc = sqlite3_bind_text(pStmt, idx, sqlite_static_bind_value, -1, 0);
   }else if( strcmp(argv[4],"normal")==0 ){
-    rc = sqlite3_bind(vm, idx, argv[3], -1, 1);
+    rc = sqlite3_bind_text(pStmt, idx, argv[3], -1, 1);
   }else{
     Tcl_AppendResult(interp, "4th argument should be "
         "\"null\" or \"static\" or \"normal\"", 0);
index 3e4886be13346959388a3292327c5ad1791a2968..054e578af86d94439017e5b8e0f0d35d50a7f1a1 100644 (file)
 *************************************************************************
 ** Code for testing the the SQLite library in a multithreaded environment.
 **
-** $Id: test4.c,v 1.6 2004/05/22 09:21:21 danielk1977 Exp $
+** $Id: test4.c,v 1.7 2004/05/26 02:04:57 danielk1977 Exp $
 */
 #include "sqliteInt.h"
 #include "tcl.h"
+#include "os.h"
 #if defined(OS_UNIX) && OS_UNIX==1 && defined(THREADSAFE) && THREADSAFE==1
 #include <stdlib.h>
 #include <string.h>
@@ -40,13 +41,13 @@ struct Thread {
   ** master. */
   int completed;        /* Number of operations completed */
   sqlite *db;           /* Open database */
-  sqlite_vm *vm;        /* Pending operation */
+  sqlite3_stmt *pStmt;     /* Pending operation */
   char *zErr;           /* operation error */
   char *zStaticErr;     /* Static error message */
   int rc;               /* operation return code */
   int argc;             /* number of columns in result */
-  const char **argv;    /* result columns */
-  const char **colv;    /* result column names */
+  const char *argv[100];    /* result columns */
+  const char *colv[100];    /* result column names */
 };
 
 /*
@@ -71,7 +72,7 @@ static void *thread_main(void *pArg){
     sqlite3_close(p->db);
     p->db = 0;
   }
-  p->vm = 0;
+  p->pStmt = 0;
   p->completed = 1;
   while( p->opnum<=p->completed ) sched_yield();
   while( p->xOp ){
@@ -83,9 +84,9 @@ static void *thread_main(void *pArg){
     p->completed++;
     while( p->opnum<=p->completed ) sched_yield();
   }
-  if( p->vm ){
-    sqlite3_finalize(p->vm, 0);
-    p->vm = 0;
+  if( p->pStmt ){
+    sqlite3_finalize(p->pStmt);
+    p->pStmt = 0;
   }
   if( p->db ){
     sqlite3_close(p->db);
@@ -445,11 +446,11 @@ static void do_compile(Thread *p){
     p->rc = SQLITE_ERROR;
     return;
   }
-  if( p->vm ){
-    sqlite3_finalize(p->vm, 0);
-    p->vm = 0;
+  if( p->pStmt ){
+    sqlite3_finalize(p->pStmt);
+    p->pStmt = 0;
   }
-  p->rc = sqlite3_compile(p->db, p->zArg, 0, &p->vm, &p->zErr);
+  p->rc = sqlite3_prepare(p->db, p->zArg, -1, &p->pStmt, 0);
 }
 
 /*
@@ -487,12 +488,22 @@ static int tcl_thread_compile(
 ** This procedure runs in the thread to step the virtual machine.
 */
 static void do_step(Thread *p){
-  if( p->vm==0 ){
+  int i;
+  if( p->pStmt==0 ){
     p->zErr = p->zStaticErr = "no virtual machine available";
     p->rc = SQLITE_ERROR;
     return;
   }
-  p->rc = sqlite3_step(p->vm, &p->argc, &p->argv, &p->colv);
+  p->rc = sqlite3_step(p->pStmt);
+  if( p->rc==SQLITE_ROW ){
+    p->argc = sqlite3_column_count(p->pStmt);
+    for(i=0; i<sqlite3_data_count(p->pStmt); i++){
+      p->argv[i] = sqlite3_column_data(p->pStmt, i);
+    }
+    for(i=0; i<p->argc; i++){
+      p->colv[i] = sqlite3_column_name(p->pStmt, i);
+    }
+  }
 }
 
 /*
@@ -528,13 +539,13 @@ static int tcl_thread_step(
 ** This procedure runs in the thread to finalize a virtual machine.
 */
 static void do_finalize(Thread *p){
-  if( p->vm==0 ){
+  if( p->pStmt==0 ){
     p->zErr = p->zStaticErr = "no virtual machine available";
     p->rc = SQLITE_ERROR;
     return;
   }
-  p->rc = sqlite3_finalize(p->vm, &p->zErr);
-  p->vm = 0;
+  p->rc = sqlite3_finalize(p->pStmt);
+  p->pStmt = 0;
 }
 
 /*
index 21c945bebf0ee272e34f14e84b558a5c6c37ba7a..2d9a0b0c386765560d95efeb5763b91ce60a49cd 100644 (file)
@@ -15,7 +15,7 @@
 ** VDBE instances.  This file is solely interested in executing
 ** the VDBE program.
 **
-** In the external interface, an "sqlite_vm*" is an opaque pointer
+** In the external interface, an "sqlite3_stmt*" is an opaque pointer
 ** to a VDBE.
 **
 ** The SQL parser generates a program which is then executed by
@@ -43,7 +43,7 @@
 ** in this file for details.  If in doubt, do not deviate from existing
 ** commenting and indentation practices when changing or adding code.
 **
-** $Id: vdbe.c,v 1.330 2004/05/26 00:07:26 danielk1977 Exp $
+** $Id: vdbe.c,v 1.331 2004/05/26 02:04:58 danielk1977 Exp $
 */
 #include "sqliteInt.h"
 #include "os.h"
index 0cd57ace5975b579ae0850f93e4e3b734f4dc3e3..77f5f7c184f0df9d16d48966ae7b0a3accba62d2 100644 (file)
@@ -311,7 +311,7 @@ struct Context {
 ** An instance of the virtual machine.  This structure contains the complete
 ** state of the virtual machine.
 **
-** The "sqlite_vm" structure pointer that is returned by sqlite3_compile()
+** The "sqlite3_stmt" structure pointer that is returned by sqlite3_compile()
 ** is really a pointer to an instance of this structure.
 */
 struct Vdbe {
index 402820c84ddd205314349f58aa96a824fbb75f56..4167eb78ca4de41b760f31849c7521f1169d9ce8 100644 (file)
@@ -10,7 +10,7 @@
 **
 *************************************************************************
 ** This file contains code used for creating, destroying, and populating
-** a VDBE (or an "sqlite_vm" as it is known to the outside world.)  Prior
+** a VDBE (or an "sqlite3_stmt" as it is known to the outside world.)  Prior
 ** to version 2.8.7, all this code was combined into the vdbe.c source file.
 ** But that file was getting too big so this subroutines were split out.
 */
@@ -997,18 +997,6 @@ int sqlite3VdbeFinalize(Vdbe *p, char **pzErrMsg){
   return rc;
 }
 
-/*
-** Set the values of all variables.  Variable $1 in the original SQL will
-** be the string azValue[0].  $2 will have the value azValue[1].  And
-** so forth.  If a value is out of range (for example $3 when nValue==2)
-** then its value will be NULL.
-**
-** This routine overrides any prior call.
-*/
-int sqlite3_bind(sqlite_vm *pVm, int i, const char *zVal, int len, int copy){
-  return sqlite3_bind_text(pVm, i, zVal, len, copy);
-}
-
 /*
 ** Delete an entire VDBE.
 */