]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add SQL function usleep() to test program tserver.c.
authordan <dan@noemail.net>
Tue, 11 Jul 2017 18:38:26 +0000 (18:38 +0000)
committerdan <dan@noemail.net>
Tue, 11 Jul 2017 18:38:26 +0000 (18:38 +0000)
FossilOrigin-Name: 8cbe8f2b2fe0a5a246401718da8db8d487ced232ada73b53bdc9f9608c47d50e

manifest
manifest.uuid
tool/tserver.c

index e0ed9aefe12af0cbbe28b7c73f87398a3d3c6703..082a6844815f4755c49022aa3c9ea9ca6f147ef8 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Fix\sa\sbug\scausing\sreadonly\smvcc\sconnections\sto\sread\sthe\swrong\scache\sentry\sin\nsome\scases.
-D 2017-07-11T16:47:26.878
+C Add\sSQL\sfunction\susleep()\sto\stest\sprogram\stserver.c.
+D 2017-07-11T18:38:26.799
 F Makefile.in 081e48dfe7f995d57ce1a88ddf4d2917b4349158648a6cd45b42beae30de3a12
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc 4ebb1d257cac7fb1bcb4ba59278416d410ff1c4bf59447a9c37a415f3516056a
@@ -1608,7 +1608,7 @@ F tool/stack_usage.tcl f8e71b92cdb099a147dad572375595eae55eca43
 F tool/symbols-mingw.sh 4dbcea7e74768305384c9fd2ed2b41bbf9f0414d
 F tool/symbols.sh c5a617b8c61a0926747a56c65f5671ef8ac0e148
 F tool/tostr.tcl 96022f35ada2194f6f8ccf6fd95809e90ed277c4
-F tool/tserver.c 8067d85410c827c9d1b33fd3f269b96615ab404a277c268e1838bfa768b58949
+F tool/tserver.c c04e49b7809c01a513df645b7bbaa12a74514e660c491ee753cc0e2573c68512
 F tool/varint.c 5d94cb5003db9dbbcbcc5df08d66f16071aee003
 F tool/vdbe-compress.tcl 5926c71f9c12d2ab73ef35c29376e756eb68361c
 F tool/vdbe_profile.tcl 246d0da094856d72d2c12efec03250d71639d19f
@@ -1636,7 +1636,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 5a043aa8dd0751e644c495a59deea5fe05da905f49c664d978fe477f9240bc37
-R e59e1dfe288bdf1b4bb726ee235e7626
+P b6157267f9d4ecdffbdf4b1e591b8d6baaaa964c418ec247a24ccb82146f9041
+R d431332999db79016ab1852b88d53c44
 U dan
-Z 6d2ed9dacb76457e26a93cd8b7b8a737
+Z 974e699f24a083c2cc24ed8a142caee5
index ea13767d2f10d74f68f4afaaf424c3fcc0847045..9643b9844d92aed40be150b2202107368f2be50e 100644 (file)
@@ -1 +1 @@
-b6157267f9d4ecdffbdf4b1e591b8d6baaaa964c418ec247a24ccb82146f9041
\ No newline at end of file
+8cbe8f2b2fe0a5a246401718da8db8d487ced232ada73b53bdc9f9608c47d50e
\ No newline at end of file
index fe237f2c57c5dbb5e9e09bdefb2fb7ddbca8f97d..8275b237794c07f18acca26c56e2c48ff3e89502 100644 (file)
@@ -81,6 +81,21 @@ static int is_whitespace(int i){
   return (i==' ' || i=='\t' || is_eol(i));
 }
 
+/*
+** Implementation of SQL scalar function usleep().
+*/
+static void usleepFunc(
+  sqlite3_context *context,
+  int argc,
+  sqlite3_value **argv
+){
+  int nUs;
+  sqlite3_vfs *pVfs = (sqlite3_vfs*)sqlite3_user_data(context);
+  assert( argc==1 );
+  nUs = sqlite3_value_int64(argv[0]);
+  pVfs->xSleep(pVfs, nUs);
+}
+
 static void trim_string(const char **pzStr, int *pnStr){
   const char *zStr = *pzStr;
   int nStr = *pnStr;
@@ -278,7 +293,6 @@ static void *handle_client(void *pArg){
   int nCmd = 0;                   /* Valid bytes in zCmd[] */
   int res;                        /* Result of read() call */
   int rc = SQLITE_OK;
-  int j;
 
   ClientCtx ctx;
   memset(&ctx, 0, sizeof(ClientCtx));
@@ -290,6 +304,10 @@ static void *handle_client(void *pArg){
     fprintf(stderr, "sqlite3_open(): %s\n", sqlite3_errmsg(ctx.db));
     return 0;
   }
+  sqlite3_create_function(
+      ctx.db, "usleep", 1, SQLITE_UTF8, (void*)sqlite3_vfs_find(0), 
+      usleepFunc, 0, 0
+  );
 
   while( rc==SQLITE_OK ){
     int i;