-C Attempt\sto\sreduce\sdivergence\swith\sbegin-concurrent.
-D 2024-11-18T16:44:26.814
+C Attempt\sto\sreduce\sdivergence\swith\sthe\swal2\sbranch.
+D 2024-11-18T17:05:45.350
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md e108e1e69ae8e8a59e93c455654b8ac9356a11720d3345df2a4743e9590fb20d
F src/test_devsym.c 649434ed34d0b03fbd5a6b42df80f0f9a7e53f94dd1710aad5dd8831e91c4e86
F src/test_fs.c c411c40baba679536fc34e2679349f59d8225570aed3488b5b3ef1908525a3d5
F src/test_func.c 8c0e89192f70fac307822d1ac2911ee51751288780b3db0c5ab5ca75fa0fe851
-F src/test_hexio.c 0f777bf9fbb2684bb4978372bacc90ef7337d5d9e3cebe067a9409941e88bacf
+F src/test_hexio.c 7449504e4bde876ba91b202617a9228c7c8c2e7bd8b957302f3803ac0e9e353c
F src/test_init.c 17313332d58e90defc527129d5eda4a08bd6b6e8de7207a231523c8d98fb445e
F src/test_intarray.c e4216aadee9df2de7d1aee7e70f6b22c80ee79ece72a63d57105db74217639e5
F src/test_intarray.h 6c3534641108cd1bea517a8e117dcba237081310a29a4c35bd2190caa8972293
F test/savepoint2.test 9b8543940572a2f01a18298c3135ad0c9f4f67d7
F test/savepoint4.test c8f8159ade6d2acd9128be61e1230f1c1edc6cc0
F test/savepoint5.test 0735db177e0ebbaedc39812c8d065075d563c4fd
-F test/savepoint6.test f41279c5e137139fa5c21485773332c7adb98cd7
+F test/savepoint6.test 48a645a7bb3a59a6fcf06a7364cfe5b655c336760de39068f7c241b0fc80d963
F test/savepoint7.test cde525ea3075283eb950cdcdefe23ead4f700daa
F test/savepointfault.test f044eac64b59f09746c7020ee261734de82bf9b2
F test/scanstatus.test b249328caf4d317e71058006872b8012598a5fa045b30bf24a81eeff650ab49e
F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7
F tool/warnings.sh 49a486c5069de041aedcbde4de178293e0463ae9918ecad7539eedf0ec77a139
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
-P e1330ecf170436678c5c235557fb95b8acbf4fad62583edba4af03aff49afbc5
-R f888b7564d00e145c0007eac37a11cdd
+P f783d90187fb326faa3d0244b30138b023c4a8483486f260b7a022a927c13f3a
+R 6377acb59760f57785ee6902b4729fcf
U drh
-Z 42957bc99f867ff6f91e562cbfd36cd8
+Z a7e2057b268c20267be2a2d81b2bdc9a
# Remove this line to create a well-formed Fossil manifest.
-f783d90187fb326faa3d0244b30138b023c4a8483486f260b7a022a927c13f3a
+e0d8f9916c2d899094b71af74f44e089a97db6d80f09eb80a5d8be733c1bf942
}
/*
-** USAGE: hexio_get_int HEXDATA
+** USAGE: hexio_get_int [-littleendian] HEXDATA
**
** Interpret the HEXDATA argument as a big-endian integer. Return
** the value of that integer. HEXDATA can contain between 2 and 8
const unsigned char *zIn;
unsigned char *aOut;
unsigned char aNum[4];
+ int bLittle = 0;
- if( objc!=2 ){
- Tcl_WrongNumArgs(interp, 1, objv, "HEXDATA");
+ if( objc==3 ){
+ Tcl_Size n;
+ char *z = Tcl_GetStringFromObj(objv[1], &n);
+ if( n>=2 && n<=13 && memcmp(z, "-littleendian", n)==0 ){
+ bLittle = 1;
+ }
+ }
+ if( (objc-bLittle)!=2 ){
+ Tcl_WrongNumArgs(interp, 1, objv, "[-littleendian] HEXDATA");
return TCL_ERROR;
}
- zIn = (const unsigned char *)Tcl_GetStringFromObj(objv[1], &nIn);
+ zIn = (const unsigned char *)Tcl_GetStringFromObj(objv[1+bLittle], &nIn);
aOut = sqlite3_malloc64( 1 + nIn/2 );
if( aOut==0 ){
return TCL_ERROR;
memcpy(&aNum[4-nOut], aOut, nOut);
}
sqlite3_free(aOut);
- val = (aNum[0]<<24) | (aNum[1]<<16) | (aNum[2]<<8) | aNum[3];
+ if( bLittle ){
+ val = (int)((u32)aNum[3]<<24) | (aNum[2]<<16) | (aNum[1]<<8) | aNum[0];
+ }else{
+ val = (int)((u32)aNum[0]<<24) | (aNum[1]<<16) | (aNum[2]<<8) | aNum[3];
+ }
Tcl_SetObjResult(interp, Tcl_NewIntObj(val));
return TCL_OK;
}
source $testdir/tester.tcl
proc sql {zSql} {
+ if {0 && $::debug_op} {
+ puts stderr "$zSql ;"
+ flush stderr
+ }
uplevel db eval [list $zSql]
#puts stderr "$zSql ;"
}
# delete_rows XVALUES
#
proc savepoint {zName} {
+ if {$::debug_op} { puts stderr "savepoint $zName" ; flush stderr }
catch { sql "SAVEPOINT $zName" }
lappend ::lSavepoint [list $zName [array get ::aEntry]]
}
proc rollback {zName} {
+ if {$::debug_op} { puts stderr "rollback $zName" ; flush stderr }
catch { sql "ROLLBACK TO $zName" }
for {set i [expr {[llength $::lSavepoint]-1}]} {$i>=0} {incr i -1} {
set zSavepoint [lindex $::lSavepoint $i 0]
}
proc release {zName} {
+ if {$::debug_op} { puts stderr "release $zName" ; flush stderr }
catch { sql "RELEASE $zName" }
for {set i [expr {[llength $::lSavepoint]-1}]} {$i>=0} {incr i -1} {
set zSavepoint [lindex $::lSavepoint $i 0]
}
proc insert_rows {lX} {
+ if {$::debug_op} { puts stderr "insert_rows $lX" ; flush stderr }
foreach x $lX {
set y [x_to_y $x]
}
proc delete_rows {lX} {
+ if {$::debug_op} { puts stderr "delete_rows $lX" ; flush stderr }
foreach x $lX {
# Update database [db]
sql "DELETE FROM t1 WHERE x = $x"
}
#-------------------------------------------------------------------------
+set ::debug_op 0
+proc debug_ops {} {
+ set ::debug_op 1
+}
+
proc database_op {} {
set i [expr int(rand()*2)]
if {$i==0} {
set C [lindex $cmds [expr int(rand()*6)]]
set N [lindex $names [expr int(rand()*5)]]
- #puts stderr " $C $N ; "
- #flush stderr
-
$C $N
return ok
}