Gentoo Archives: gentoo-commits

From: Mike Gilbert <floppym@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-db/sqlite/files/
Date: Fri, 29 Jul 2016 02:00:56
Message-Id: 1469757615.f978cfd53ddb7555e0f4e99719ae3f275a0b511e.floppym@gentoo
1 commit: f978cfd53ddb7555e0f4e99719ae3f275a0b511e
2 Author: Arfrever Frehtes Taifersar Arahesis <Arfrever <AT> Apache <DOT> Org>
3 AuthorDate: Thu Jul 28 22:16:45 2016 +0000
4 Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org>
5 CommitDate: Fri Jul 29 02:00:15 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f978cfd5
7
8 dev-db/sqlite: Delete old patches.
9
10 ...all-SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER.patch | 443 ---------------------
11 ...all-SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER.patch | 232 -----------
12 .../sqlite-3.11.0-nonfull_tarball-build.patch | 38 --
13 3 files changed, 713 deletions(-)
14
15 diff --git a/dev-db/sqlite/files/sqlite-3.11.0-full_tarball-SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER.patch b/dev-db/sqlite/files/sqlite-3.11.0-full_tarball-SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER.patch
16 deleted file mode 100644
17 index 9aaf244..0000000
18 --- a/dev-db/sqlite/files/sqlite-3.11.0-full_tarball-SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER.patch
19 +++ /dev/null
20 @@ -1,443 +0,0 @@
21 -https://www.sqlite.org/cgi/src/info/374b5108087a2eae
22 -
23 ---- ext/fts3/fts3_tokenizer.c
24 -+++ ext/fts3/fts3_tokenizer.c
25 -@@ -30,6 +30,18 @@
26 - #include <string.h>
27 -
28 - /*
29 -+** Return true if the two-argument version of fts3_tokenizer()
30 -+** has been activated via a prior call to sqlite3_db_config(db,
31 -+** SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER, 1, 0);
32 -+*/
33 -+static int fts3TokenizerEnabled(sqlite3_context *context){
34 -+ sqlite3 *db = sqlite3_context_db_handle(context);
35 -+ int isEnabled = 0;
36 -+ sqlite3_db_config(db,SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER,-1,&isEnabled);
37 -+ return isEnabled;
38 -+}
39 -+
40 -+/*
41 - ** Implementation of the SQL scalar function for accessing the underlying
42 - ** hash table. This function may be called as follows:
43 - **
44 -@@ -49,7 +61,7 @@
45 - ** is a blob containing the pointer stored as the hash data corresponding
46 - ** to string <key-name> (after the hash-table is updated, if applicable).
47 - */
48 --static void scalarFunc(
49 -+static void fts3TokenizerFunc(
50 - sqlite3_context *context,
51 - int argc,
52 - sqlite3_value **argv
53 -@@ -67,27 +79,23 @@
54 - nName = sqlite3_value_bytes(argv[0])+1;
55 -
56 - if( argc==2 ){
57 --#ifdef SQLITE_ENABLE_FTS3_TOKENIZER
58 -- void *pOld;
59 -- int n = sqlite3_value_bytes(argv[1]);
60 -- if( zName==0 || n!=sizeof(pPtr) ){
61 -- sqlite3_result_error(context, "argument type mismatch", -1);
62 -- return;
63 -- }
64 -- pPtr = *(void **)sqlite3_value_blob(argv[1]);
65 -- pOld = sqlite3Fts3HashInsert(pHash, (void *)zName, nName, pPtr);
66 -- if( pOld==pPtr ){
67 -- sqlite3_result_error(context, "out of memory", -1);
68 -+ if( fts3TokenizerEnabled(context) ){
69 -+ void *pOld;
70 -+ int n = sqlite3_value_bytes(argv[1]);
71 -+ if( zName==0 || n!=sizeof(pPtr) ){
72 -+ sqlite3_result_error(context, "argument type mismatch", -1);
73 -+ return;
74 -+ }
75 -+ pPtr = *(void **)sqlite3_value_blob(argv[1]);
76 -+ pOld = sqlite3Fts3HashInsert(pHash, (void *)zName, nName, pPtr);
77 -+ if( pOld==pPtr ){
78 -+ sqlite3_result_error(context, "out of memory", -1);
79 -+ }
80 -+ }else{
81 -+ sqlite3_result_error(context, "fts3tokenize disabled", -1);
82 - return;
83 - }
84 --#else
85 -- sqlite3_result_error(context, "fts3tokenize: "
86 -- "disabled - rebuild with -DSQLITE_ENABLE_FTS3_TOKENIZER", -1
87 -- );
88 -- return;
89 --#endif /* SQLITE_ENABLE_FTS3_TOKENIZER */
90 -- }else
91 -- {
92 -+ }else{
93 - if( zName ){
94 - pPtr = sqlite3Fts3HashFind(pHash, zName, nName);
95 - }
96 -@@ -98,7 +106,6 @@
97 - return;
98 - }
99 - }
100 --
101 - sqlite3_result_blob(context, (void *)&pPtr, sizeof(pPtr), SQLITE_TRANSIENT);
102 - }
103 -
104 -@@ -336,7 +343,6 @@
105 - Tcl_DecrRefCount(pRet);
106 - }
107 -
108 --#ifdef SQLITE_ENABLE_FTS3_TOKENIZER
109 - static
110 - int registerTokenizer(
111 - sqlite3 *db,
112 -@@ -358,7 +364,6 @@
113 -
114 - return sqlite3_finalize(pStmt);
115 - }
116 --#endif /* SQLITE_ENABLE_FTS3_TOKENIZER */
117 -
118 -
119 - static
120 -@@ -431,13 +436,13 @@
121 - assert( 0==strcmp(sqlite3_errmsg(db), "unknown tokenizer: nosuchtokenizer") );
122 -
123 - /* Test the storage function */
124 --#ifdef SQLITE_ENABLE_FTS3_TOKENIZER
125 -- rc = registerTokenizer(db, "nosuchtokenizer", p1);
126 -- assert( rc==SQLITE_OK );
127 -- rc = queryTokenizer(db, "nosuchtokenizer", &p2);
128 -- assert( rc==SQLITE_OK );
129 -- assert( p2==p1 );
130 --#endif
131 -+ if( fts3TokenizerEnabled(context) ){
132 -+ rc = registerTokenizer(db, "nosuchtokenizer", p1);
133 -+ assert( rc==SQLITE_OK );
134 -+ rc = queryTokenizer(db, "nosuchtokenizer", &p2);
135 -+ assert( rc==SQLITE_OK );
136 -+ assert( p2==p1 );
137 -+ }
138 -
139 - sqlite3_result_text(context, "ok", -1, SQLITE_STATIC);
140 - }
141 -@@ -453,7 +458,7 @@
142 - ** sqlite3Fts3HashInit(pHash, FTS3_HASH_STRING, 1);
143 - **
144 - ** This function adds a scalar function (see header comment above
145 --** scalarFunc() in this file for details) and, if ENABLE_TABLE is
146 -+** fts3TokenizerFunc() in this file for details) and, if ENABLE_TABLE is
147 - ** defined at compilation time, a temporary virtual table (see header
148 - ** comment above struct HashTableVtab) to the database schema. Both
149 - ** provide read/write access to the contents of *pHash.
150 -@@ -482,10 +487,10 @@
151 - #endif
152 -
153 - if( SQLITE_OK==rc ){
154 -- rc = sqlite3_create_function(db, zName, 1, any, p, scalarFunc, 0, 0);
155 -+ rc = sqlite3_create_function(db, zName, 1, any, p, fts3TokenizerFunc, 0, 0);
156 - }
157 - if( SQLITE_OK==rc ){
158 -- rc = sqlite3_create_function(db, zName, 2, any, p, scalarFunc, 0, 0);
159 -+ rc = sqlite3_create_function(db, zName, 2, any, p, fts3TokenizerFunc, 0, 0);
160 - }
161 - #ifdef SQLITE_TEST
162 - if( SQLITE_OK==rc ){
163 ---- src/main.c
164 -+++ src/main.c
165 -@@ -797,8 +797,9 @@
166 - int op; /* The opcode */
167 - u32 mask; /* Mask of the bit in sqlite3.flags to set/clear */
168 - } aFlagOp[] = {
169 -- { SQLITE_DBCONFIG_ENABLE_FKEY, SQLITE_ForeignKeys },
170 -- { SQLITE_DBCONFIG_ENABLE_TRIGGER, SQLITE_EnableTrigger },
171 -+ { SQLITE_DBCONFIG_ENABLE_FKEY, SQLITE_ForeignKeys },
172 -+ { SQLITE_DBCONFIG_ENABLE_TRIGGER, SQLITE_EnableTrigger },
173 -+ { SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER, SQLITE_Fts3Tokenizer },
174 - };
175 - unsigned int i;
176 - rc = SQLITE_ERROR; /* IMP: R-42790-23372 */
177 -@@ -2815,6 +2816,9 @@
178 - #if defined(SQLITE_ENABLE_OVERSIZE_CELL_CHECK)
179 - | SQLITE_CellSizeCk
180 - #endif
181 -+#if defined(SQLITE_ENABLE_FTS3_TOKENIZER)
182 -+ | SQLITE_Fts3Tokenizer
183 -+#endif
184 - ;
185 - sqlite3HashInit(&db->aCollSeq);
186 - #ifndef SQLITE_OMIT_VIRTUALTABLE
187 ---- src/sqlite.h.in
188 -+++ src/sqlite.h.in
189 -@@ -1904,11 +1904,25 @@
190 - ** following this call. The second parameter may be a NULL pointer, in
191 - ** which case the trigger setting is not reported back. </dd>
192 - **
193 -+** <dt>SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER</dt>
194 -+** <dd> ^This option is used to enable or disable the two-argument
195 -+** version of the [fts3_tokenizer()] function which is part of the
196 -+** [FTS3] full-text search engine extension.
197 -+** There should be two additional arguments.
198 -+** The first argument is an integer which is 0 to disable fts3_tokenizer() or
199 -+** positive to enable fts3_tokenizer() or negative to leave the setting
200 -+** unchanged.
201 -+** The second parameter is a pointer to an integer into which
202 -+** is written 0 or 1 to indicate whether fts3_tokenizer is disabled or enabled
203 -+** following this call. The second parameter may be a NULL pointer, in
204 -+** which case the new setting is not reported back. </dd>
205 -+**
206 - ** </dl>
207 - */
208 --#define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */
209 --#define SQLITE_DBCONFIG_ENABLE_FKEY 1002 /* int int* */
210 --#define SQLITE_DBCONFIG_ENABLE_TRIGGER 1003 /* int int* */
211 -+#define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */
212 -+#define SQLITE_DBCONFIG_ENABLE_FKEY 1002 /* int int* */
213 -+#define SQLITE_DBCONFIG_ENABLE_TRIGGER 1003 /* int int* */
214 -+#define SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER 1004 /* int int* */
215 -
216 -
217 - /*
218 ---- src/sqliteInt.h
219 -+++ src/sqliteInt.h
220 -@@ -1317,6 +1317,7 @@
221 - #define SQLITE_VdbeEQP 0x04000000 /* Debug EXPLAIN QUERY PLAN */
222 - #define SQLITE_Vacuum 0x08000000 /* Currently in a VACUUM */
223 - #define SQLITE_CellSizeCk 0x10000000 /* Check btree cell sizes on load */
224 -+#define SQLITE_Fts3Tokenizer 0x20000000 /* Enable fts3_tokenizer(2) */
225 -
226 -
227 - /*
228 ---- src/test1.c
229 -+++ src/test1.c
230 -@@ -6921,6 +6921,53 @@
231 - }
232 -
233 - /*
234 -+** tclcmd: sqlite3_db_config DB SETTING VALUE
235 -+**
236 -+** Invoke sqlite3_db_config() for one of the setting values.
237 -+*/
238 -+static int test_sqlite3_db_config(
239 -+ void *clientData,
240 -+ Tcl_Interp *interp,
241 -+ int objc,
242 -+ Tcl_Obj *CONST objv[]
243 -+){
244 -+ static const struct {
245 -+ const char *zName;
246 -+ int eVal;
247 -+ } aSetting[] = {
248 -+ { "FKEY", SQLITE_DBCONFIG_ENABLE_FKEY },
249 -+ { "TRIGGER", SQLITE_DBCONFIG_ENABLE_TRIGGER },
250 -+ { "FTS3_TOKENIZER", SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER },
251 -+ };
252 -+ int i;
253 -+ int v;
254 -+ const char *zSetting;
255 -+ sqlite3 *db;
256 -+
257 -+ if( objc!=4 ){
258 -+ Tcl_WrongNumArgs(interp, 1, objv, "DB SETTING VALUE");
259 -+ return TCL_ERROR;
260 -+ }
261 -+ if( getDbPointer(interp, Tcl_GetString(objv[1]), &db) ) return TCL_ERROR;
262 -+ zSetting = Tcl_GetString(objv[2]);
263 -+ if( sqlite3_strglob("SQLITE_*", zSetting)==0 ) zSetting += 7;
264 -+ if( sqlite3_strglob("DBCONFIG_*", zSetting)==0 ) zSetting += 9;
265 -+ if( sqlite3_strglob("ENABLE_*", zSetting)==0 ) zSetting += 7;
266 -+ for(i=0; i<ArraySize(aSetting); i++){
267 -+ if( strcmp(zSetting, aSetting[i].zName)==0 ) break;
268 -+ }
269 -+ if( i>=ArraySize(aSetting) ){
270 -+ Tcl_SetObjResult(interp,
271 -+ Tcl_NewStringObj("unknown sqlite3_db_config setting", -1));
272 -+ return TCL_ERROR;
273 -+ }
274 -+ if( Tcl_GetIntFromObj(interp, objv[3], &v) ) return TCL_ERROR;
275 -+ sqlite3_db_config(db, aSetting[i].eVal, v, &v);
276 -+ Tcl_SetObjResult(interp, Tcl_NewIntObj(v));
277 -+ return TCL_OK;
278 -+}
279 -+
280 -+/*
281 - ** Register commands with the TCL interpreter.
282 - */
283 - int Sqlitetest1_Init(Tcl_Interp *interp){
284 -@@ -6989,6 +7036,7 @@
285 - Tcl_ObjCmdProc *xProc;
286 - void *clientData;
287 - } aObjCmd[] = {
288 -+ { "sqlite3_db_config", test_sqlite3_db_config, 0 },
289 - { "bad_behavior", test_bad_behavior, (void*)&iZero },
290 - { "register_dbstat_vtab", test_register_dbstat_vtab },
291 - { "sqlite3_connection_pointer", get_sqlite_pointer, 0 },
292 ---- src/test_config.c
293 -+++ src/test_config.c
294 -@@ -370,12 +370,6 @@
295 - Tcl_SetVar2(interp, "sqlite_options", "fts3", "0", TCL_GLOBAL_ONLY);
296 - #endif
297 -
298 --#ifdef SQLITE_ENABLE_FTS3_TOKENIZER
299 -- Tcl_SetVar2(interp, "sqlite_options", "fts3_tokenizer", "1", TCL_GLOBAL_ONLY);
300 --#else
301 -- Tcl_SetVar2(interp, "sqlite_options", "fts3_tokenizer", "0", TCL_GLOBAL_ONLY);
302 --#endif
303 --
304 - #ifdef SQLITE_ENABLE_FTS5
305 - Tcl_SetVar2(interp, "sqlite_options", "fts5", "1", TCL_GLOBAL_ONLY);
306 - #else
307 ---- test/fts3atoken.test
308 -+++ test/fts3atoken.test
309 -@@ -56,40 +56,41 @@
310 - #
311 - # 5: Test that the table created to use tokenizer 'blah' is usable.
312 - #
313 --ifcapable fts3_tokenizer {
314 -- do_test fts3atoken-1.1 {
315 -- catchsql {
316 -- CREATE VIRTUAL TABLE t1 USING fts3(content, tokenize blah);
317 -- }
318 -- } {1 {unknown tokenizer: blah}}
319 -- do_test fts3atoken-1.2 {
320 -- execsql {
321 -- SELECT fts3_tokenizer('blah', fts3_tokenizer('simple')) IS NULL;
322 -- }
323 -- } {0}
324 -- do_test fts3atoken-1.3 {
325 -- execsql {
326 -- SELECT fts3_tokenizer('blah') == fts3_tokenizer('simple');
327 -- }
328 -- } {1}
329 -- do_test fts3atoken-1.4 {
330 -- catchsql {
331 -- CREATE VIRTUAL TABLE t1 USING fts3(content, tokenize blah);
332 -- }
333 -- } {0 {}}
334 -- do_test fts3atoken-1.5 {
335 -- execsql {
336 -- INSERT INTO t1(content) VALUES('There was movement at the station');
337 -- INSERT INTO t1(content) VALUES('For the word has passed around');
338 -- INSERT INTO t1(content) VALUES('That the colt from ol regret had got');
339 -- SELECT content FROM t1 WHERE content MATCH 'movement'
340 -- }
341 -- } {{There was movement at the station}}
342 --} else {
343 -- do_catchsql_test 1.6 {
344 -+sqlite3_db_config db SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER 1
345 -+do_test fts3atoken-1.1 {
346 -+ catchsql {
347 -+ CREATE VIRTUAL TABLE t1 USING fts3(content, tokenize blah);
348 -+ }
349 -+} {1 {unknown tokenizer: blah}}
350 -+do_test fts3atoken-1.2 {
351 -+ execsql {
352 - SELECT fts3_tokenizer('blah', fts3_tokenizer('simple')) IS NULL;
353 -- } {1 {fts3tokenize: disabled - rebuild with -DSQLITE_ENABLE_FTS3_TOKENIZER}}
354 --}
355 -+ }
356 -+} {0}
357 -+do_test fts3atoken-1.3 {
358 -+ execsql {
359 -+ SELECT fts3_tokenizer('blah') == fts3_tokenizer('simple');
360 -+ }
361 -+} {1}
362 -+do_test fts3atoken-1.4 {
363 -+ catchsql {
364 -+ CREATE VIRTUAL TABLE t1 USING fts3(content, tokenize blah);
365 -+ }
366 -+} {0 {}}
367 -+do_test fts3atoken-1.5 {
368 -+ execsql {
369 -+ INSERT INTO t1(content) VALUES('There was movement at the station');
370 -+ INSERT INTO t1(content) VALUES('For the word has passed around');
371 -+ INSERT INTO t1(content) VALUES('That the colt from ol regret had got');
372 -+ SELECT content FROM t1 WHERE content MATCH 'movement'
373 -+ }
374 -+} {{There was movement at the station}}
375 -+
376 -+sqlite3_db_config db SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER 0
377 -+do_catchsql_test 1.6 {
378 -+ SELECT fts3_tokenizer('blah', fts3_tokenizer('simple')) IS NULL;
379 -+} {1 {fts3tokenize disabled}}
380 -+
381 -
382 - #--------------------------------------------------------------------------
383 - # Test cases fts3atoken-2.* test error cases in the scalar function based
384 -@@ -212,14 +213,14 @@
385 - do_catchsql_test 6.2.1 {
386 - SELECT fts3_tokenizer(NULL);
387 - } {1 {unknown tokenizer: }}
388 --ifcapable fts3_tokenizer {
389 -- do_catchsql_test 6.2.2 {
390 -- SELECT fts3_tokenizer(NULL, X'1234567812345678');
391 -- } {1 {argument type mismatch}}
392 -- do_catchsql_test 6.2.3 {
393 -- SELECT fts3_tokenizer(NULL, X'12345678');
394 -- } {1 {argument type mismatch}}
395 --}
396 -+
397 -+sqlite3_db_config db SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER 1
398 -+do_catchsql_test 6.2.2 {
399 -+ SELECT fts3_tokenizer(NULL, X'1234567812345678');
400 -+} {1 {argument type mismatch}}
401 -+do_catchsql_test 6.2.3 {
402 -+ SELECT fts3_tokenizer(NULL, X'12345678');
403 -+} {1 {argument type mismatch}}
404 -
405 -
406 - finish_test
407 ---- test/fts4langid.test
408 -+++ test/fts4langid.test
409 -@@ -358,31 +358,30 @@
410 - }
411 - }
412 -
413 --ifcapable fts3_tokenizer {
414 -- do_test 4.1.0 {
415 -- reset_db
416 -- set ptr [fts3_test_tokenizer]
417 -- execsql { SELECT fts3_tokenizer('testtokenizer', $ptr) }
418 -- build_multilingual_db_2 db
419 -- } {}
420 -- do_execsql_test 4.1.1 {
421 -- SELECT docid FROM t4 WHERE t4 MATCH 'quick';
422 -- } {0}
423 -- do_execsql_test 4.1.2 {
424 -- SELECT docid FROM t4 WHERE t4 MATCH 'quick' AND lid=1;
425 -- } {}
426 -- do_execsql_test 4.1.3 {
427 -- SELECT docid FROM t4 WHERE t4 MATCH 'Quick' AND lid=1;
428 -- } {1}
429 -- for {set i 0} {$i < 50} {incr i} {
430 -- do_execsql_test 4.1.4.$i {
431 -- SELECT count(*) FROM t4 WHERE t4 MATCH 'fox' AND lid=$i;
432 -- } [expr 0==($i%2)]
433 -- }
434 -- do_catchsql_test 4.1.5 {
435 -- INSERT INTO t4(content, lid) VALUES('hello world', 101)
436 -- } {1 {SQL logic error or missing database}}
437 -+do_test 4.1.0 {
438 -+ reset_db
439 -+ set ptr [fts3_test_tokenizer]
440 -+ sqlite3_db_config db SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER 1
441 -+ execsql { SELECT fts3_tokenizer('testtokenizer', $ptr) }
442 -+ build_multilingual_db_2 db
443 -+} {}
444 -+do_execsql_test 4.1.1 {
445 -+ SELECT docid FROM t4 WHERE t4 MATCH 'quick';
446 -+} {0}
447 -+do_execsql_test 4.1.2 {
448 -+ SELECT docid FROM t4 WHERE t4 MATCH 'quick' AND lid=1;
449 -+} {}
450 -+do_execsql_test 4.1.3 {
451 -+ SELECT docid FROM t4 WHERE t4 MATCH 'Quick' AND lid=1;
452 -+} {1}
453 -+for {set i 0} {$i < 50} {incr i} {
454 -+ do_execsql_test 4.1.4.$i {
455 -+ SELECT count(*) FROM t4 WHERE t4 MATCH 'fox' AND lid=$i;
456 -+ } [expr 0==($i%2)]
457 - }
458 -+do_catchsql_test 4.1.5 {
459 -+ INSERT INTO t4(content, lid) VALUES('hello world', 101)
460 -+} {1 {SQL logic error or missing database}}
461 -
462 - #-------------------------------------------------------------------------
463 - # Test cases 5.*
464
465 diff --git a/dev-db/sqlite/files/sqlite-3.11.0-nonfull_tarball-SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER.patch b/dev-db/sqlite/files/sqlite-3.11.0-nonfull_tarball-SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER.patch
466 deleted file mode 100644
467 index 0ed2517..0000000
468 --- a/dev-db/sqlite/files/sqlite-3.11.0-nonfull_tarball-SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER.patch
469 +++ /dev/null
470 @@ -1,232 +0,0 @@
471 -https://www.sqlite.org/cgi/src/info/374b5108087a2eae
472 -
473 ---- sqlite3.c
474 -+++ sqlite3.c
475 -@@ -2121,11 +2121,25 @@
476 - ** following this call. The second parameter may be a NULL pointer, in
477 - ** which case the trigger setting is not reported back. </dd>
478 - **
479 -+** <dt>SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER</dt>
480 -+** <dd> ^This option is used to enable or disable the two-argument
481 -+** version of the [fts3_tokenizer()] function which is part of the
482 -+** [FTS3] full-text search engine extension.
483 -+** There should be two additional arguments.
484 -+** The first argument is an integer which is 0 to disable fts3_tokenizer() or
485 -+** positive to enable fts3_tokenizer() or negative to leave the setting
486 -+** unchanged.
487 -+** The second parameter is a pointer to an integer into which
488 -+** is written 0 or 1 to indicate whether fts3_tokenizer is disabled or enabled
489 -+** following this call. The second parameter may be a NULL pointer, in
490 -+** which case the new setting is not reported back. </dd>
491 -+**
492 - ** </dl>
493 - */
494 --#define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */
495 --#define SQLITE_DBCONFIG_ENABLE_FKEY 1002 /* int int* */
496 --#define SQLITE_DBCONFIG_ENABLE_TRIGGER 1003 /* int int* */
497 -+#define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */
498 -+#define SQLITE_DBCONFIG_ENABLE_FKEY 1002 /* int int* */
499 -+#define SQLITE_DBCONFIG_ENABLE_TRIGGER 1003 /* int int* */
500 -+#define SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER 1004 /* int int* */
501 -
502 -
503 - /*
504 -@@ -12206,6 +12220,7 @@
505 - #define SQLITE_VdbeEQP 0x04000000 /* Debug EXPLAIN QUERY PLAN */
506 - #define SQLITE_Vacuum 0x08000000 /* Currently in a VACUUM */
507 - #define SQLITE_CellSizeCk 0x10000000 /* Check btree cell sizes on load */
508 -+#define SQLITE_Fts3Tokenizer 0x20000000 /* Enable fts3_tokenizer(2) */
509 -
510 -
511 - /*
512 -@@ -133589,8 +133604,9 @@
513 - int op; /* The opcode */
514 - u32 mask; /* Mask of the bit in sqlite3.flags to set/clear */
515 - } aFlagOp[] = {
516 -- { SQLITE_DBCONFIG_ENABLE_FKEY, SQLITE_ForeignKeys },
517 -- { SQLITE_DBCONFIG_ENABLE_TRIGGER, SQLITE_EnableTrigger },
518 -+ { SQLITE_DBCONFIG_ENABLE_FKEY, SQLITE_ForeignKeys },
519 -+ { SQLITE_DBCONFIG_ENABLE_TRIGGER, SQLITE_EnableTrigger },
520 -+ { SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER, SQLITE_Fts3Tokenizer },
521 - };
522 - unsigned int i;
523 - rc = SQLITE_ERROR; /* IMP: R-42790-23372 */
524 -@@ -135607,6 +135623,9 @@
525 - #if defined(SQLITE_ENABLE_OVERSIZE_CELL_CHECK)
526 - | SQLITE_CellSizeCk
527 - #endif
528 -+#if defined(SQLITE_ENABLE_FTS3_TOKENIZER)
529 -+ | SQLITE_Fts3Tokenizer
530 -+#endif
531 - ;
532 - sqlite3HashInit(&db->aCollSeq);
533 - #ifndef SQLITE_OMIT_VIRTUALTABLE
534 -@@ -146857,6 +146876,18 @@
535 - /* #include <string.h> */
536 -
537 - /*
538 -+** Return true if the two-argument version of fts3_tokenizer()
539 -+** has been activated via a prior call to sqlite3_db_config(db,
540 -+** SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER, 1, 0);
541 -+*/
542 -+static int fts3TokenizerEnabled(sqlite3_context *context){
543 -+ sqlite3 *db = sqlite3_context_db_handle(context);
544 -+ int isEnabled = 0;
545 -+ sqlite3_db_config(db,SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER,-1,&isEnabled);
546 -+ return isEnabled;
547 -+}
548 -+
549 -+/*
550 - ** Implementation of the SQL scalar function for accessing the underlying
551 - ** hash table. This function may be called as follows:
552 - **
553 -@@ -146876,7 +146907,7 @@
554 - ** is a blob containing the pointer stored as the hash data corresponding
555 - ** to string <key-name> (after the hash-table is updated, if applicable).
556 - */
557 --static void scalarFunc(
558 -+static void fts3TokenizerFunc(
559 - sqlite3_context *context,
560 - int argc,
561 - sqlite3_value **argv
562 -@@ -146894,27 +146925,23 @@
563 - nName = sqlite3_value_bytes(argv[0])+1;
564 -
565 - if( argc==2 ){
566 --#ifdef SQLITE_ENABLE_FTS3_TOKENIZER
567 -- void *pOld;
568 -- int n = sqlite3_value_bytes(argv[1]);
569 -- if( zName==0 || n!=sizeof(pPtr) ){
570 -- sqlite3_result_error(context, "argument type mismatch", -1);
571 -- return;
572 -- }
573 -- pPtr = *(void **)sqlite3_value_blob(argv[1]);
574 -- pOld = sqlite3Fts3HashInsert(pHash, (void *)zName, nName, pPtr);
575 -- if( pOld==pPtr ){
576 -- sqlite3_result_error(context, "out of memory", -1);
577 -+ if( fts3TokenizerEnabled(context) ){
578 -+ void *pOld;
579 -+ int n = sqlite3_value_bytes(argv[1]);
580 -+ if( zName==0 || n!=sizeof(pPtr) ){
581 -+ sqlite3_result_error(context, "argument type mismatch", -1);
582 -+ return;
583 -+ }
584 -+ pPtr = *(void **)sqlite3_value_blob(argv[1]);
585 -+ pOld = sqlite3Fts3HashInsert(pHash, (void *)zName, nName, pPtr);
586 -+ if( pOld==pPtr ){
587 -+ sqlite3_result_error(context, "out of memory", -1);
588 -+ }
589 -+ }else{
590 -+ sqlite3_result_error(context, "fts3tokenize disabled", -1);
591 - return;
592 - }
593 --#else
594 -- sqlite3_result_error(context, "fts3tokenize: "
595 -- "disabled - rebuild with -DSQLITE_ENABLE_FTS3_TOKENIZER", -1
596 -- );
597 -- return;
598 --#endif /* SQLITE_ENABLE_FTS3_TOKENIZER */
599 -- }else
600 -- {
601 -+ }else{
602 - if( zName ){
603 - pPtr = sqlite3Fts3HashFind(pHash, zName, nName);
604 - }
605 -@@ -146925,7 +146952,6 @@
606 - return;
607 - }
608 - }
609 --
610 - sqlite3_result_blob(context, (void *)&pPtr, sizeof(pPtr), SQLITE_TRANSIENT);
611 - }
612 -
613 -@@ -147163,7 +147189,6 @@
614 - Tcl_DecrRefCount(pRet);
615 - }
616 -
617 --#ifdef SQLITE_ENABLE_FTS3_TOKENIZER
618 - static
619 - int registerTokenizer(
620 - sqlite3 *db,
621 -@@ -147185,7 +147210,6 @@
622 -
623 - return sqlite3_finalize(pStmt);
624 - }
625 --#endif /* SQLITE_ENABLE_FTS3_TOKENIZER */
626 -
627 -
628 - static
629 -@@ -147258,13 +147282,13 @@
630 - assert( 0==strcmp(sqlite3_errmsg(db), "unknown tokenizer: nosuchtokenizer") );
631 -
632 - /* Test the storage function */
633 --#ifdef SQLITE_ENABLE_FTS3_TOKENIZER
634 -- rc = registerTokenizer(db, "nosuchtokenizer", p1);
635 -- assert( rc==SQLITE_OK );
636 -- rc = queryTokenizer(db, "nosuchtokenizer", &p2);
637 -- assert( rc==SQLITE_OK );
638 -- assert( p2==p1 );
639 --#endif
640 -+ if( fts3TokenizerEnabled(context) ){
641 -+ rc = registerTokenizer(db, "nosuchtokenizer", p1);
642 -+ assert( rc==SQLITE_OK );
643 -+ rc = queryTokenizer(db, "nosuchtokenizer", &p2);
644 -+ assert( rc==SQLITE_OK );
645 -+ assert( p2==p1 );
646 -+ }
647 -
648 - sqlite3_result_text(context, "ok", -1, SQLITE_STATIC);
649 - }
650 -@@ -147280,7 +147304,7 @@
651 - ** sqlite3Fts3HashInit(pHash, FTS3_HASH_STRING, 1);
652 - **
653 - ** This function adds a scalar function (see header comment above
654 --** scalarFunc() in this file for details) and, if ENABLE_TABLE is
655 -+** fts3TokenizerFunc() in this file for details) and, if ENABLE_TABLE is
656 - ** defined at compilation time, a temporary virtual table (see header
657 - ** comment above struct HashTableVtab) to the database schema. Both
658 - ** provide read/write access to the contents of *pHash.
659 -@@ -147309,10 +147333,10 @@
660 - #endif
661 -
662 - if( SQLITE_OK==rc ){
663 -- rc = sqlite3_create_function(db, zName, 1, any, p, scalarFunc, 0, 0);
664 -+ rc = sqlite3_create_function(db, zName, 1, any, p, fts3TokenizerFunc, 0, 0);
665 - }
666 - if( SQLITE_OK==rc ){
667 -- rc = sqlite3_create_function(db, zName, 2, any, p, scalarFunc, 0, 0);
668 -+ rc = sqlite3_create_function(db, zName, 2, any, p, fts3TokenizerFunc, 0, 0);
669 - }
670 - #ifdef SQLITE_TEST
671 - if( SQLITE_OK==rc ){
672 ---- sqlite3.h
673 -+++ sqlite3.h
674 -@@ -1904,11 +1904,25 @@
675 - ** following this call. The second parameter may be a NULL pointer, in
676 - ** which case the trigger setting is not reported back. </dd>
677 - **
678 -+** <dt>SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER</dt>
679 -+** <dd> ^This option is used to enable or disable the two-argument
680 -+** version of the [fts3_tokenizer()] function which is part of the
681 -+** [FTS3] full-text search engine extension.
682 -+** There should be two additional arguments.
683 -+** The first argument is an integer which is 0 to disable fts3_tokenizer() or
684 -+** positive to enable fts3_tokenizer() or negative to leave the setting
685 -+** unchanged.
686 -+** The second parameter is a pointer to an integer into which
687 -+** is written 0 or 1 to indicate whether fts3_tokenizer is disabled or enabled
688 -+** following this call. The second parameter may be a NULL pointer, in
689 -+** which case the new setting is not reported back. </dd>
690 -+**
691 - ** </dl>
692 - */
693 --#define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */
694 --#define SQLITE_DBCONFIG_ENABLE_FKEY 1002 /* int int* */
695 --#define SQLITE_DBCONFIG_ENABLE_TRIGGER 1003 /* int int* */
696 -+#define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */
697 -+#define SQLITE_DBCONFIG_ENABLE_FKEY 1002 /* int int* */
698 -+#define SQLITE_DBCONFIG_ENABLE_TRIGGER 1003 /* int int* */
699 -+#define SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER 1004 /* int int* */
700 -
701 -
702 - /*
703
704 diff --git a/dev-db/sqlite/files/sqlite-3.11.0-nonfull_tarball-build.patch b/dev-db/sqlite/files/sqlite-3.11.0-nonfull_tarball-build.patch
705 deleted file mode 100644
706 index e0b477c..0000000
707 --- a/dev-db/sqlite/files/sqlite-3.11.0-nonfull_tarball-build.patch
708 +++ /dev/null
709 @@ -1,38 +0,0 @@
710 -Link executables against libsqlite3.so.
711 -Fix building with dlopen() not available.
712 -
713 ---- Makefile.am
714 -+++ Makefile.am
715 -@@ -1,15 +1,16 @@
716 -
717 --AM_CFLAGS = @THREADSAFE_FLAGS@ @DYNAMIC_EXTENSION_FLAGS@ @FTS5_FLAGS@ @JSON1_FLAGS@ -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE
718 -+AM_CFLAGS = @THREADSAFE_FLAGS@ @DYNAMIC_EXTENSION_FLAGS@ @FTS5_FLAGS@ @JSON1_FLAGS@ -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE
719 -
720 - lib_LTLIBRARIES = libsqlite3.la
721 - libsqlite3_la_SOURCES = sqlite3.c
722 - libsqlite3_la_LDFLAGS = -no-undefined -version-info 8:6:8
723 -
724 - bin_PROGRAMS = sqlite3
725 --sqlite3_SOURCES = shell.c sqlite3.c sqlite3.h
726 --sqlite3_LDADD = @READLINE_LIBS@
727 -+sqlite3_SOURCES = shell.c sqlite3.h
728 -+EXTRA_sqlite3_SOURCES = sqlite3.c
729 -+sqlite3_LDADD = @EXTRA_SHELL_OBJ@ @READLINE_LIBS@
730 - sqlite3_DEPENDENCIES = @EXTRA_SHELL_OBJ@
731 --sqlite3_CFLAGS = $(AM_CFLAGS) -DSQLITE_ENABLE_EXPLAIN_COMMENTS
732 -+sqlite3_CFLAGS = $(AM_CFLAGS)
733 -
734 - include_HEADERS = sqlite3.h sqlite3ext.h
735 -
736 ---- configure.ac
737 -+++ configure.ac
738 -@@ -89,6 +89,9 @@
739 - [], [enable_dynamic_extensions=yes])
740 - if test x"$enable_dynamic_extensions" != "xno"; then
741 - AC_SEARCH_LIBS(dlopen, dl)
742 -+ if test "${ac_cv_search_dlopen}" = "no" ; then
743 -+ DYNAMIC_EXTENSION_FLAGS=-DSQLITE_OMIT_LOAD_EXTENSION=1
744 -+ fi
745 - else
746 - DYNAMIC_EXTENSION_FLAGS=-DSQLITE_OMIT_LOAD_EXTENSION=1
747 - fi