]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Modify the Tcl test command 'sqlite3_bind_blob' to make use of the Tcl_GetByteArrayFr...
authormistachkin <mistachkin@noemail.net>
Fri, 15 Jul 2016 01:49:25 +0000 (01:49 +0000)
committermistachkin <mistachkin@noemail.net>
Fri, 15 Jul 2016 01:49:25 +0000 (01:49 +0000)
FossilOrigin-Name: e03c81895e52096ab055d8231841e9070602ca84

manifest
manifest.uuid
src/test1.c
test/trace3.test

index 72176f68e4ba926267e2ddd65a817b4fe90d36de..42028828b37f538d9d07d467f84c3a35c356bf9a 100644 (file)
--- 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
index 8fa3e9fe974b7d4addf5854877b75f5459062ae2..4fc1c619aa61952347e779e53a4bb9edcee44f1e 100644 (file)
@@ -1 +1 @@
-97ccf15fb7e5103c8317d06a1985ba9c88544a60
\ No newline at end of file
+e03c81895e52096ab055d8231841e9070602ca84
\ No newline at end of file
index a1fdcb5cfb144ffac127f26194b9ef874c4f07d0..11cd17e722ae3ac23ff912923686aa88a27e9eaf 100644 (file)
@@ -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 ){
index 1149bea3f2355a831cf5ffa6324f22d6e2bd5a6d..0809759d80e2b508a101e0c688fb03b2dc3d6d01 100644 (file)
@@ -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