diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-09-18 14:34:04 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-10-04 11:15:27 +0000 |
commit | e6430e577f105ad8813c92e75c54660c4985026e (patch) | |
tree | 88115e5d1fb471fea807111924dcccbeadbf9e4f /chromium/third_party/sqlite/src/src/test1.c | |
parent | 53d399fe6415a96ea6986ec0d402a9c07da72453 (diff) | |
download | qtwebengine-chromium-e6430e577f105ad8813c92e75c54660c4985026e.tar.gz |
BASELINE: Update Chromium to 61.0.3163.99
Change-Id: I8452f34574d88ca2b27af9bd56fc9ff3f16b1367
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/third_party/sqlite/src/src/test1.c')
-rw-r--r-- | chromium/third_party/sqlite/src/src/test1.c | 423 |
1 files changed, 191 insertions, 232 deletions
diff --git a/chromium/third_party/sqlite/src/src/test1.c b/chromium/third_party/sqlite/src/src/test1.c index d17fc1022ad..4122651cbe3 100644 --- a/chromium/third_party/sqlite/src/src/test1.c +++ b/chromium/third_party/sqlite/src/src/test1.c @@ -28,7 +28,7 @@ #include <string.h> /* -** This is a copy of the first part of the SqliteDb structure in +** This is a copy of the first part of the SqliteDb structure in ** tclsqlite.c. We need it here so that the get_sqlite_pointer routine ** can extract the sqlite3* pointer from an existing Tcl SQLite ** connection. @@ -160,8 +160,8 @@ int sqlite3TestErrCode(Tcl_Interp *interp, sqlite3 *db, int rc){ ** Decode a pointer to an sqlite3_stmt object. */ static int getStmtPointer( - Tcl_Interp *interp, - const char *zArg, + Tcl_Interp *interp, + const char *zArg, sqlite3_stmt **ppStmt ){ *ppStmt = (sqlite3_stmt*)sqlite3TestTextToPtr(zArg); @@ -259,9 +259,9 @@ static int SQLITE_TCLAPI test_io_trace( } /* -** Usage: clang_sanitize_address +** Usage: clang_sanitize_address ** -** Returns true if the program was compiled using clang with the +** Returns true if the program was compiled using clang with the ** -fsanitize=address switch on the command line. False otherwise. ** ** Also return true if the OMIT_MISUSE environment variable exists. @@ -285,7 +285,7 @@ static int SQLITE_TCLAPI clang_sanitize_address( Tcl_SetObjResult(interp, Tcl_NewIntObj(res)); return TCL_OK; } - + /* ** Usage: sqlite3_exec_printf DB FORMAT STRING ** @@ -306,7 +306,7 @@ static int SQLITE_TCLAPI test_exec_printf( char *zSql; char zBuf[30]; if( argc!=4 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], + Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " DB FORMAT STRING", 0); return TCL_ERROR; } @@ -345,7 +345,7 @@ static int SQLITE_TCLAPI test_exec_hex( char zSql[501]; char zBuf[30]; if( argc!=3 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], + Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " DB HEX", 0); return TCL_ERROR; } @@ -385,7 +385,7 @@ static int SQLITE_TCLAPI db_enter( ){ sqlite3 *db; if( argc!=2 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], + Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " DB", 0); return TCL_ERROR; } @@ -401,7 +401,7 @@ static int SQLITE_TCLAPI db_leave( ){ sqlite3 *db; if( argc!=2 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], + Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " DB", 0); return TCL_ERROR; } @@ -429,7 +429,7 @@ static int SQLITE_TCLAPI test_exec( int i, j; char zBuf[30]; if( argc!=3 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], + Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " DB SQL", 0); return TCL_ERROR; } @@ -472,7 +472,7 @@ static int SQLITE_TCLAPI test_exec_nr( int rc; char *zErr = 0; if( argc!=3 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], + Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " DB SQL", 0); return TCL_ERROR; } @@ -485,7 +485,7 @@ static int SQLITE_TCLAPI test_exec_nr( /* ** Usage: sqlite3_mprintf_z_test SEPARATOR ARG0 ARG1 ... ** -** Test the %z format of sqlite_mprintf(). Use multiple mprintf() calls to +** Test the %z format of sqlite_mprintf(). Use multiple mprintf() calls to ** concatenate arg0 through argn using separator as the separator. ** Return the result. */ @@ -582,7 +582,7 @@ static int SQLITE_TCLAPI test_get_table_printf( if( Tcl_GetInt(interp, argv[4], &resCount) ) return TCL_ERROR; } if( argc!=4 && argc!=5 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], + Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " DB FORMAT STRING ?COUNT?", 0); return TCL_ERROR; } @@ -852,14 +852,14 @@ static int execFuncCallback(void *pData, int argc, char **argv, char **NotUsed){ ** This is illegal and should set the SQLITE_MISUSE flag on the database. ** ** 2004-Jan-07: We have changed this to make it legal to call sqlite3_exec() -** from within a function call. -** +** from within a function call. +** ** This routine simulates the effect of having two threads attempt to ** use the same database at the same time. */ static void sqlite3ExecFunc( - sqlite3_context *context, - int argc, + sqlite3_context *context, + int argc, sqlite3_value **argv ){ struct dstr x; @@ -878,9 +878,9 @@ static void sqlite3ExecFunc( ** * It calls sqlite3_value_text() 3 times on the argument sqlite3_value*. ** If the three pointers returned are not the same an SQL error is raised. ** -** * Otherwise it returns a copy of the text representation of its -** argument in such a way as the VDBE representation is a Mem* cell -** with the MEM_Term flag clear. +** * Otherwise it returns a copy of the text representation of its +** argument in such a way as the VDBE representation is a Mem* cell +** with the MEM_Term flag clear. ** ** Ticket #2213 can therefore be tested by evaluating the following ** SQL expression: @@ -888,8 +888,8 @@ static void sqlite3ExecFunc( ** tkt2213func(tkt2213func('a string')); */ static void tkt2213Function( - sqlite3_context *context, - int argc, + sqlite3_context *context, + int argc, sqlite3_value **argv ){ int nText; @@ -936,8 +936,8 @@ static void tkt2213Function( ** the _text(), _text16() and _blob() APIs become invalidated. */ static void ptrChngFunction( - sqlite3_context *context, - int argc, + sqlite3_context *context, + int argc, sqlite3_value **argv ){ const void *p1, *p2; @@ -990,8 +990,8 @@ static void ptrChngFunction( ** the arguments are the same. */ static void nondeterministicFunction( - sqlite3_context *context, - int argc, + sqlite3_context *context, + int argc, sqlite3_value **argv ){ static int cnt = 0; @@ -1028,7 +1028,7 @@ static int SQLITE_TCLAPI test_create_function( return TCL_ERROR; } if( getDbPointer(interp, argv[1], &db) ) return TCL_ERROR; - rc = sqlite3_create_function(db, "x_coalesce", -1, SQLITE_UTF8, 0, + rc = sqlite3_create_function(db, "x_coalesce", -1, SQLITE_UTF8, 0, t1_ifnullFunc, 0, 0); if( rc==SQLITE_OK ){ rc = sqlite3_create_function(db, "hex8", 1, SQLITE_UTF8 | SQLITE_DETERMINISTIC, @@ -1041,11 +1041,11 @@ static int SQLITE_TCLAPI test_create_function( } #endif if( rc==SQLITE_OK ){ - rc = sqlite3_create_function(db, "tkt2213func", 1, SQLITE_ANY, 0, + rc = sqlite3_create_function(db, "tkt2213func", 1, SQLITE_ANY, 0, tkt2213Function, 0, 0); } if( rc==SQLITE_OK ){ - rc = sqlite3_create_function(db, "pointer_change", 4, SQLITE_ANY, 0, + rc = sqlite3_create_function(db, "pointer_change", 4, SQLITE_ANY, 0, ptrChngFunction, 0, 0); } @@ -1063,7 +1063,7 @@ static int SQLITE_TCLAPI test_create_function( } #ifndef SQLITE_OMIT_UTF16 - /* Use the sqlite3_create_function16() API here. Mainly for fun, but also + /* Use the sqlite3_create_function16() API here. Mainly for fun, but also ** because it is not tested anywhere else. */ if( rc==SQLITE_OK ){ const void *zUtf16; @@ -1075,7 +1075,7 @@ static int SQLITE_TCLAPI test_create_function( if( db->mallocFailed ){ rc = SQLITE_NOMEM; }else{ - rc = sqlite3_create_function16(db, zUtf16, + rc = sqlite3_create_function16(db, zUtf16, 1, SQLITE_UTF16, db, sqlite3ExecFunc, 0, 0); } sqlite3ValueFree(pVal); @@ -1124,7 +1124,7 @@ static void t1CountStep( #endif } } -} +} static void t1CountFinalize(sqlite3_context *context){ t1CountCtx *p; p = sqlite3_aggregate_context(context, sizeof(*p)); @@ -1607,7 +1607,7 @@ static int SQLITE_TCLAPI test_table_column_metadata( if( strlen(zDb)==0 ) zDb = 0; - rc = sqlite3_table_column_metadata(db, zDb, zTbl, zCol, + rc = sqlite3_table_column_metadata(db, zDb, zTbl, zCol, &zDatatype, &zCollseq, ¬null, &primarykey, &autoincrement); if( rc!=SQLITE_OK ){ @@ -1629,7 +1629,7 @@ static int SQLITE_TCLAPI test_table_column_metadata( #ifndef SQLITE_OMIT_INCRBLOB static int SQLITE_TCLAPI blobHandleFromObj( - Tcl_Interp *interp, + Tcl_Interp *interp, Tcl_Obj *pObj, sqlite3_blob **ppBlob ){ @@ -1643,7 +1643,7 @@ static int SQLITE_TCLAPI blobHandleFromObj( int notUsed; Tcl_Channel channel; ClientData instanceData; - + channel = Tcl_GetChannel(interp, z, ¬Used); if( !channel ) return TCL_ERROR; @@ -1756,7 +1756,7 @@ static int SQLITE_TCLAPI test_create_collation_v2( Tcl_IncrRefCount(p->pCmp); Tcl_IncrRefCount(p->pDel); - rc = sqlite3_create_collation_v2(db, Tcl_GetString(objv[2]), 16, + rc = sqlite3_create_collation_v2(db, Tcl_GetString(objv[2]), 16, (void *)p, testCreateCollationCmp, testCreateCollationDel ); if( rc!=SQLITE_MISUSE ){ @@ -1764,7 +1764,7 @@ static int SQLITE_TCLAPI test_create_collation_v2( "an invalid encoding", (char*)0); return TCL_ERROR; } - rc = sqlite3_create_collation_v2(db, Tcl_GetString(objv[2]), SQLITE_UTF8, + rc = sqlite3_create_collation_v2(db, Tcl_GetString(objv[2]), SQLITE_UTF8, (void *)p, testCreateCollationCmp, testCreateCollationDel ); return TCL_OK; @@ -1802,10 +1802,10 @@ static void cf2Destroy(void *pUser){ if( rc!=TCL_OK ) Tcl_BackgroundError(p->interp); } - if( p->pFunc ) Tcl_DecrRefCount(p->pFunc); - if( p->pStep ) Tcl_DecrRefCount(p->pStep); - if( p->pFinal ) Tcl_DecrRefCount(p->pFinal); - if( p->pDestroy ) Tcl_DecrRefCount(p->pDestroy); + if( p->pFunc ) Tcl_DecrRefCount(p->pFunc); + if( p->pStep ) Tcl_DecrRefCount(p->pStep); + if( p->pFinal ) Tcl_DecrRefCount(p->pFinal); + if( p->pDestroy ) Tcl_DecrRefCount(p->pDestroy); sqlite3_free(p); } static int SQLITE_TCLAPI test_create_function_v2( @@ -1842,7 +1842,7 @@ static int SQLITE_TCLAPI test_create_function_v2( if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR; zFunc = Tcl_GetString(objv[2]); if( Tcl_GetIntFromObj(interp, objv[3], &nArg) ) return TCL_ERROR; - if( Tcl_GetIndexFromObjStruct(interp, objv[4], aEnc, sizeof(aEnc[0]), + if( Tcl_GetIndexFromObjStruct(interp, objv[4], aEnc, sizeof(aEnc[0]), "encoding", 0, &enc) ){ return TCL_ERROR; @@ -1869,17 +1869,17 @@ static int SQLITE_TCLAPI test_create_function_v2( case 3: p->pDestroy = objv[i+1]; break; } } - if( p->pFunc ) p->pFunc = Tcl_DuplicateObj(p->pFunc); - if( p->pStep ) p->pStep = Tcl_DuplicateObj(p->pStep); - if( p->pFinal ) p->pFinal = Tcl_DuplicateObj(p->pFinal); - if( p->pDestroy ) p->pDestroy = Tcl_DuplicateObj(p->pDestroy); + if( p->pFunc ) p->pFunc = Tcl_DuplicateObj(p->pFunc); + if( p->pStep ) p->pStep = Tcl_DuplicateObj(p->pStep); + if( p->pFinal ) p->pFinal = Tcl_DuplicateObj(p->pFinal); + if( p->pDestroy ) p->pDestroy = Tcl_DuplicateObj(p->pDestroy); - if( p->pFunc ) Tcl_IncrRefCount(p->pFunc); - if( p->pStep ) Tcl_IncrRefCount(p->pStep); - if( p->pFinal ) Tcl_IncrRefCount(p->pFinal); - if( p->pDestroy ) Tcl_IncrRefCount(p->pDestroy); + if( p->pFunc ) Tcl_IncrRefCount(p->pFunc); + if( p->pStep ) Tcl_IncrRefCount(p->pStep); + if( p->pFinal ) Tcl_IncrRefCount(p->pFinal); + if( p->pDestroy ) Tcl_IncrRefCount(p->pDestroy); - rc = sqlite3_create_function_v2(db, zFunc, nArg, enc, (void *)p, + rc = sqlite3_create_function_v2(db, zFunc, nArg, enc, (void *)p, (p->pFunc ? cf2Func : 0), (p->pStep ? cf2Step : 0), (p->pFinal ? cf2Final : 0), @@ -1928,8 +1928,8 @@ static int SQLITE_TCLAPI test_load_extension( db = ((struct SqliteDb*)cmdInfo.objClientData)->db; assert(db); - /* Call the underlying C function. If an error occurs, set rc to - ** TCL_ERROR and load any error string into the interpreter. If no + /* Call the underlying C function. If an error occurs, set rc to + ** TCL_ERROR and load any error string into the interpreter. If no ** error occurs, set rc to TCL_OK. */ #ifdef SQLITE_OMIT_LOAD_EXTENSION @@ -2068,12 +2068,12 @@ static int SQLITE_TCLAPI test_register_func( sqlite3 *db; int rc; if( argc!=3 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], + Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " DB FUNCTION-NAME", 0); return TCL_ERROR; } if( getDbPointer(interp, argv[1], &db) ) return TCL_ERROR; - rc = sqlite3_create_function(db, argv[2], -1, SQLITE_UTF8, 0, + rc = sqlite3_create_function(db, argv[2], -1, SQLITE_UTF8, 0, testFunc, 0, 0); if( rc!=0 ){ Tcl_AppendResult(interp, sqlite3ErrStr(rc), 0); @@ -2084,7 +2084,7 @@ static int SQLITE_TCLAPI test_register_func( } /* -** Usage: sqlite3_finalize STMT +** Usage: sqlite3_finalize STMT ** ** Finalize a statement handle. */ @@ -2139,6 +2139,9 @@ static int SQLITE_TCLAPI test_stmt_status( { "SQLITE_STMTSTATUS_SORT", SQLITE_STMTSTATUS_SORT }, { "SQLITE_STMTSTATUS_AUTOINDEX", SQLITE_STMTSTATUS_AUTOINDEX }, { "SQLITE_STMTSTATUS_VM_STEP", SQLITE_STMTSTATUS_VM_STEP }, + { "SQLITE_STMTSTATUS_REPREPARE", SQLITE_STMTSTATUS_REPREPARE }, + { "SQLITE_STMTSTATUS_RUN", SQLITE_STMTSTATUS_RUN }, + { "SQLITE_STMTSTATUS_MEMUSED", SQLITE_STMTSTATUS_MEMUSED }, }; if( objc!=4 ){ Tcl_WrongNumArgs(interp, 1, objv, "STMT PARAMETER RESETFLAG"); @@ -2447,7 +2450,7 @@ static int SQLITE_TCLAPI test_snapshot_get_blob( Tcl_SetObjResult(interp, Tcl_NewStringObj(sqlite3ErrName(rc), -1)); return TCL_ERROR; }else{ - Tcl_SetObjResult(interp, + Tcl_SetObjResult(interp, Tcl_NewByteArrayObj((unsigned char*)pSnapshot, sizeof(sqlite3_snapshot)) ); sqlite3_snapshot_free(pSnapshot); @@ -2662,7 +2665,7 @@ static int SQLITE_TCLAPI uses_stmt_journal( /* -** Usage: sqlite3_reset STMT +** Usage: sqlite3_reset STMT ** ** Reset a statement handle. */ @@ -2697,7 +2700,7 @@ static int SQLITE_TCLAPI test_reset( } /* -** Usage: sqlite3_expired STMT +** Usage: sqlite3_expired STMT ** ** Return TRUE if a recompilation of the statement is recommended. */ @@ -2740,7 +2743,7 @@ static int SQLITE_TCLAPI test_transfer_bind( } if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt1)) return TCL_ERROR; if( getStmtPointer(interp, Tcl_GetString(objv[2]), &pStmt2)) return TCL_ERROR; - Tcl_SetObjResult(interp, + Tcl_SetObjResult(interp, Tcl_NewIntObj(sqlite3_transfer_bindings(pStmt1,pStmt2))); #endif return TCL_OK; @@ -2797,7 +2800,7 @@ static int SQLITE_TCLAPI test_bind( int rc; int idx; if( argc!=5 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], + Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " VM IDX VALUE (null|static|normal)\"", 0); return TCL_ERROR; } @@ -2860,7 +2863,7 @@ static int SQLITE_TCLAPI test_bind( */ static Tcl_Interp* pTestCollateInterp; static int test_collate_func( - void *pCtx, + void *pCtx, int nA, const void *zA, int nB, const void *zB ){ @@ -2925,12 +2928,12 @@ static int SQLITE_TCLAPI test_collate( if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR; if( TCL_OK!=Tcl_GetBooleanFromObj(interp, objv[2], &val) ) return TCL_ERROR; - rc = sqlite3_create_collation(db, "test_collate", SQLITE_UTF8, + rc = sqlite3_create_collation(db, "test_collate", SQLITE_UTF8, (void *)SQLITE_UTF8, val?test_collate_func:0); if( rc==SQLITE_OK ){ const void *zUtf16; if( TCL_OK!=Tcl_GetBooleanFromObj(interp, objv[3], &val) ) return TCL_ERROR; - rc = sqlite3_create_collation(db, "test_collate", SQLITE_UTF16LE, + rc = sqlite3_create_collation(db, "test_collate", SQLITE_UTF16LE, (void *)SQLITE_UTF16LE, val?test_collate_func:0); if( TCL_OK!=Tcl_GetBooleanFromObj(interp, objv[4], &val) ) return TCL_ERROR; @@ -2946,14 +2949,14 @@ static int SQLITE_TCLAPI test_collate( if( db->mallocFailed ){ rc = SQLITE_NOMEM; }else{ - rc = sqlite3_create_collation16(db, zUtf16, SQLITE_UTF16BE, + rc = sqlite3_create_collation16(db, zUtf16, SQLITE_UTF16BE, (void *)SQLITE_UTF16BE, val?test_collate_func:0); } sqlite3ValueFree(pVal); sqlite3_mutex_leave(db->mutex); } if( sqlite3TestErrCode(interp, db, rc) ) return TCL_ERROR; - + if( rc!=SQLITE_OK ){ Tcl_AppendResult(interp, sqlite3ErrName(rc), 0); return TCL_ERROR; @@ -2974,7 +2977,7 @@ bad_args: ** built-in collation "binary". */ static int test_utf16bin_collate_func( - void *pCtx, + void *pCtx, int nA, const void *zA, int nB, const void *zB ){ @@ -2995,7 +2998,7 @@ static int SQLITE_TCLAPI test_utf16bin_collate( if( objc!=2 ) goto bad_args; if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR; - rc = sqlite3_create_collation(db, "utf16bin", SQLITE_UTF16, 0, + rc = sqlite3_create_collation(db, "utf16bin", SQLITE_UTF16, 0, test_utf16bin_collate_func ); if( sqlite3TestErrCode(interp, db, rc) ) return TCL_ERROR; @@ -3007,7 +3010,7 @@ bad_args: } /* -** When the collation needed callback is invoked, record the name of +** When the collation needed callback is invoked, record the name of ** the requested collating function here. The recorded name is linked ** to a TCL variable and used to make sure that the requested collation ** name is correct. @@ -3021,7 +3024,7 @@ static char *pzNeededCollation = zNeededCollation; ** sqlite3_collation_needed16(). */ static void test_collate_needed_cb( - void *pCtx, + void *pCtx, sqlite3 *db, int eTextRep, const void *pName @@ -3100,9 +3103,9 @@ static int SQLITE_TCLAPI add_alignment_test_collations( sqlite3 *db; if( objc>=2 ){ if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR; - sqlite3_create_collation(db, "utf16_unaligned", SQLITE_UTF16, + sqlite3_create_collation(db, "utf16_unaligned", SQLITE_UTF16, 0, alignmentCollFunc); - sqlite3_create_collation(db, "utf16_aligned", SQLITE_UTF16_ALIGNED, + sqlite3_create_collation(db, "utf16_aligned", SQLITE_UTF16_ALIGNED, 0, alignmentCollFunc); } return SQLITE_OK; @@ -3136,7 +3139,7 @@ static int SQLITE_TCLAPI add_alignment_test_collations( */ #ifndef SQLITE_OMIT_UTF16 static void test_function_utf8( - sqlite3_context *pCtx, + sqlite3_context *pCtx, int nArg, sqlite3_value **argv ){ @@ -3147,20 +3150,20 @@ static void test_function_utf8( pX = Tcl_NewStringObj("test_function", -1); Tcl_IncrRefCount(pX); Tcl_ListObjAppendElement(interp, pX, Tcl_NewStringObj("UTF-8", -1)); - Tcl_ListObjAppendElement(interp, pX, + Tcl_ListObjAppendElement(interp, pX, Tcl_NewStringObj((char*)sqlite3_value_text(argv[0]), -1)); Tcl_EvalObjEx(interp, pX, 0); Tcl_DecrRefCount(pX); sqlite3_result_text(pCtx, Tcl_GetStringResult(interp), -1, SQLITE_TRANSIENT); pVal = sqlite3ValueNew(0); - sqlite3ValueSetStr(pVal, -1, Tcl_GetStringResult(interp), + sqlite3ValueSetStr(pVal, -1, Tcl_GetStringResult(interp), SQLITE_UTF8, SQLITE_STATIC); sqlite3_result_text16be(pCtx, sqlite3_value_text16be(pVal), -1, SQLITE_TRANSIENT); sqlite3ValueFree(pVal); } static void test_function_utf16le( - sqlite3_context *pCtx, + sqlite3_context *pCtx, int nArg, sqlite3_value **argv ){ @@ -3171,18 +3174,18 @@ static void test_function_utf16le( pX = Tcl_NewStringObj("test_function", -1); Tcl_IncrRefCount(pX); Tcl_ListObjAppendElement(interp, pX, Tcl_NewStringObj("UTF-16LE", -1)); - Tcl_ListObjAppendElement(interp, pX, + Tcl_ListObjAppendElement(interp, pX, Tcl_NewStringObj((char*)sqlite3_value_text(argv[0]), -1)); Tcl_EvalObjEx(interp, pX, 0); Tcl_DecrRefCount(pX); pVal = sqlite3ValueNew(0); - sqlite3ValueSetStr(pVal, -1, Tcl_GetStringResult(interp), + sqlite3ValueSetStr(pVal, -1, Tcl_GetStringResult(interp), SQLITE_UTF8, SQLITE_STATIC); sqlite3_result_text(pCtx,(char*)sqlite3_value_text(pVal),-1,SQLITE_TRANSIENT); sqlite3ValueFree(pVal); } static void test_function_utf16be( - sqlite3_context *pCtx, + sqlite3_context *pCtx, int nArg, sqlite3_value **argv ){ @@ -3193,12 +3196,12 @@ static void test_function_utf16be( pX = Tcl_NewStringObj("test_function", -1); Tcl_IncrRefCount(pX); Tcl_ListObjAppendElement(interp, pX, Tcl_NewStringObj("UTF-16BE", -1)); - Tcl_ListObjAppendElement(interp, pX, + Tcl_ListObjAppendElement(interp, pX, Tcl_NewStringObj((char*)sqlite3_value_text(argv[0]), -1)); Tcl_EvalObjEx(interp, pX, 0); Tcl_DecrRefCount(pX); pVal = sqlite3ValueNew(0); - sqlite3ValueSetStr(pVal, -1, Tcl_GetStringResult(interp), + sqlite3ValueSetStr(pVal, -1, Tcl_GetStringResult(interp), SQLITE_UTF8, SQLITE_STATIC); sqlite3_result_text16(pCtx, sqlite3_value_text16le(pVal), -1, SQLITE_TRANSIENT); @@ -3224,17 +3227,17 @@ static int SQLITE_TCLAPI test_function( if( TCL_OK!=Tcl_GetBooleanFromObj(interp, objv[2], &val) ) return TCL_ERROR; if( val ){ - sqlite3_create_function(db, "test_function", 1, SQLITE_UTF8, + sqlite3_create_function(db, "test_function", 1, SQLITE_UTF8, interp, test_function_utf8, 0, 0); } if( TCL_OK!=Tcl_GetBooleanFromObj(interp, objv[3], &val) ) return TCL_ERROR; if( val ){ - sqlite3_create_function(db, "test_function", 1, SQLITE_UTF16LE, + sqlite3_create_function(db, "test_function", 1, SQLITE_UTF16LE, interp, test_function_utf16le, 0, 0); } if( TCL_OK!=Tcl_GetBooleanFromObj(interp, objv[4], &val) ) return TCL_ERROR; if( val ){ - sqlite3_create_function(db, "test_function", 1, SQLITE_UTF16BE, + sqlite3_create_function(db, "test_function", 1, SQLITE_UTF16BE, interp, test_function_utf16be, 0, 0); } @@ -3437,7 +3440,7 @@ static int SQLITE_TCLAPI test_intarray_addr( return TCL_ERROR; } } - } + } Tcl_SetObjResult(interp, Tcl_NewWideIntObj((sqlite3_int64)p)); return TCL_OK; } @@ -3473,7 +3476,7 @@ static int SQLITE_TCLAPI test_int64array_addr( } p[i] = v; } - } + } Tcl_SetObjResult(interp, Tcl_NewWideIntObj((sqlite3_int64)p)); return TCL_OK; } @@ -3507,7 +3510,7 @@ static int SQLITE_TCLAPI test_doublearray_addr( return TCL_ERROR; } } - } + } Tcl_SetObjResult(interp, Tcl_NewWideIntObj((sqlite3_int64)p)); return TCL_OK; } @@ -3883,7 +3886,7 @@ static int SQLITE_TCLAPI test_bind_parameter_name( } if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt) ) return TCL_ERROR; if( Tcl_GetIntFromObj(interp, objv[2], &i) ) return TCL_ERROR; - Tcl_SetObjResult(interp, + Tcl_SetObjResult(interp, Tcl_NewStringObj(sqlite3_bind_parameter_name(pStmt,i),-1) ); return TCL_OK; @@ -3908,7 +3911,7 @@ static int SQLITE_TCLAPI test_bind_parameter_index( return TCL_ERROR; } if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt) ) return TCL_ERROR; - Tcl_SetObjResult(interp, + Tcl_SetObjResult(interp, Tcl_NewIntObj( sqlite3_bind_parameter_index(pStmt,Tcl_GetString(objv[2])) ) @@ -3975,7 +3978,7 @@ static int SQLITE_TCLAPI test_ex_errcode( int rc; if( objc!=2 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " DB", 0); return TCL_ERROR; } @@ -4002,7 +4005,7 @@ static int SQLITE_TCLAPI test_errcode( int rc; if( objc!=2 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " DB", 0); return TCL_ERROR; } @@ -4028,7 +4031,7 @@ static int SQLITE_TCLAPI test_errmsg( const char *zErr; if( objc!=2 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " DB", 0); return TCL_ERROR; } @@ -4043,7 +4046,7 @@ static int SQLITE_TCLAPI test_errmsg( ** Usage: test_errmsg16 DB ** ** Returns the UTF-16 representation of the error message string for the -** most recent sqlite3_* API call. This is a byte array object at the TCL +** most recent sqlite3_* API call. This is a byte array object at the TCL ** level, and it includes the 0x00 0x00 terminator bytes at the end of the ** UTF-16 string. */ @@ -4060,7 +4063,7 @@ static int SQLITE_TCLAPI test_errmsg16( int bytes = 0; if( objc!=2 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " DB", 0); return TCL_ERROR; } @@ -4099,7 +4102,7 @@ static int SQLITE_TCLAPI test_prepare( int rc; if( objc!=5 && objc!=4 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " DB sql bytes ?tailvar?", 0); return TCL_ERROR; } @@ -4157,7 +4160,7 @@ static int SQLITE_TCLAPI test_prepare_v2( int rc; if( objc!=5 && objc!=4 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " DB sql bytes tailvar", 0); return TCL_ERROR; } @@ -4222,7 +4225,7 @@ static int SQLITE_TCLAPI test_prepare_tkt3134( int rc; if( objc!=2 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " DB sql bytes tailvar", 0); return TCL_ERROR; } @@ -4264,13 +4267,13 @@ static int SQLITE_TCLAPI test_prepare16( const void *zTail = 0; Tcl_Obj *pTail = 0; sqlite3_stmt *pStmt = 0; - char zBuf[50]; + char zBuf[50]; int rc; int bytes; /* The integer specified as arg 3 */ int objlen; /* The byte-array length of arg 2 */ if( objc!=5 && objc!=4 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " DB sql bytes ?tailvar?", 0); return TCL_ERROR; } @@ -4324,13 +4327,13 @@ static int SQLITE_TCLAPI test_prepare16_v2( const void *zTail = 0; Tcl_Obj *pTail = 0; sqlite3_stmt *pStmt = 0; - char zBuf[50]; + char zBuf[50]; int rc; int bytes; /* The integer specified as arg 3 */ int objlen; /* The byte-array length of arg 2 */ if( objc!=5 && objc!=4 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " DB sql bytes ?tailvar?", 0); return TCL_ERROR; } @@ -4378,14 +4381,14 @@ static int SQLITE_TCLAPI test_open( char zBuf[100]; if( objc!=3 && objc!=2 && objc!=1 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " filename options-list", 0); return TCL_ERROR; } zFilename = objc>1 ? Tcl_GetString(objv[1]) : 0; sqlite3_open(zFilename, &db); - + if( sqlite3TestMakePointerStr(interp, zBuf, db) ) return TCL_ERROR; Tcl_AppendResult(interp, zBuf, 0); return TCL_OK; @@ -4448,7 +4451,7 @@ static int SQLITE_TCLAPI test_open_v2( { "SQLITE_OPEN_URI", SQLITE_OPEN_URI }, { 0, 0 } }; - rc = Tcl_GetIndexFromObjStruct(interp, apFlag[i], aFlag, sizeof(aFlag[0]), + rc = Tcl_GetIndexFromObjStruct(interp, apFlag[i], aFlag, sizeof(aFlag[0]), "flag", 0, &iFlag ); if( rc!=TCL_OK ) return rc; @@ -4476,14 +4479,14 @@ static int SQLITE_TCLAPI test_open16( char zBuf[100]; if( objc!=3 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " filename options-list", 0); return TCL_ERROR; } zFilename = Tcl_GetByteArrayFromObj(objv[1], 0); sqlite3_open16(zFilename, &db); - + if( sqlite3TestMakePointerStr(interp, zBuf, db) ) return TCL_ERROR; Tcl_AppendResult(interp, zBuf, 0); #endif /* SQLITE_OMIT_UTF16 */ @@ -4531,7 +4534,7 @@ static int SQLITE_TCLAPI test_step( int rc; if( objc!=2 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " STMT", 0); return TCL_ERROR; } @@ -4583,7 +4586,7 @@ static int SQLITE_TCLAPI test_ex_sql( } /* -** Usage: sqlite3_column_count STMT +** Usage: sqlite3_column_count STMT ** ** Return the number of columns returned by the sql statement STMT. */ @@ -4596,7 +4599,7 @@ static int SQLITE_TCLAPI test_column_count( sqlite3_stmt *pStmt; if( objc!=2 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " STMT column", 0); return TCL_ERROR; } @@ -4623,7 +4626,7 @@ static int SQLITE_TCLAPI test_column_type( int tp; if( objc!=3 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " STMT column", 0); return TCL_ERROR; } @@ -4633,20 +4636,20 @@ static int SQLITE_TCLAPI test_column_type( tp = sqlite3_column_type(pStmt, col); switch( tp ){ - case SQLITE_INTEGER: - Tcl_SetResult(interp, "INTEGER", TCL_STATIC); + case SQLITE_INTEGER: + Tcl_SetResult(interp, "INTEGER", TCL_STATIC); break; case SQLITE_NULL: - Tcl_SetResult(interp, "NULL", TCL_STATIC); + Tcl_SetResult(interp, "NULL", TCL_STATIC); break; case SQLITE_FLOAT: - Tcl_SetResult(interp, "FLOAT", TCL_STATIC); + Tcl_SetResult(interp, "FLOAT", TCL_STATIC); break; case SQLITE_TEXT: - Tcl_SetResult(interp, "TEXT", TCL_STATIC); + Tcl_SetResult(interp, "TEXT", TCL_STATIC); break; case SQLITE_BLOB: - Tcl_SetResult(interp, "BLOB", TCL_STATIC); + Tcl_SetResult(interp, "BLOB", TCL_STATIC); break; default: assert(0); @@ -4672,7 +4675,7 @@ static int SQLITE_TCLAPI test_column_int64( i64 iVal; if( objc!=3 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " STMT column", 0); return TCL_ERROR; } @@ -4701,7 +4704,7 @@ static int SQLITE_TCLAPI test_column_blob( const void *pBlob; if( objc!=3 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " STMT column", 0); return TCL_ERROR; } @@ -4731,7 +4734,7 @@ static int SQLITE_TCLAPI test_column_double( double rVal; if( objc!=3 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " STMT column", 0); return TCL_ERROR; } @@ -4745,7 +4748,7 @@ static int SQLITE_TCLAPI test_column_double( } /* -** Usage: sqlite3_data_count STMT +** Usage: sqlite3_data_count STMT ** ** Return the number of columns returned by the sql statement STMT. */ @@ -4758,7 +4761,7 @@ static int SQLITE_TCLAPI test_data_count( sqlite3_stmt *pStmt; if( objc!=2 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " STMT column", 0); return TCL_ERROR; } @@ -4789,7 +4792,7 @@ static int SQLITE_TCLAPI test_stmt_utf8( xFunc = (const char *(*)(sqlite3_stmt*, int))clientData; if( objc!=3 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " STMT column", 0); return TCL_ERROR; } @@ -4843,7 +4846,7 @@ static int SQLITE_TCLAPI test_stmt_utf16( xFunc = (const void *(*)(sqlite3_stmt*, int))clientData; if( objc!=3 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " STMT column", 0); return TCL_ERROR; } @@ -4884,7 +4887,7 @@ static int SQLITE_TCLAPI test_stmt_int( xFunc = (int (*)(sqlite3_stmt*, int))clientData; if( objc!=3 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", + Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetString(objv[0]), " STMT column", 0); return TCL_ERROR; } @@ -4929,7 +4932,7 @@ static int SQLITE_TCLAPI sqlite_set_magic( } /* -** Usage: sqlite3_interrupt DB +** Usage: sqlite3_interrupt DB ** ** Trigger an interrupt on DB */ @@ -4949,52 +4952,6 @@ static int SQLITE_TCLAPI test_interrupt( return TCL_OK; } -static u8 *sqlite3_stack_baseline = 0; - -/* -** Fill the stack with a known bitpattern. -*/ -static void prepStack(void){ - int i; - u32 bigBuf[65536]; - for(i=0; i<sizeof(bigBuf)/sizeof(bigBuf[0]); i++) bigBuf[i] = 0xdeadbeef; - sqlite3_stack_baseline = (u8*)&bigBuf[65536]; -} - -/* -** Get the current stack depth. Used for debugging only. -*/ -u64 sqlite3StackDepth(void){ - u8 x; - return (u64)(sqlite3_stack_baseline - &x); -} - -/* -** Usage: sqlite3_stack_used DB SQL -** -** Try to measure the amount of stack space used by a call to sqlite3_exec -*/ -static int SQLITE_TCLAPI test_stack_used( - void * clientData, - Tcl_Interp *interp, - int argc, - char **argv -){ - sqlite3 *db; - int i; - if( argc!=3 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], - " DB SQL", 0); - return TCL_ERROR; - } - if( getDbPointer(interp, argv[1], &db) ) return TCL_ERROR; - prepStack(); - (void)sqlite3_exec(db, argv[2], 0, 0, 0); - for(i=65535; i>=0 && ((u32*)sqlite3_stack_baseline)[-i]==0xdeadbeef; i--){} - Tcl_SetObjResult(interp, Tcl_NewIntObj(i*4)); - return TCL_OK; -} - /* ** Usage: sqlite_delete_function DB function-name ** @@ -5011,7 +4968,7 @@ static int SQLITE_TCLAPI delete_function( int rc; sqlite3 *db; if( argc!=3 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], + Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " DB function-name", 0); return TCL_ERROR; } @@ -5024,8 +4981,8 @@ static int SQLITE_TCLAPI delete_function( /* ** Usage: sqlite_delete_collation DB collation-name ** -** Delete the collation sequence 'collation-name' from database handle -** DB. It is assumed that the collation sequence was created as UTF8 (the +** Delete the collation sequence 'collation-name' from database handle +** DB. It is assumed that the collation sequence was created as UTF8 (the ** way the TCL interface does it). */ static int SQLITE_TCLAPI delete_collation( @@ -5037,7 +4994,7 @@ static int SQLITE_TCLAPI delete_collation( int rc; sqlite3 *db; if( argc!=3 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], + Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " DB function-name", 0); return TCL_ERROR; } @@ -5062,7 +5019,7 @@ static int SQLITE_TCLAPI get_autocommit( char zBuf[30]; sqlite3 *db; if( argc!=2 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], + Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " DB", 0); return TCL_ERROR; } @@ -5088,7 +5045,7 @@ static int SQLITE_TCLAPI test_busy_timeout( int rc, ms; sqlite3 *db; if( argc!=3 ){ - Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], + Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0], " DB", 0); return TCL_ERROR; } @@ -5128,7 +5085,7 @@ static int SQLITE_TCLAPI tcl_variable_type( ** Usage: sqlite3_release_memory ?N? ** ** Attempt to release memory currently held but not actually required. -** The integer N is the number of bytes we are trying to release. The +** The integer N is the number of bytes we are trying to release. The ** return value is the amount of memory actually released. */ static int SQLITE_TCLAPI test_release_memory( @@ -5396,7 +5353,7 @@ static int SQLITE_TCLAPI working_64bit_int( ** ** This TCL command unregisters the primary VFS and then registers ** it back again. This is used to test the ability to register a -** VFS when none are previously registered, and the ability to +** VFS when none are previously registered, and the ability to ** unregister the only available VFS. Ticket #2738 */ static int SQLITE_TCLAPI vfs_unlink_test( @@ -5445,7 +5402,7 @@ static int SQLITE_TCLAPI vfs_unlink_test( assert( sqlite3_vfs_find("__two")==&two ); assert( sqlite3_vfs_find(0)==pMain ); } - + /* Unlink the default VFS. Repeat until there are no more VFSes ** registered. */ @@ -5458,18 +5415,18 @@ static int SQLITE_TCLAPI vfs_unlink_test( } } assert( 0==sqlite3_vfs_find(0) ); - + /* Register the main VFS as non-default (will be made default, since ** it'll be the only one in existence). */ sqlite3_vfs_register(pMain, 0); assert( sqlite3_vfs_find(0)==pMain ); - + /* Un-register the main VFS again to restore an empty VFS list */ sqlite3_vfs_unregister(pMain); assert( 0==sqlite3_vfs_find(0) ); - /* Relink all VFSes in reverse order. */ + /* Relink all VFSes in reverse order. */ for(i=sizeof(apVfs)/sizeof(apVfs[0])-1; i>=0; i--){ if( apVfs[i] ){ sqlite3_vfs_register(apVfs[i], 1); @@ -5625,16 +5582,16 @@ static int SQLITE_TCLAPI file_control_lasterrno_test( return TCL_ERROR; } rc = sqlite3_file_control(db, NULL, SQLITE_LAST_ERRNO, &iArg); - if( rc ){ - Tcl_SetObjResult(interp, Tcl_NewIntObj(rc)); - return TCL_ERROR; + if( rc ){ + Tcl_SetObjResult(interp, Tcl_NewIntObj(rc)); + return TCL_ERROR; } if( iArg!=0 ) { Tcl_AppendResult(interp, "Unexpected non-zero errno: ", Tcl_GetStringFromObj(Tcl_NewIntObj(iArg), 0), " ", 0); return TCL_ERROR; } - return TCL_OK; + return TCL_OK; } /* @@ -5659,7 +5616,7 @@ static int SQLITE_TCLAPI file_control_chunksize_test( Tcl_WrongNumArgs(interp, 1, objv, "DB DBNAME SIZE"); return TCL_ERROR; } - if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) + if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) || Tcl_GetIntFromObj(interp, objv[3], &nSize) ){ return TCL_ERROR; @@ -5678,7 +5635,7 @@ static int SQLITE_TCLAPI file_control_chunksize_test( /* ** tclcmd: file_control_sizehint_test DB DBNAME SIZE ** -** This TCL command runs the sqlite3_file_control interface +** This TCL command runs the sqlite3_file_control interface ** with SQLITE_FCNTL_SIZE_HINT */ static int SQLITE_TCLAPI file_control_sizehint_test( @@ -5696,7 +5653,7 @@ static int SQLITE_TCLAPI file_control_sizehint_test( Tcl_WrongNumArgs(interp, 1, objv, "DB DBNAME SIZE"); return TCL_ERROR; } - if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) + if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) || Tcl_GetWideIntFromObj(interp, objv[3], &nSize) ){ return TCL_ERROR; @@ -5726,7 +5683,7 @@ static int SQLITE_TCLAPI file_control_lockproxy_test( Tcl_Obj *CONST objv[] /* Command arguments */ ){ sqlite3 *db; - + if( objc!=3 ){ Tcl_AppendResult(interp, "wrong # args: should be \"", Tcl_GetStringFromObj(objv[0], 0), " DB PWD", 0); @@ -5735,7 +5692,7 @@ static int SQLITE_TCLAPI file_control_lockproxy_test( if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ){ return TCL_ERROR; } - + #if !defined(SQLITE_ENABLE_LOCKING_STYLE) # if defined(__APPLE__) # define SQLITE_ENABLE_LOCKING_STYLE 1 @@ -5750,7 +5707,7 @@ static int SQLITE_TCLAPI file_control_lockproxy_test( int nPwd; const char *zPwd; char proxyPath[400]; - + zPwd = Tcl_GetStringFromObj(objv[2], &nPwd); if( sizeof(proxyPath)<nPwd+20 ){ Tcl_AppendResult(interp, "PWD too big", (void*)0); @@ -5759,7 +5716,7 @@ static int SQLITE_TCLAPI file_control_lockproxy_test( sqlite3_snprintf(sizeof(proxyPath), proxyPath, "%s/test.proxy", zPwd); rc = sqlite3_file_control(db, NULL, SQLITE_SET_LOCKPROXYFILE, proxyPath); if( rc ){ - Tcl_SetObjResult(interp, Tcl_NewIntObj(rc)); + Tcl_SetObjResult(interp, Tcl_NewIntObj(rc)); return TCL_ERROR; } rc = sqlite3_file_control(db, NULL, SQLITE_GET_LOCKPROXYFILE, &testPath); @@ -5779,7 +5736,7 @@ static int SQLITE_TCLAPI file_control_lockproxy_test( } } #endif - return TCL_OK; + return TCL_OK; } #if SQLITE_OS_WIN @@ -5813,7 +5770,7 @@ static int SQLITE_TCLAPI file_control_win32_av_retry( rc = sqlite3_file_control(db, NULL, SQLITE_FCNTL_WIN32_AV_RETRY, (void*)a); sqlite3_snprintf(sizeof(z), z, "%d %d %d", rc, a[0], a[1]); Tcl_AppendResult(interp, z, (char*)0); - return TCL_OK; + return TCL_OK; } /* @@ -5880,7 +5837,7 @@ static int SQLITE_TCLAPI file_control_win32_set_handle( (void*)&hFile); sqlite3_snprintf(sizeof(z), z, "%d %p", rc, (void*)hFile); Tcl_AppendResult(interp, z, (char*)0); - return TCL_OK; + return TCL_OK; } #endif @@ -5913,7 +5870,7 @@ static int SQLITE_TCLAPI file_control_persist_wal( rc = sqlite3_file_control(db, NULL, SQLITE_FCNTL_PERSIST_WAL, (void*)&bPersist); sqlite3_snprintf(sizeof(z), z, "%d %d", rc, bPersist); Tcl_AppendResult(interp, z, (char*)0); - return TCL_OK; + return TCL_OK; } /* @@ -5945,7 +5902,7 @@ static int SQLITE_TCLAPI file_control_powersafe_overwrite( rc = sqlite3_file_control(db,NULL,SQLITE_FCNTL_POWERSAFE_OVERWRITE,(void*)&b); sqlite3_snprintf(sizeof(z), z, "%d %d", rc, b); Tcl_AppendResult(interp, z, (char*)0); - return TCL_OK; + return TCL_OK; } @@ -5978,7 +5935,7 @@ static int SQLITE_TCLAPI file_control_vfsname( sqlite3_file_control(db, zDbName, SQLITE_FCNTL_VFSNAME,(void*)&zVfsName); Tcl_AppendResult(interp, zVfsName, (char*)0); sqlite3_free(zVfsName); - return TCL_OK; + return TCL_OK; } /* @@ -6010,7 +5967,7 @@ static int SQLITE_TCLAPI file_control_tempfilename( sqlite3_file_control(db, zDbName, SQLITE_FCNTL_TEMPFILENAME, (void*)&zTName); Tcl_AppendResult(interp, zTName, (char*)0); sqlite3_free(zTName); - return TCL_OK; + return TCL_OK; } @@ -6035,7 +5992,7 @@ static int SQLITE_TCLAPI vfs_list( Tcl_ListObjAppendElement(interp, pRet, Tcl_NewStringObj(pVfs->zName, -1)); } Tcl_SetObjResult(interp, pRet); - return TCL_OK; + return TCL_OK; } /* @@ -6068,7 +6025,7 @@ static int SQLITE_TCLAPI test_limit( { "SQLITE_LIMIT_VARIABLE_NUMBER", SQLITE_LIMIT_VARIABLE_NUMBER }, { "SQLITE_LIMIT_TRIGGER_DEPTH", SQLITE_LIMIT_TRIGGER_DEPTH }, { "SQLITE_LIMIT_WORKER_THREADS", SQLITE_LIMIT_WORKER_THREADS }, - + /* Out of range test cases */ { "SQLITE_LIMIT_TOOSMALL", -1, }, { "SQLITE_LIMIT_TOOBIG", SQLITE_LIMIT_WORKER_THREADS+1 }, @@ -6097,7 +6054,7 @@ static int SQLITE_TCLAPI test_limit( if( Tcl_GetIntFromObj(interp, objv[3], &val) ) return TCL_ERROR; rc = sqlite3_limit(db, id, val); Tcl_SetObjResult(interp, Tcl_NewIntObj(rc)); - return TCL_OK; + return TCL_OK; } /* @@ -6322,7 +6279,7 @@ static int SQLITE_TCLAPI test_wal_checkpoint_v2( } if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) || ( TCL_OK!=Tcl_GetIntFromObj(0, objv[2], &eMode) - && TCL_OK!=Tcl_GetIndexFromObj(interp, objv[2], aMode, "mode", 0, &eMode) + && TCL_OK!=Tcl_GetIndexFromObj(interp, objv[2], aMode, "mode", 0, &eMode) )){ return TCL_ERROR; } @@ -6363,7 +6320,7 @@ static int SQLITE_TCLAPI test_wal_autocheckpoint( return TCL_ERROR; } - if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) + if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) || Tcl_GetIntFromObj(0, objv[2], &iVal) ){ return TCL_ERROR; @@ -6507,7 +6464,7 @@ static int SQLITE_TCLAPI test_print_eqp( } if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt) ) return TCL_ERROR; rc = printExplainQueryPlan(pStmt); - /* This is needed on Windows so that a test case using this + /* This is needed on Windows so that a test case using this ** function can open a read pipe and get the output of ** printExplainQueryPlan() immediately. */ @@ -6530,8 +6487,8 @@ static int SQLITE_TCLAPI test_test_control( const char *zName; int i; } aVerb[] = { - { "SQLITE_TESTCTRL_LOCALTIME_FAULT", SQLITE_TESTCTRL_LOCALTIME_FAULT }, - { "SQLITE_TESTCTRL_SORTER_MMAP", SQLITE_TESTCTRL_SORTER_MMAP }, + { "SQLITE_TESTCTRL_LOCALTIME_FAULT", SQLITE_TESTCTRL_LOCALTIME_FAULT }, + { "SQLITE_TESTCTRL_SORTER_MMAP", SQLITE_TESTCTRL_SORTER_MMAP }, { "SQLITE_TESTCTRL_IMPOSTER", SQLITE_TESTCTRL_IMPOSTER }, }; int iVerb; @@ -6611,9 +6568,9 @@ static int SQLITE_TCLAPI test_getrusage( getrusage(RUSAGE_SELF, &r); sqlite3_snprintf(sizeof(buf), buf, - "ru_utime=%d.%06d ru_stime=%d.%06d ru_minflt=%d ru_majflt=%d", - (int)r.ru_utime.tv_sec, (int)r.ru_utime.tv_usec, - (int)r.ru_stime.tv_sec, (int)r.ru_stime.tv_usec, + "ru_utime=%d.%06d ru_stime=%d.%06d ru_minflt=%d ru_majflt=%d", + (int)r.ru_utime.tv_sec, (int)r.ru_utime.tv_usec, + (int)r.ru_stime.tv_sec, (int)r.ru_stime.tv_usec, (int)r.ru_minflt, (int)r.ru_majflt ); Tcl_SetObjResult(interp, Tcl_NewStringObj(buf, -1)); @@ -6685,7 +6642,7 @@ static int SQLITE_TCLAPI win32_file_lock( int retry = 0; HANDLE ev; DWORD wResult; - + if( objc!=4 && objc!=1 ){ Tcl_WrongNumArgs(interp, 1, objv, "FILENAME DELAY1 DELAY2"); return TCL_ERROR; @@ -6963,6 +6920,7 @@ static int SQLITE_TCLAPI tclLoadStaticExtensionCmd( extern int sqlite3_spellfix_init(sqlite3*,char**,const sqlite3_api_routines*); extern int sqlite3_totype_init(sqlite3*,char**,const sqlite3_api_routines*); extern int sqlite3_wholenumber_init(sqlite3*,char**,const sqlite3_api_routines*); + extern int sqlite3_unionvtab_init(sqlite3*,char**,const sqlite3_api_routines*); static const struct { const char *zExtName; int (*pInit)(sqlite3*,char**,const sqlite3_api_routines*); @@ -6982,6 +6940,7 @@ static int SQLITE_TCLAPI tclLoadStaticExtensionCmd( { "series", sqlite3_series_init }, { "spellfix", sqlite3_spellfix_init }, { "totype", sqlite3_totype_init }, + { "unionvtab", sqlite3_unionvtab_init }, { "wholenumber", sqlite3_wholenumber_init }, }; sqlite3 *db; @@ -7054,7 +7013,7 @@ static int SQLITE_TCLAPI sorter_test_fakeheap( /* ** sorter_test_sort4_helper DB SQL1 NSTEP SQL2 ** -** Compile SQL statement $SQL1 and step it $NSTEP times. For each row, +** Compile SQL statement $SQL1 and step it $NSTEP times. For each row, ** check that the leftmost and rightmost columns returned are both integers, ** and that both contain the same value. ** @@ -7069,15 +7028,15 @@ static int SQLITE_TCLAPI sorter_test_sort4_helper( ){ const char *zSql1; const char *zSql2; - int nStep; - int iStep; - unsigned int iCksum1 = 0; - unsigned int iCksum2 = 0; + int nStep; + int iStep; + unsigned int iCksum1 = 0; + unsigned int iCksum2 = 0; int rc; int iB; sqlite3 *db; sqlite3_stmt *pStmt; - + if( objc!=5 ){ Tcl_WrongNumArgs(interp, 1, objv, "DB SQL1 NSTEP SQL2"); return TCL_ERROR; @@ -7307,7 +7266,7 @@ static int SQLITE_TCLAPI test_bad_behavior( } } return TCL_OK; -} +} /* ** tclcmd: register_dbstat_vtab DB @@ -7363,6 +7322,7 @@ static int SQLITE_TCLAPI test_sqlite3_db_config( { "FTS3_TOKENIZER", SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER }, { "LOAD_EXTENSION", SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION }, { "NO_CKPT_ON_CLOSE",SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE }, + { "QPSG", SQLITE_DBCONFIG_ENABLE_QPSG }, }; int i; int v; @@ -7473,7 +7433,6 @@ int Sqlitetest1_Init(Tcl_Interp *interp){ { "sqlite_delete_function", (Tcl_CmdProc*)delete_function }, { "sqlite_delete_collation", (Tcl_CmdProc*)delete_collation }, { "sqlite3_get_autocommit", (Tcl_CmdProc*)get_autocommit }, - { "sqlite3_stack_used", (Tcl_CmdProc*)test_stack_used }, { "sqlite3_busy_timeout", (Tcl_CmdProc*)test_busy_timeout }, { "printf", (Tcl_CmdProc*)test_printf }, { "sqlite3IoTrace", (Tcl_CmdProc*)test_io_trace }, @@ -7715,27 +7674,27 @@ int Sqlitetest1_Init(Tcl_Interp *interp){ Tcl_CreateCommand(interp, aCmd[i].zName, aCmd[i].xProc, 0, 0); } for(i=0; i<sizeof(aObjCmd)/sizeof(aObjCmd[0]); i++){ - Tcl_CreateObjCommand(interp, aObjCmd[i].zName, + Tcl_CreateObjCommand(interp, aObjCmd[i].zName, aObjCmd[i].xProc, aObjCmd[i].clientData, 0); } - Tcl_LinkVar(interp, "sqlite_search_count", + Tcl_LinkVar(interp, "sqlite_search_count", (char*)&sqlite3_search_count, TCL_LINK_INT); - Tcl_LinkVar(interp, "sqlite_found_count", + Tcl_LinkVar(interp, "sqlite_found_count", (char*)&sqlite3_found_count, TCL_LINK_INT); - Tcl_LinkVar(interp, "sqlite_sort_count", + Tcl_LinkVar(interp, "sqlite_sort_count", (char*)&sqlite3_sort_count, TCL_LINK_INT); - Tcl_LinkVar(interp, "sqlite3_max_blobsize", + Tcl_LinkVar(interp, "sqlite3_max_blobsize", (char*)&sqlite3_max_blobsize, TCL_LINK_INT); - Tcl_LinkVar(interp, "sqlite_like_count", + Tcl_LinkVar(interp, "sqlite_like_count", (char*)&sqlite3_like_count, TCL_LINK_INT); - Tcl_LinkVar(interp, "sqlite_interrupt_count", + Tcl_LinkVar(interp, "sqlite_interrupt_count", (char*)&sqlite3_interrupt_count, TCL_LINK_INT); - Tcl_LinkVar(interp, "sqlite_open_file_count", + Tcl_LinkVar(interp, "sqlite_open_file_count", (char*)&sqlite3_open_file_count, TCL_LINK_INT); - Tcl_LinkVar(interp, "sqlite_current_time", + Tcl_LinkVar(interp, "sqlite_current_time", (char*)&sqlite3_current_time, TCL_LINK_INT); #if SQLITE_OS_UNIX && defined(__APPLE__) && SQLITE_ENABLE_LOCKING_STYLE - Tcl_LinkVar(interp, "sqlite_hostid_num", + Tcl_LinkVar(interp, "sqlite_hostid_num", (char*)&sqlite3_hostid_num, TCL_LINK_INT); #endif Tcl_LinkVar(interp, "sqlite3_xferopt_count", |