Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Make test_wholenumber.c into a loadable extension and move it to ext/misc/wholenumber.c. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | std-ext |
Files: | files | file ages | folders |
SHA1: |
efcc9dd012b5f193324dfc2ee9c2410c |
User & Date: | drh 2013-04-25 11:58:36.453 |
Context
2013-04-25
| ||
14:31 | Convert the fuzzer virtual table into a loadable extension and move it to the ext/misc/fuzzer.c file. (check-in: c8c69307f6 user: drh tags: std-ext) | |
11:58 | Make test_wholenumber.c into a loadable extension and move it to ext/misc/wholenumber.c. (check-in: efcc9dd012 user: drh tags: std-ext) | |
2013-04-23
| ||
20:10 | Make "test_regexp.c" into a loadable extension and move it over to ext/misc/regexp.c. Add the "load_static_extension" command for testing purposes. (check-in: 860fc393bf user: drh tags: std-ext) | |
Changes
Name change from src/test_wholenumber.c to ext/misc/wholenumber.c.
︙ | ︙ | |||
18 19 20 21 22 23 24 | ** CREATE VIRTUAL TABLE nums USING wholenumber; ** SELECT value FROM nums WHERE value<10; ** ** Results in: ** ** 1 2 3 4 5 6 7 8 9 */ | | > | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | ** CREATE VIRTUAL TABLE nums USING wholenumber; ** SELECT value FROM nums WHERE value<10; ** ** Results in: ** ** 1 2 3 4 5 6 7 8 9 */ #include "sqlite3ext.h" SQLITE_EXTENSION_INIT1 #include <assert.h> #include <string.h> #ifndef SQLITE_OMIT_VIRTUALTABLE /* A wholenumber cursor object */ |
︙ | ︙ | |||
246 247 248 249 250 251 252 | 0, /* xRollback */ 0, /* xFindMethod */ 0, /* xRename */ }; #endif /* SQLITE_OMIT_VIRTUALTABLE */ | | < > > | < | > > > > < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 | 0, /* xRollback */ 0, /* xFindMethod */ 0, /* xRename */ }; #endif /* SQLITE_OMIT_VIRTUALTABLE */ #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; } |
Changes to main.mk.
︙ | ︙ | |||
263 264 265 266 267 268 269 | $(TOP)/src/test_stat.c \ $(TOP)/src/test_sqllog.c \ $(TOP)/src/test_superlock.c \ $(TOP)/src/test_syscall.c \ $(TOP)/src/test_tclvar.c \ $(TOP)/src/test_thread.c \ $(TOP)/src/test_vfs.c \ | | | 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 | $(TOP)/src/test_stat.c \ $(TOP)/src/test_sqllog.c \ $(TOP)/src/test_superlock.c \ $(TOP)/src/test_syscall.c \ $(TOP)/src/test_tclvar.c \ $(TOP)/src/test_thread.c \ $(TOP)/src/test_vfs.c \ $(TOP)/ext/misc/wholenumber.c \ $(TOP)/src/test_wsd.c #TESTSRC += $(TOP)/ext/fts2/fts2_tokenizer.c #TESTSRC += $(TOP)/ext/fts3/fts3_tokenizer.c TESTSRC2 = \ $(TOP)/src/attach.c \ |
︙ | ︙ |
Changes to src/tclsqlite.c.
︙ | ︙ | |||
3680 3681 3682 3683 3684 3685 3686 | extern int Sqlitetestvfs_Init(Tcl_Interp *); extern int Sqlitetestrtree_Init(Tcl_Interp*); extern int Sqlitequota_Init(Tcl_Interp*); extern int Sqlitemultiplex_Init(Tcl_Interp*); extern int SqliteSuperlock_Init(Tcl_Interp*); extern int SqlitetestSyscall_Init(Tcl_Interp*); extern int Sqlitetestfuzzer_Init(Tcl_Interp*); | < | 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 | extern int Sqlitetestvfs_Init(Tcl_Interp *); extern int Sqlitetestrtree_Init(Tcl_Interp*); extern int Sqlitequota_Init(Tcl_Interp*); extern int Sqlitemultiplex_Init(Tcl_Interp*); extern int SqliteSuperlock_Init(Tcl_Interp*); extern int SqlitetestSyscall_Init(Tcl_Interp*); extern int Sqlitetestfuzzer_Init(Tcl_Interp*); #if defined(SQLITE_ENABLE_FTS3) || defined(SQLITE_ENABLE_FTS4) extern int Sqlitetestfts3_Init(Tcl_Interp *interp); #endif #ifdef SQLITE_ENABLE_ZIPVFS extern int Zipvfs_Init(Tcl_Interp*); |
︙ | ︙ | |||
3724 3725 3726 3727 3728 3729 3730 | Sqlitetestvfs_Init(interp); Sqlitetestrtree_Init(interp); Sqlitequota_Init(interp); Sqlitemultiplex_Init(interp); SqliteSuperlock_Init(interp); SqlitetestSyscall_Init(interp); Sqlitetestfuzzer_Init(interp); | < | 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 | Sqlitetestvfs_Init(interp); Sqlitetestrtree_Init(interp); Sqlitequota_Init(interp); Sqlitemultiplex_Init(interp); SqliteSuperlock_Init(interp); SqlitetestSyscall_Init(interp); Sqlitetestfuzzer_Init(interp); #if defined(SQLITE_ENABLE_FTS3) || defined(SQLITE_ENABLE_FTS4) Sqlitetestfts3_Init(interp); #endif Tcl_CreateObjCommand( interp, "load_testfixture_extensions", init_all_cmd, 0, 0 |
︙ | ︙ |
Changes to src/test1.c.
︙ | ︙ | |||
6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 | static int tclLoadStaticExtensionCmd( void * clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[] ){ extern int sqlite3_regexp_init(sqlite3*,char**,const sqlite3_api_routines*); static const struct { const char *zExtName; int (*pInit)(sqlite3*,char**,const sqlite3_api_routines*); } aExtension[] = { | > | > | 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 | static int tclLoadStaticExtensionCmd( void * clientData, Tcl_Interp *interp, int objc, 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 }, { "wholenumber", sqlite3_wholenumber_init }, }; sqlite3 *db; const char *zName; int i, rc; char *zErrMsg = 0; if( objc!=3 ){ Tcl_WrongNumArgs(interp, 1, objv, "DB NAME"); |
︙ | ︙ |
Changes to test/8_3_names.test.
︙ | ︙ | |||
146 147 148 149 150 151 152 | finish_test return } db close forcedelete test.db do_test 8_3_names-5.0 { sqlite3 db file:./test.db?8_3_names=1 | | | | 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 | finish_test return } db close forcedelete test.db do_test 8_3_names-5.0 { sqlite3 db file:./test.db?8_3_names=1 load_static_extension db wholenumber db eval { PRAGMA journal_mode=WAL; CREATE TABLE t1(x); CREATE VIRTUAL TABLE nums USING wholenumber; INSERT INTO t1 SELECT value FROM nums WHERE value BETWEEN 1 AND 1000; BEGIN; UPDATE t1 SET x=x*2; } sqlite3 db2 file:./test.db?8_3_names=1 load_static_extension db2 wholenumber db2 eval { BEGIN; SELECT sum(x) FROM t1; } } {500500} do_test 8_3_names-5.1 { |
︙ | ︙ |
Changes to test/analyze7.test.
︙ | ︙ | |||
22 23 24 25 26 27 28 | finish_test return } # Generate some test data # do_test analyze7-1.0 { | | | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | finish_test return } # Generate some test data # do_test analyze7-1.0 { load_static_extension db wholenumber execsql { CREATE TABLE t1(a,b,c,d); CREATE INDEX t1a ON t1(a); CREATE INDEX t1b ON t1(b); CREATE INDEX t1cd ON t1(c,d); CREATE VIRTUAL TABLE nums USING wholenumber; INSERT INTO t1 SELECT value, value, value/100, value FROM nums |
︙ | ︙ |
Changes to test/memdb.test.
︙ | ︙ | |||
361 362 363 364 365 366 367 | DELETE FROM t5 WHERE x>0; SELECT * FROM t5; } } {} ifcapable subquery&&vtab { do_test memdb-7.1 { | | | 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 | DELETE FROM t5 WHERE x>0; SELECT * FROM t5; } } {} ifcapable subquery&&vtab { do_test memdb-7.1 { load_static_extension db wholenumber execsql { CREATE TABLE t6(x); CREATE VIRTUAL TABLE nums USING wholenumber; INSERT INTO t6 SELECT value FROM nums WHERE value BETWEEN 1 AND 256; SELECT count(*) FROM (SELECT DISTINCT x FROM t6); } } {256} |
︙ | ︙ |
Changes to test/tkt-2d1a5c67d.test.
︙ | ︙ | |||
42 43 44 45 46 47 48 | } } {wal A 3 4 B 1 2 C 1 2} } db close forcedelete test.db test.db-wal sqlite3 db test.db | | | 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | } } {wal A 3 4 B 1 2 C 1 2} } db close forcedelete test.db test.db-wal sqlite3 db test.db load_static_extension db wholenumber db eval { PRAGMA journal_mode=WAL; CREATE TABLE t1(a,b); CREATE INDEX t1b ON t1(b); CREATE TABLE t2(x,y); CREATE VIRTUAL TABLE nums USING wholenumber; INSERT INTO t2 SELECT value, randomblob(1000) FROM nums |
︙ | ︙ |
Changes to test/zerodamage.test.
︙ | ︙ | |||
55 56 57 58 59 60 61 | set ::max_journal_size 0 proc xDeleteCallback {method file args} { set sz [file size $file] if {$sz>$::max_journal_size} {set ::max_journal_size $sz} } tv filter xDelete tv script xDeleteCallback | | | 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | set ::max_journal_size 0 proc xDeleteCallback {method file args} { set sz [file size $file] if {$sz>$::max_journal_size} {set ::max_journal_size $sz} } tv filter xDelete tv script xDeleteCallback load_static_extension db wholenumber db eval { PRAGMA page_size=1024; PRAGMA journal_mode=DELETE; PRAGMA cache_size=5; CREATE VIRTUAL TABLE nums USING wholenumber; CREATE TABLE t1(x, y); INSERT INTO t1 SELECT value, randomblob(100) FROM nums |
︙ | ︙ |