]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Make test_wholenumber.c into a loadable extension and move it to
authordrh <drh@noemail.net>
Thu, 25 Apr 2013 11:58:36 +0000 (11:58 +0000)
committerdrh <drh@noemail.net>
Thu, 25 Apr 2013 11:58:36 +0000 (11:58 +0000)
ext/misc/wholenumber.c.

FossilOrigin-Name: efcc9dd012b5f193324dfc2ee9c2410c16fc1b3b

ext/misc/wholenumber.c [moved from src/test_wholenumber.c with 83% similarity]
main.mk
manifest
manifest.uuid
src/tclsqlite.c
src/test1.c
test/8_3_names.test
test/analyze7.test
test/memdb.test
test/tkt-2d1a5c67d.test
test/zerodamage.test

similarity index 83%
rename from src/test_wholenumber.c
rename to ext/misc/wholenumber.c
index 7c42d01691be82bb35f79df3d0b9267f645fd867..a6d79507c41a2994ac3d229fc3c7deab540cf3c1 100644 (file)
@@ -22,7 +22,8 @@
 **
 **     1 2 3 4 5 6 7 8 9
 */
-#include "sqlite3.h"
+#include "sqlite3ext.h"
+SQLITE_EXTENSION_INIT1
 #include <assert.h>
 #include <string.h>
 
@@ -250,62 +251,18 @@ static sqlite3_module wholenumberModule = {
 
 #endif /* SQLITE_OMIT_VIRTUALTABLE */
 
-
-/*
-** Register the wholenumber virtual table
-*/
-int wholenumber_register(sqlite3 *db){
+#ifdef _WIN32
+__declspec(dllexport)
+#endif
+int sqlite3_wholenumber_init(
+  sqlite3 *db, 
+  char **pzErrMsg, 
+  const sqlite3_api_routines *pApi
+){
   int rc = SQLITE_OK;
+  SQLITE_EXTENSION_INIT2(pApi);
 #ifndef SQLITE_OMIT_VIRTUALTABLE
   rc = sqlite3_create_module(db, "wholenumber", &wholenumberModule, 0);
 #endif
   return rc;
 }
-
-#ifdef SQLITE_TEST
-#include <tcl.h>
-/*
-** Decode a pointer to an sqlite3 object.
-*/
-extern int getDbPointer(Tcl_Interp *interp, const char *zA, sqlite3 **ppDb);
-
-/*
-** Register the echo virtual table module.
-*/
-static int register_wholenumber_module(
-  ClientData clientData, /* Pointer to sqlite3_enable_XXX function */
-  Tcl_Interp *interp,    /* The TCL interpreter that invoked this command */
-  int objc,              /* Number of arguments */
-  Tcl_Obj *CONST objv[]  /* Command arguments */
-){
-  sqlite3 *db;
-  if( objc!=2 ){
-    Tcl_WrongNumArgs(interp, 1, objv, "DB");
-    return TCL_ERROR;
-  }
-  if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
-  wholenumber_register(db);
-  return TCL_OK;
-}
-
-
-/*
-** Register commands with the TCL interpreter.
-*/
-int Sqlitetestwholenumber_Init(Tcl_Interp *interp){
-  static struct {
-     char *zName;
-     Tcl_ObjCmdProc *xProc;
-     void *clientData;
-  } aObjCmd[] = {
-     { "register_wholenumber_module",   register_wholenumber_module, 0 },
-  };
-  int i;
-  for(i=0; i<sizeof(aObjCmd)/sizeof(aObjCmd[0]); i++){
-    Tcl_CreateObjCommand(interp, aObjCmd[i].zName, 
-        aObjCmd[i].xProc, aObjCmd[i].clientData, 0);
-  }
-  return TCL_OK;
-}
-
-#endif /* SQLITE_TEST */
diff --git a/main.mk b/main.mk
index 550b8f10f07ef3b19850b39f827a6b3caf524937..584295cc8b1b321b0a88c097f8393400f3253c87 100644 (file)
--- a/main.mk
+++ b/main.mk
@@ -267,7 +267,7 @@ TESTSRC = \
   $(TOP)/src/test_tclvar.c \
   $(TOP)/src/test_thread.c \
   $(TOP)/src/test_vfs.c \
-  $(TOP)/src/test_wholenumber.c \
+  $(TOP)/ext/misc/wholenumber.c \
   $(TOP)/src/test_wsd.c
 
 #TESTSRC += $(TOP)/ext/fts2/fts2_tokenizer.c
index bf91bd164964738edd7500f2a1a90d4657b753ec..f065e1a474de977343cd70f44a3a3c00ddbcd0f4 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Make\s"test_regexp.c"\sinto\sa\sloadable\sextension\sand\smove\sit\sover\sto\next/misc/regexp.c.\s\sAdd\sthe\s"load_static_extension"\scommand\sfor\stesting\npurposes.
-D 2013-04-23T20:10:13.518
+C Make\stest_wholenumber.c\sinto\sa\sloadable\sextension\sand\smove\sit\sto\next/misc/wholenumber.c.
+D 2013-04-25T11:58:36.453
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 87591ea5bf7d6ed521ad42d5bc69c124debe11a5
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -83,7 +83,8 @@ F ext/fts3/unicode/mkunicode.tcl 7a9bc018e2962abb79563c5a39fe581fcbf2f675
 F ext/icu/README.txt d9fbbad0c2f647c3fdf715fc9fd64af53aedfc43
 F ext/icu/icu.c eb9ae1d79046bd7871aa97ee6da51eb770134b5a
 F ext/icu/sqliteicu.h 728867a802baa5a96de7495e9689a8e01715ef37
-F ext/misc/regexp.c c0fdb8af86981ff9890d776cfb97fe66297cc3b2 w src/test_regexp.c
+F ext/misc/regexp.c c0fdb8af86981ff9890d776cfb97fe66297cc3b2
+F ext/misc/wholenumber.c ce362368b9381ea48cbd951ade8df867eeeab014 w src/test_wholenumber.c
 F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761
 F ext/rtree/rtree.c 757abea591d4ff67c0ff4e8f9776aeda86b18c14
 F ext/rtree/rtree.h 834dbcb82dc85b2481cde6a07cdadfddc99e9b9e
@@ -105,7 +106,7 @@ F ext/rtree/tkt3363.test 142ab96eded44a3615ec79fba98c7bde7d0f96de
 F ext/rtree/viewrtree.tcl eea6224b3553599ae665b239bd827e182b466024
 F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
 F ltmain.sh 3ff0879076df340d2e23ae905484d8c15d5fdea8
-F main.mk 8f410dfbb97943889298a2da779be0f8f3dcb750
+F main.mk 2a6938f243a367e34905f02855606a1f3e5ef9d1
 F mkdll.sh 7d09b23c05d56532e9d44a50868eb4b12ff4f74a
 F mkextu.sh 416f9b7089d80e5590a29692c9d9280a10dbad9f
 F mkextw.sh 4123480947681d9b434a5e7b1ee08135abe409ac
@@ -191,8 +192,8 @@ F src/sqliteInt.h 2a83cfec9963372b636b0cabd4b200c1f1074a99
 F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d
 F src/status.c bedc37ec1a6bb9399944024d63f4c769971955a9
 F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e
-F src/tclsqlite.c fd60f5950535fd880ce32f357fa9da62db65c490
-F src/test1.c 317741fa810b8acbdf849891202175ea762d68e9
+F src/tclsqlite.c 454a2ec58de93cc3eb49a08d205935484b2be3be
+F src/test1.c fdbf02675c1b16099bbd33a41d40c0d86754419b
 F src/test2.c 29e7154112f7448d64204e8d31179cf497ecf425
 F src/test3.c 96aed72a8e1d542fed127e3e8350ae357712fa82
 F src/test4.c cea2c55110241e4674e66d476d29c914627999f5
@@ -238,7 +239,6 @@ F src/test_tclvar.c f4dc67d5f780707210d6bb0eb6016a431c04c7fa
 F src/test_thread.c e286f2173563f2a1747c24bcda6b9d030bf4f4e4
 F src/test_vfs.c 8e6087a8b3dcc260282074b0efba14b76311120c
 F src/test_vfstrace.c 34b544e80ba7fb77be15395a609c669df2e660a2
-F src/test_wholenumber.c 3d2b9ed1505c40ad5c5ca2ad16ae7a289d6cc251
 F src/test_wsd.c 41cadfd9d97fe8e3e4e44f61a4a8ccd6f7ca8fe9
 F src/tokenize.c 1e86210d3976717a19238ea7b047fac481fe8c12
 F src/trigger.c cd95ac64efa60e39faf9b5597443192ff27a22fa
@@ -260,7 +260,7 @@ F src/wal.c 436bfceb141b9423c45119e68e444358ee0ed35d
 F src/wal.h a4d3da523d55a226a0b28e9058ef88d0a8051887
 F src/walker.c 3d75ba73de15e0f8cd0737643badbeb0e002f07b
 F src/where.c d54e63087b52c309550aa2defdb20ef27add9f9a
-F test/8_3_names.test 631ea964a3edb091cf73c3b540f6bcfdb36ce823
+F test/8_3_names.test ebbb5cd36741350040fd28b432ceadf495be25b2
 F test/aggerror.test a867e273ef9e3d7919f03ef4f0e8c0d2767944f2
 F test/aggnested.test 45c0201e28045ad38a530b5a144b73cd4aa2cfd6
 F test/alias.test 4529fbc152f190268a15f9384a5651bbbabc9d87
@@ -275,7 +275,7 @@ F test/analyze3.test c3c7f6c3951900c188cf94b2d5ee3246d6b3ff89
 F test/analyze4.test 757b37875cf9bb528d46f74497bc789c88365045
 F test/analyze5.test 713354664c5ff1853ab2cbcb740f0cf5cb7c802e
 F test/analyze6.test aa8dae5066bbed35c5f45a507fb87f2d342f2c99
-F test/analyze7.test d3587aa5af75c9048d031b94fceca2534fa75d1d
+F test/analyze7.test bd09e89264c664d8d8d2450b6866dcdfae080a13
 F test/analyze8.test 4ca170de2ba30ccb1af2c0406803db72262f9691
 F test/async.test 1d0e056ba1bb9729283a0f22718d3a25e82c277b
 F test/async2.test c0a9bd20816d7d6a2ceca7b8c03d3d69c28ffb8b
@@ -624,7 +624,7 @@ F test/mallocK.test d79968641d1b70d88f6c01bdb9a7eb4a55582cc9
 F test/malloc_common.tcl 9a98856549bfb3fab205edbc1317216edc52e70d
 F test/manydb.test 28385ae2087967aa05c38624cec7d96ec74feb3e
 F test/mem5.test c6460fba403c5703141348cd90de1c294188c68f
-F test/memdb.test 708a028d6d373e5b3842e4bdc8ba80998c9a4da6
+F test/memdb.test db5260330676de007be8530d6ecc7c9ab2b06ad3
 F test/memleak.test 10b9c6c57e19fc68c32941495e9ba1c50123f6e2
 F test/memsubsys1.test a8f9e37567453a5d1d9d37ec102d4d88ab6be33f
 F test/memsubsys2.test 3a1c1a9de48e5726faa85108b02459fae8cb9ee9
@@ -783,7 +783,7 @@ F test/threadtest3.c 0ed13e09690f6204d7455fac3b0e8ece490f6eef
 F test/tkt-02a8e81d44.test 6c80d9c7514e2a42d4918bf87bf6bc54f379110c
 F test/tkt-26ff0c2d1e.test 888324e751512972c6e0d1a09df740d8f5aaf660
 F test/tkt-2a5629202f.test 1ab32e084e9fc3d36be6dee2617530846a0eb0b6
-F test/tkt-2d1a5c67d.test b028a811049eb472cb2d3a43fc8ce4f6894eebda
+F test/tkt-2d1a5c67d.test d371279946622698ab393ff88cad9f5f6d82960b
 F test/tkt-2ea2425d34.test 1cf13e6f75d149b3209a0cb32927a82d3d79fb28
 F test/tkt-31338dca7e.test 6fb8807851964da0d24e942f2e19c7c705b9fb58
 F test/tkt-313723c356.test c47f8a9330523e6f35698bf4489bcb29609b53ac
@@ -1009,7 +1009,7 @@ F test/whereF.test a0e296643cabe5278379bc1a0aa158cf3c54a1c9
 F test/wherelimit.test 5e9fd41e79bb2b2d588ed999d641d9c965619b31
 F test/win32lock.test 7a6bd73a5dcdee39b5bb93e92395e1773a194361
 F test/zeroblob.test caaecfb4f908f7bc086ed238668049f96774d688
-F test/zerodamage.test e7f77fded01dfcdf92ac2c5400f1e35d7a21463c
+F test/zerodamage.test 209d7ed441f44cc5299e4ebffbef06fd5aabfefd
 F tool/build-all-msvc.bat 74fb6e5cca66ebdb6c9bbafb2f8b802f08146d38 x
 F tool/build-shell.sh a9c34a606e2e522ba9eeca1e07090f67dce8c912
 F tool/checkSpacing.c 810e51703529a204fc4e1eb060e9ab663e3c06d2
@@ -1054,10 +1054,7 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
 F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
-P 1a1cf5aa86734c832d845e07780262a178188d56
-R d55f2fee19b165fc6c487ed43598c861
-T *branch * std-ext
-T *sym-std-ext *
-T -sym-trunk *
+P 860fc393bff27045e0593c3c51bf5577accd0b79
+R 8c941fbad237823d93a73098db175706
 U drh
-Z 87544ad6dda5ce727b201c9348b14476
+Z 60829cfbed93a547344be462cee5c545
index f18da3e0e5e4e82c97d4d243ba8542906ab97b91..a9cc8dd1f0791764f2277dba97d35384e0eabb5e 100644 (file)
@@ -1 +1 @@
-860fc393bff27045e0593c3c51bf5577accd0b79
\ No newline at end of file
+efcc9dd012b5f193324dfc2ee9c2410c16fc1b3b
\ No newline at end of file
index f8d428e7a8325cd673be7012ce0d5db76ff8691d..adacc34a1cae2c982184fb01ee321a23a77b8dd7 100644 (file)
@@ -3684,7 +3684,6 @@ static void init_all(Tcl_Interp *interp){
     extern int SqliteSuperlock_Init(Tcl_Interp*);
     extern int SqlitetestSyscall_Init(Tcl_Interp*);
     extern int Sqlitetestfuzzer_Init(Tcl_Interp*);
-    extern int Sqlitetestwholenumber_Init(Tcl_Interp*);
 
 #if defined(SQLITE_ENABLE_FTS3) || defined(SQLITE_ENABLE_FTS4)
     extern int Sqlitetestfts3_Init(Tcl_Interp *interp);
@@ -3728,7 +3727,6 @@ static void init_all(Tcl_Interp *interp){
     SqliteSuperlock_Init(interp);
     SqlitetestSyscall_Init(interp);
     Sqlitetestfuzzer_Init(interp);
-    Sqlitetestwholenumber_Init(interp);
 
 #if defined(SQLITE_ENABLE_FTS3) || defined(SQLITE_ENABLE_FTS4)
     Sqlitetestfts3_Init(interp);
index 178aba809d9cf40e9e1ce484240cda8a21d84c10..041e5325796b124c8731aaa0378e8d1350ab2c0b 100644 (file)
@@ -6058,11 +6058,13 @@ static int tclLoadStaticExtensionCmd(
   Tcl_Obj *CONST objv[]
 ){
   extern int sqlite3_regexp_init(sqlite3*,char**,const sqlite3_api_routines*);
+  extern int sqlite3_wholenumber_init(sqlite3*,char**,const sqlite3_api_routines*);
   static const struct {
     const char *zExtName;
     int (*pInit)(sqlite3*,char**,const sqlite3_api_routines*);
   } aExtension[] = {
-    {  "regexp",    sqlite3_regexp_init },
+    { "regexp",                sqlite3_regexp_init               },
+    { "wholenumber",           sqlite3_wholenumber_init          },
   };
   sqlite3 *db;
   const char *zName;
index b53e28a92a425423d16a3ce792b89e923cae28fc..1d63f5dcc96ceeccdcd7d1fa4fbdd6f75eee9268 100644 (file)
@@ -150,7 +150,7 @@ db close
 forcedelete test.db
 do_test 8_3_names-5.0 {
   sqlite3 db file:./test.db?8_3_names=1
-  register_wholenumber_module db
+  load_static_extension db wholenumber
   db eval {
     PRAGMA journal_mode=WAL;
     CREATE TABLE t1(x);
@@ -160,7 +160,7 @@ do_test 8_3_names-5.0 {
     UPDATE t1 SET x=x*2;
   }
   sqlite3 db2 file:./test.db?8_3_names=1
-  register_wholenumber_module db2
+  load_static_extension db2 wholenumber
   db2 eval {
     BEGIN;
     SELECT sum(x) FROM t1;
index 5bdb04d72cad4102a514027f0e9f83b1c46c02ed..46ec39e7bd4f362a13e0c8fb329ac921e81f2ece 100644 (file)
@@ -26,7 +26,7 @@ ifcapable {!analyze||!vtab} {
 # Generate some test data
 #
 do_test analyze7-1.0 {
-  register_wholenumber_module db
+  load_static_extension db wholenumber
   execsql {
     CREATE TABLE t1(a,b,c,d);
     CREATE INDEX t1a ON t1(a);
index 1da3d7c58b43b05639fae630b6d123ef925b1967..802fb1a5c4c60e4dc99ef08fffbc0ad808d072c6 100644 (file)
@@ -365,7 +365,7 @@ do_test memdb-6.15 {
 
 ifcapable subquery&&vtab {
   do_test memdb-7.1 {
-    register_wholenumber_module db
+    load_static_extension db wholenumber
     execsql {
       CREATE TABLE t6(x);
       CREATE VIRTUAL TABLE nums USING wholenumber;
index bf9595f015dc491618201944033d5e683046fc2f..3fef187ecd9c5137169071c36a80c9ec3ae1a8ef 100644 (file)
@@ -46,7 +46,7 @@ for {set ii 1} {$ii<=10} {incr ii} {
 db close
 forcedelete test.db test.db-wal
 sqlite3 db test.db
-register_wholenumber_module db
+load_static_extension db wholenumber
 db eval {
   PRAGMA journal_mode=WAL;
   CREATE TABLE t1(a,b);
index 217749a4a47e7e4a43543e989e36f9d80d7b6795..de5088b5a2f984d54d1eba60fb93e10ef7623a19 100644 (file)
@@ -59,7 +59,7 @@ do_test zerodamage-2.0 {
   }
   tv filter xDelete
   tv script xDeleteCallback
-  register_wholenumber_module db
+  load_static_extension db wholenumber
   db eval {
     PRAGMA page_size=1024;
     PRAGMA journal_mode=DELETE;