From: mistachkin Date: Fri, 15 Jul 2016 01:49:25 +0000 (+0000) Subject: Modify the Tcl test command 'sqlite3_bind_blob' to make use of the Tcl_GetByteArrayFr... X-Git-Tag: version-3.14.0~57^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=de6fde6af69f9ea2cc0e3a0180cf97a48a0dcb03;p=thirdparty%2Fsqlite.git Modify the Tcl test command 'sqlite3_bind_blob' to make use of the Tcl_GetByteArrayFromObj() API. FossilOrigin-Name: e03c81895e52096ab055d8231841e9070602ca84 --- diff --git a/manifest b/manifest index 72176f68e4..42028828b3 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Fix\stypo\sin\ssqlite3_trace_v2(). -D 2016-07-15T00:39:47.683 +C Modify\sthe\sTcl\stest\scommand\s'sqlite3_bind_blob'\sto\smake\suse\sof\sthe\sTcl_GetByteArrayFromObj()\sAPI. +D 2016-07-15T01:49:25.642 F Makefile.in 6c20d44f72d4564f11652b26291a214c8367e5db F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc d66d0395c38571aab3804f8db0fa20707ae4609a @@ -393,7 +393,7 @@ F src/sqliteLimit.h c0373387c287c8d0932510b5547ecde31b5da247 F src/status.c 5b18f9526900f61189ab0b83f1ef41d9f871a2ab F src/table.c 5226df15ab9179b9ed558d89575ea0ce37b03fc9 F src/tclsqlite.c 573e63c959b314d77486f3565fa79c60cda3df7e -F src/test1.c 5124aff86fba753a6994e9621696ccfdc8bbf24e +F src/test1.c 4bdfccf93a33453b427fb01cf12dfe26a5dd2cbc F src/test2.c 5586f43fcd9a1be0830793cf9d354082c261b25b F src/test3.c c75c8af0eadb335236c9e61b51044c58a8f7dd59 F src/test4.c d168f83cc78d02e8d35567bb5630e40dcd85ac1e @@ -1285,7 +1285,7 @@ F test/tokenize.test ce430a7aed48fc98301611429595883fdfcab5d7 F test/tpch01.test 04adbf8d8300fa60a222f28d901abd76e7be6dd4 F test/trace.test 6f676313e3ebd2a50585036d2f212a3319dd5836 F test/trace2.test f5cb67ad3bc09e0c58e8cca78dfd0b5639259983 -F test/trace3.test 7d174e42aab63f528a0d04ea1ddf3b49497a9cf5 +F test/trace3.test 01e4111d582c7b20ab1c63156169157d256bc3d5 F test/trans.test 6e1b4c6a42dba31bd65f8fa5e61a2708e08ddde6 F test/trans2.test 62bd045bfc7a1c14c5ba83ba64d21ade31583f76 F test/trans3.test 91a100e5412b488e22a655fe423a14c26403ab94 @@ -1506,7 +1506,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 20e74c638537aa207de41a4f3c932cc05024ea9a -R 6a6c93d9b0435cebe88086cbb6537465 +P 97ccf15fb7e5103c8317d06a1985ba9c88544a60 +R 23f12c56d57425cd5e6978d10e653771 U mistachkin -Z 470459b5b02059a7c191e033bd2eea7f +Z ce44a3acd6ed0a8254df88a4b23a0c52 diff --git a/manifest.uuid b/manifest.uuid index 8fa3e9fe97..4fc1c619aa 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -97ccf15fb7e5103c8317d06a1985ba9c88544a60 \ No newline at end of file +e03c81895e52096ab055d8231841e9070602ca84 \ No newline at end of file diff --git a/src/test1.c b/src/test1.c index a1fdcb5cfb..11cd17e722 100644 --- a/src/test1.c +++ b/src/test1.c @@ -3633,7 +3633,7 @@ static int test_bind_blob( Tcl_Obj *CONST objv[] ){ sqlite3_stmt *pStmt; - int idx; + int len, idx; int bytes; char *value; int rc; @@ -3652,9 +3652,18 @@ static int test_bind_blob( if( getStmtPointer(interp, Tcl_GetString(objv[1]), &pStmt) ) return TCL_ERROR; if( Tcl_GetIntFromObj(interp, objv[2], &idx) ) return TCL_ERROR; - value = Tcl_GetString(objv[3]); + + value = Tcl_GetByteArrayFromObj(objv[3], &len); if( Tcl_GetIntFromObj(interp, objv[4], &bytes) ) return TCL_ERROR; + if( bytes>len ){ + char zBuf[200]; + sqlite3_snprintf(sizeof(zBuf), zBuf, + "cannot use %d blob bytes, have %d", bytes, len); + Tcl_AppendResult(interp, zBuf, -1); + return TCL_ERROR; + } + rc = sqlite3_bind_blob(pStmt, idx, value, bytes, xDestructor); if( sqlite3TestErrCode(interp, StmtToDb(pStmt), rc) ) return TCL_ERROR; if( rc!=SQLITE_OK ){ diff --git a/test/trace3.test b/test/trace3.test index 1149bea3f2..0809759d80 100644 --- a/test/trace3.test +++ b/test/trace3.test @@ -192,6 +192,10 @@ do_test trace3-8.8 { list [sqlite3_bind_blob $STMT 1 "\x12\x34\x56" 3] \ [sqlite3_expanded_sql $STMT] } {{} {SELECT a, b FROM t1 WHERE b = x'123456' ORDER BY a;}} +do_test trace3-8.9 { + list [sqlite3_bind_blob $STMT 1 "\xAB\xCD\xEF" 3] \ + [sqlite3_expanded_sql $STMT] +} {{} {SELECT a, b FROM t1 WHERE b = x'abcdef' ORDER BY a;}} do_test trace3-9.1 { sqlite3_finalize $STMT