diff options
author | Jürg Billeter <j@bitron.ch> | 2009-04-17 18:05:00 +0200 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2009-04-20 14:48:47 +0200 |
commit | 7fae774a0522fe0cc235fb82efac1c33b0c64d3b (patch) | |
tree | 827e9d8011a1ab369ee6bfd8238343ecbc2a14a3 /src/libtracker-db | |
parent | 9ac341517d8a62053c040b118fd0f3fe758fd500 (diff) | |
download | tracker-7fae774a0522fe0cc235fb82efac1c33b0c64d3b.tar.gz |
Add initial SQLite FTS support
Diffstat (limited to 'src/libtracker-db')
-rw-r--r-- | src/libtracker-db/Makefile.am | 18 | ||||
-rw-r--r-- | src/libtracker-db/tracker-db-interface-sqlite.c | 15 | ||||
-rw-r--r-- | src/libtracker-db/tracker-db-manager.c | 17 |
3 files changed, 35 insertions, 15 deletions
diff --git a/src/libtracker-db/Makefile.am b/src/libtracker-db/Makefile.am index 4cfb83512..14a32d422 100644 --- a/src/libtracker-db/Makefile.am +++ b/src/libtracker-db/Makefile.am @@ -19,9 +19,6 @@ libtracker_db_la_SOURCES = \ tracker-db-action.c \ tracker-db-dbus.c \ tracker-db-file-info.c \ - tracker-db-index.c \ - tracker-db-index-item.c \ - tracker-db-index-manager.c \ tracker-db-interface.c \ tracker-db-interface-sqlite.c \ tracker-db-manager.c @@ -30,13 +27,22 @@ noinst_HEADERS = \ tracker-db-action.h \ tracker-db-dbus.h \ tracker-db-file-info.h \ - tracker-db-index.h \ - tracker-db-index-item.h \ - tracker-db-index-manager.h \ tracker-db-interface.h \ tracker-db-interface-sqlite.h \ tracker-db-manager.h +if !ENABLE_SQLITE_FTS +libtracker_db_la_SOURCES += \ + tracker-db-index.c \ + tracker-db-index-item.c \ + tracker-db-index-manager.c + +noinst_HEADERS += \ + tracker-db-index.h \ + tracker-db-index-item.h \ + tracker-db-index-manager.h +endif + libtracker_db_la_LDFLAGS = \ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) diff --git a/src/libtracker-db/tracker-db-interface-sqlite.c b/src/libtracker-db/tracker-db-interface-sqlite.c index 2347acc48..33a7d8435 100644 --- a/src/libtracker-db/tracker-db-interface-sqlite.c +++ b/src/libtracker-db/tracker-db-interface-sqlite.c @@ -18,6 +18,8 @@ * Boston, MA 02110-1301, USA. */ +#include "config.h" + #include <glib/gstdio.h> #include <sqlite3.h> @@ -99,6 +101,7 @@ tracker_db_interface_sqlite_constructor (GType type, { GObject *object; TrackerDBInterfaceSqlitePrivate *priv; + gchar *err_msg = NULL; object = (* G_OBJECT_CLASS (tracker_db_interface_sqlite_parent_class)->constructor) (type, n_construct_properties, @@ -123,6 +126,18 @@ tracker_db_interface_sqlite_constructor (GType type, sqlite3_extended_result_codes (priv->db, 0); sqlite3_busy_timeout (priv->db, 10000000); +#ifdef HAVE_SQLITE_FTS + sqlite3_enable_load_extension (priv->db, 1); + sqlite3_load_extension (priv->db, "tracker-fts.so", NULL, &err_msg); + + if (err_msg) { + g_critical ("Could not load tracker-fts extension:'%s'", err_msg); + sqlite3_free (err_msg); + } else { + g_message ("Loaded tracker fts extension"); + } +#endif + return object; } diff --git a/src/libtracker-db/tracker-db-manager.c b/src/libtracker-db/tracker-db-manager.c index a4bd27159..5dc29c19c 100644 --- a/src/libtracker-db/tracker-db-manager.c +++ b/src/libtracker-db/tracker-db-manager.c @@ -796,15 +796,6 @@ db_interface_get_fulltext (void) iface = db_interface_get (TRACKER_DB_FULLTEXT, &create); - /* - * disabled to avoid warnings while not implemented - if (create) { - tracker_db_interface_start_transaction (iface); - load_sql_file (iface, "sqlite-fulltext.sql", NULL); - tracker_db_interface_end_transaction (iface); - } - */ - return iface; } @@ -1214,10 +1205,18 @@ tracker_db_manager_init (TrackerDBManagerFlags flags, initialized = TRUE; +#ifdef HAVE_SQLITE_FTS + resources_iface = tracker_db_manager_get_db_interfaces (4, + TRACKER_DB_METADATA, + TRACKER_DB_FULLTEXT, + TRACKER_DB_CONTENTS, + TRACKER_DB_COMMON); +#else resources_iface = tracker_db_manager_get_db_interfaces (3, TRACKER_DB_METADATA, TRACKER_DB_CONTENTS, TRACKER_DB_COMMON); +#endif } void |