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 |