From 69c4ae24139f26e7cd02d85b072d39f0f87e8287 Mon Sep 17 00:00:00 2001 From: shess Date: Mon, 20 Aug 2007 17:37:47 +0000 Subject: [PATCH] Add support for building with fts3. (CVS 4250) FossilOrigin-Name: 95ef963232ab1f15a7c42229819d33d3571a753e --- main.mk | 59 +++++++++++++++++++++++++++++++++++++++++++---- manifest | 16 ++++++------- manifest.uuid | 2 +- src/main.c | 9 +++++++- src/test_config.c | 8 ++++++- 5 files changed, 79 insertions(+), 15 deletions(-) diff --git a/main.mk b/main.mk index 68c3e313b9..004be61ae8 100644 --- a/main.mk +++ b/main.mk @@ -66,8 +66,23 @@ LIBOBJ+= alter.o analyze.o attach.o auth.o btree.o build.o \ vdbe.o vdbeapi.o vdbeaux.o vdbeblob.o vdbefifo.o vdbemem.o \ where.o utf.o legacy.o vtab.o -EXTOBJ = icu.o fts2.o fts2_hash.o fts2_icu.o fts2_porter.o \ - fts2_tokenizer.o fts2_tokenizer1.o +EXTOBJ = icu.o +EXTOBJ += fts1.o \ + fts1_hash.o \ + fts1_tokenizer1.o \ + fts1_porter.o +EXTOBJ += fts2.o \ + fts2_hash.o \ + fts2_icu.o \ + fts2_porter.o \ + fts2_tokenizer.o \ + fts2_tokenizer1.o +EXTOBJ += fts3.o \ + fts3_hash.o \ + fts3_icu.o \ + fts3_porter.o \ + fts3_tokenizer.o \ + fts3_tokenizer1.o # All of the source code files. # @@ -150,6 +165,16 @@ SRC += \ $(TOP)/ext/fts2/fts2_tokenizer.h \ $(TOP)/ext/fts2/fts2_tokenizer.c \ $(TOP)/ext/fts2/fts2_tokenizer1.c +SRC += \ + $(TOP)/ext/fts3/fts3.c \ + $(TOP)/ext/fts3/fts3.h \ + $(TOP)/ext/fts3/fts3_hash.c \ + $(TOP)/ext/fts3/fts3_hash.h \ + $(TOP)/ext/fts3/fts3_icu.c \ + $(TOP)/ext/fts3/fts3_porter.c \ + $(TOP)/ext/fts3/fts3_tokenizer.h \ + $(TOP)/ext/fts3/fts3_tokenizer.c \ + $(TOP)/ext/fts3/fts3_tokenizer1.c SRC += \ $(TOP)/ext/icu/icu.c @@ -203,8 +228,9 @@ TESTSRC = \ $(TOP)/src/util.c \ $(TOP)/src/vdbe.c \ $(TOP)/src/vdbeaux.c \ - $(TOP)/src/where.c \ - $(TOP)/ext/fts2/fts2_tokenizer.c + $(TOP)/src/where.c +TESTSRC += $(TOP)/ext/fts2/fts2_tokenizer.c +TESTSRC += $(TOP)/ext/fts3/fts3_tokenizer.c # Header files used by all library source files. # @@ -232,6 +258,10 @@ EXTHDR += \ $(TOP)/ext/fts2/fts2.h \ $(TOP)/ext/fts2/fts2_hash.h \ $(TOP)/ext/fts2/fts2_tokenizer.h +EXTHDR += \ + $(TOP)/ext/fts3/fts3.h \ + $(TOP)/ext/fts3/fts3_hash.h \ + $(TOP)/ext/fts3/fts3_tokenizer.h # Header files used by the VDBE submodule @@ -283,6 +313,9 @@ sqlite3.c: target_source $(TOP)/tool/mksqlite3c.tcl fts2amal.c: target_source $(TOP)/ext/fts2/mkfts2amal.tcl tclsh $(TOP)/ext/fts2/mkfts2amal.tcl +fts3amal.c: target_source $(TOP)/ext/fts3/mkfts3amal.tcl + tclsh $(TOP)/ext/fts3/mkfts3amal.tcl + # Rules to build the LEMON compiler generator # lemon: $(TOP)/tool/lemon.c $(TOP)/tool/lempar.c @@ -484,6 +517,24 @@ fts2_tokenizer.o: $(TOP)/ext/fts2/fts2_tokenizer.c $(HDR) $(EXTHDR) fts2_tokenizer1.o: $(TOP)/ext/fts2/fts2_tokenizer1.c $(HDR) $(EXTHDR) $(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts2/fts2_tokenizer1.c +fts3.o: $(TOP)/ext/fts3/fts3.c $(HDR) $(EXTHDR) + $(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3.c + +fts3_hash.o: $(TOP)/ext/fts3/fts3_hash.c $(HDR) $(EXTHDR) + $(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_hash.c + +fts3_icu.o: $(TOP)/ext/fts3/fts3_icu.c $(HDR) $(EXTHDR) + $(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_icu.c + +fts3_porter.o: $(TOP)/ext/fts3/fts3_porter.c $(HDR) $(EXTHDR) + $(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_porter.c + +fts3_tokenizer.o: $(TOP)/ext/fts3/fts3_tokenizer.c $(HDR) $(EXTHDR) + $(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_tokenizer.c + +fts3_tokenizer1.o: $(TOP)/ext/fts3/fts3_tokenizer1.c $(HDR) $(EXTHDR) + $(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_tokenizer1.c + # Rules for building test programs and for running tests # diff --git a/manifest b/manifest index 60088548ca..2a221568cf 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Copy\sfts2\sto\sfts3,\srenaming,\sand\sreplacing\sreferences\sto\sfts2\swith\nfts3,\sincluding\scapitalization\svariants.\s(CVS\s4249) -D 2007-08-20T17:37:03 +C Add\ssupport\sfor\sbuilding\swith\sfts3.\s(CVS\s4250) +D 2007-08-20T17:37:48 F Makefile.in 0c0e53720f658c7a551046442dd7afba0b72bfbe F Makefile.linux-gcc 65241babba6faf1152bf86574477baab19190499 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 @@ -63,7 +63,7 @@ F ext/icu/README.txt 3b130aa66e7a681136f6add198b076a2f90d1e33 F ext/icu/icu.c 61a345d8126686aa3487aa8d2d0f68abd655f7a4 F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 F ltmain.sh 56abb507100ed2d4261f6dd1653dec3cf4066387 -F main.mk 659cad1c400ab92948087d46c499e0330215db7b +F main.mk e90dcb16ce27c6d8d8ed18335c4cc03f5a5fed0b F mkdll.sh 37fa8a7412e51b5ab2bc6d4276135f022a0feffb F mkextu.sh 416f9b7089d80e5590a29692c9d9280a10dbad9f F mkextw.sh 1a866b53637dab137191341cc875575a5ca110fb @@ -97,7 +97,7 @@ F src/insert.c 633322aef1799f6604fa805e12488bc628570b0c F src/legacy.c 6013a7cb7da1b72550b3d35d4fc598b3c3e5b8c1 F src/limits.h 71ab25f17e35e0a9f3f6f234b8ed49cc56731d35 F src/loadext.c c0ccda3dbda109da087a8fd762deebe5fdf24a1d -F src/main.c b597752b33dce7dec3940fa302b4130ebf4d1ba7 +F src/main.c 685aa31a7af0d650c94e6968d713c3a9374aa72e F src/malloc.c 613c65f12ff0ee4edd017aa458209ab7a23cd7b1 F src/md5.c c5fdfa5c2593eaee2e32a5ce6c6927c986eaf217 F src/mem1.c 30bf8be3846f92fdf88c490c5e5378512383bcbe @@ -142,7 +142,7 @@ F src/test9.c c0f38f7795cc51d37db6c63874d90f40f10d0f0e F src/test_async.c 871ffbe4a520be74b403aca87aa622ebdb690232 F src/test_autoext.c 855157d97aa28cf84233847548bfacda21807436 F src/test_btree.c c1308ba0b88ab577fa56c9e493a09829dfcded9c -F src/test_config.c 26389b032216e0fb2b544ff48a5e9101bd7b1fb4 +F src/test_config.c 1d0da26fd51757765f2073c57a925db8ddc7120c F src/test_hexio.c 82916f918687502658f02533b519c38cb180db6d F src/test_loadext.c 22065d601a18878e5542191001f0eaa5d77c0ed8 F src/test_malloc.c d9ba6be85f9c4a439b19f6e0a72d91c369d72c63 @@ -541,7 +541,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5 -P 917790413ced92266bf5c7cca6d130ed7ac6221b -R 12135797b14d0786e21cb0e23688a7b7 +P 216c91d2fc49792d9ff53596746f1162f5b7f8d4 +R 2c4f6435b19caee2352f00347c6724cc U shess -Z 6b59af8f3637dd0e81f2542e9ac4aa6a +Z fc4df19e02ea94b7a6ecca752c10e7ee diff --git a/manifest.uuid b/manifest.uuid index 72e0d3aaf2..32977b740d 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -216c91d2fc49792d9ff53596746f1162f5b7f8d4 \ No newline at end of file +95ef963232ab1f15a7c42229819d33d3571a753e \ No newline at end of file diff --git a/src/main.c b/src/main.c index 5983e55192..9cb779c6c1 100644 --- a/src/main.c +++ b/src/main.c @@ -14,7 +14,7 @@ ** other files are for internal use by SQLite and should not be ** accessed by users of the library. ** -** $Id: main.c,v 1.387 2007/08/20 16:07:01 danielk1977 Exp $ +** $Id: main.c,v 1.388 2007/08/20 17:37:48 shess Exp $ */ #include "sqliteInt.h" #include "os.h" @@ -1001,6 +1001,13 @@ static int openDatabase( } #endif +#ifdef SQLITE_ENABLE_FTS3 + if( !db->mallocFailed && rc==SQLITE_OK ){ + extern int sqlite3Fts3Init(sqlite3*); + rc = sqlite3Fts3Init(db); + } +#endif + #ifdef SQLITE_ENABLE_ICU if( !db->mallocFailed && rc==SQLITE_OK ){ extern int sqlite3IcuInit(sqlite3*); diff --git a/src/test_config.c b/src/test_config.c index f8312e435e..78ec7af404 100644 --- a/src/test_config.c +++ b/src/test_config.c @@ -16,7 +16,7 @@ ** The focus of this file is providing the TCL testing layer ** access to compile-time constants. ** -** $Id: test_config.c,v 1.7 2007/08/13 15:18:28 drh Exp $ +** $Id: test_config.c,v 1.8 2007/08/20 17:37:48 shess Exp $ */ #include "sqliteInt.h" #include "tcl.h" @@ -197,6 +197,12 @@ static void set_options(Tcl_Interp *interp){ Tcl_SetVar2(interp, "sqlite_options", "fts2", "0", TCL_GLOBAL_ONLY); #endif +#ifdef SQLITE_ENABLE_FTS3 + Tcl_SetVar2(interp, "sqlite_options", "fts3", "1", TCL_GLOBAL_ONLY); +#else + Tcl_SetVar2(interp, "sqlite_options", "fts3", "0", TCL_GLOBAL_ONLY); +#endif + #ifdef SQLITE_OMIT_GLOBALRECOVER Tcl_SetVar2(interp, "sqlite_options", "globalrecover", "0", TCL_GLOBAL_ONLY); #else