[tracker/wip/carlosg/sparql1.1: 178/201] libtracker-data: Create fts5/fts_view tables per database
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/carlosg/sparql1.1: 178/201] libtracker-data: Create fts5/fts_view tables per database
- Date: Mon, 9 Sep 2019 22:33:46 +0000 (UTC)
commit 57acbeb56e9a7f4a6215667ecf99752771f969d1
Author: Carlos Garnacho <carlosg gnome org>
Date: Sun Jul 28 17:30:29 2019 +0200
libtracker-data: Create fts5/fts_view tables per database
src/libtracker-data/tracker-data-manager.c | 62 +++++++++++++++-----
src/libtracker-data/tracker-data-update.c | 8 ++-
src/libtracker-data/tracker-db-interface-sqlite.c | 37 ++++++++----
src/libtracker-data/tracker-db-interface-sqlite.h | 15 +++--
src/libtracker-fts/tracker-fts.c | 71 ++++++++++++-----------
src/libtracker-fts/tracker-fts.h | 24 ++++----
6 files changed, 140 insertions(+), 77 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index c0d12cbbc..9b918eb90 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -134,7 +134,8 @@ enum {
#if HAVE_TRACKER_FTS
static gboolean tracker_data_manager_fts_changed (TrackerDataManager *manager);
static void tracker_data_manager_update_fts (TrackerDataManager *manager,
- TrackerDBInterface *iface);
+ TrackerDBInterface *iface,
+ const gchar *database);
#endif
static void tracker_data_manager_initable_iface_init (GInitableIface *iface);
@@ -3854,24 +3855,33 @@ static void
rebuild_fts_tokens (TrackerDataManager *manager,
TrackerDBInterface *iface)
{
+ GHashTableIter iter;
+ gchar *graph;
+
g_debug ("Rebuilding FTS tokens, this may take a moment...");
- tracker_db_interface_sqlite_fts_rebuild_tokens (iface);
- g_debug ("FTS tokens rebuilt");
+ tracker_db_interface_sqlite_fts_rebuild_tokens (iface, "main");
+
+ g_hash_table_iter_init (&iter, manager->graphs);
+ while (g_hash_table_iter_next (&iter, (gpointer*) &graph, NULL))
+ tracker_db_interface_sqlite_fts_rebuild_tokens (iface, graph);
+ g_debug ("FTS tokens rebuilt");
/* Update the stamp file */
tracker_db_manager_tokenizer_update (manager->db_manager);
}
static gboolean
-tracker_data_manager_init_fts (TrackerDBInterface *iface,
+tracker_data_manager_init_fts (TrackerDataManager *manager,
+ TrackerDBInterface *iface,
+ const gchar *database,
gboolean create)
{
GHashTable *fts_props, *multivalued;
- TrackerDataManager *manager;
- manager = tracker_db_interface_get_user_data (iface);
ontology_get_fts_properties (manager, &fts_props, &multivalued);
- tracker_db_interface_sqlite_fts_init (iface, fts_props,
+ tracker_db_interface_sqlite_fts_init (iface,
+ database,
+ fts_props,
multivalued, create);
g_hash_table_unref (fts_props);
g_hash_table_unref (multivalued);
@@ -3880,12 +3890,15 @@ tracker_data_manager_init_fts (TrackerDBInterface *iface,
static void
tracker_data_manager_update_fts (TrackerDataManager *manager,
- TrackerDBInterface *iface)
+ TrackerDBInterface *iface,
+ const gchar *database)
{
GHashTable *fts_properties, *multivalued;
ontology_get_fts_properties (manager, &fts_properties, &multivalued);
- tracker_db_interface_sqlite_fts_alter_table (iface, fts_properties, multivalued);
+ tracker_db_interface_sqlite_fts_alter_table (iface, database,
+ fts_properties,
+ multivalued);
g_hash_table_unref (fts_properties);
g_hash_table_unref (multivalued);
}
@@ -4076,11 +4089,11 @@ tracker_data_manager_update_union_views (TrackerDataManager *manager,
str = g_string_new (NULL);
g_string_append (str,
"CREATE VIEW temp.\"unionGraph_fts5\" AS "
- "SELECT 0 AS graph, ROWID, *, fts5, rank, tracker_offsets(fts5) AS offsets
FROM \"main\".\"fts5\" ");
+ "SELECT 0 AS graph, ROWID, *, fts5, rank FROM \"main\".\"fts5\" ");
g_hash_table_iter_init (&iter, graphs);
while (g_hash_table_iter_next (&iter, &graph_name, &graph_id)) {
- g_string_append_printf (str, "UNION ALL SELECT %d AS graph, ROWID, *, fts5, rank,
tracker_offsets(fts5) AS offsets FROM \"%s\".\"fts5\" ",
+ g_string_append_printf (str, "UNION ALL SELECT %d AS graph, ROWID, *, fts5, rank FROM
\"%s\".\"fts5\" ",
GPOINTER_TO_INT (graph_id),
(gchar *) graph_name);
}
@@ -4223,11 +4236,15 @@ tracker_data_manager_initialize_iface (TrackerDataManager *data_manager,
error)) {
return FALSE;
}
+
+#if HAVE_TRACKER_FTS
+ tracker_data_manager_init_fts (data_manager, iface, value, FALSE);
+#endif
}
}
#if HAVE_TRACKER_FTS
- tracker_data_manager_init_fts (iface, FALSE);
+ tracker_data_manager_init_fts (data_manager, iface, "main", FALSE);
#endif
return TRUE;
@@ -4531,7 +4548,7 @@ tracker_data_manager_initable_init (GInitable *initable,
}
#if HAVE_TRACKER_FTS
- tracker_data_manager_init_fts (iface, TRUE);
+ tracker_data_manager_init_fts (manager, iface, "main", TRUE);
#endif
tracker_data_manager_initialize_iface (manager, iface, &internal_error);
@@ -4879,7 +4896,7 @@ tracker_data_manager_initable_init (GInitable *initable,
update_fts = tracker_data_manager_fts_changed (manager);
if (update_fts)
- tracker_db_interface_sqlite_fts_delete_table (iface);
+ tracker_db_interface_sqlite_fts_delete_table (iface, "main");
#endif
tracker_data_ontology_setup_db (manager, iface, "main", TRUE,
@@ -4894,19 +4911,30 @@ tracker_data_manager_initable_init (GInitable *initable,
g_hash_table_iter_init (&iter, graphs);
while (g_hash_table_iter_next (&iter, &value, NULL)) {
+ if (update_fts)
+ tracker_db_interface_sqlite_fts_delete_table (iface,
value);
+
tracker_data_ontology_setup_db (manager, iface, value, TRUE,
&ontology_error);
if (ontology_error)
break;
+
+#if HAVE_TRACKER_FTS
+ if (update_fts) {
+ tracker_data_manager_update_fts (manager, iface,
value);
+ } else {
+ tracker_data_manager_init_fts (manager, iface, value,
FALSE);
+ }
+#endif
}
}
if (!ontology_error) {
#if HAVE_TRACKER_FTS
if (update_fts) {
- tracker_data_manager_update_fts (manager, iface);
+ tracker_data_manager_update_fts (manager, iface, "main");
} else {
- tracker_data_manager_init_fts (iface, FALSE);
+ tracker_data_manager_init_fts (manager, iface, "main", FALSE);
}
#endif
}
@@ -5267,6 +5295,8 @@ tracker_data_manager_create_graph (TrackerDataManager *manager,
FALSE, error))
goto detach;
+ tracker_data_manager_init_fts (manager, iface, name, TRUE);
+
id = tracker_data_ensure_graph (manager->data_update, name, error);
if (id == 0)
goto detach;
diff --git a/src/libtracker-data/tracker-data-update.c b/src/libtracker-data/tracker-data-update.c
index ff3380fbd..86679cea5 100644
--- a/src/libtracker-data/tracker-data-update.c
+++ b/src/libtracker-data/tracker-data-update.c
@@ -996,6 +996,7 @@ tracker_data_resource_buffer_flush (TrackerData *data,
g_ptr_array_add (text, NULL);
tracker_db_interface_sqlite_fts_update_text (iface,
+ database,
resource->id,
(const gchar **) properties->pdata,
(const gchar **) text->pdata);
@@ -1367,6 +1368,10 @@ get_old_property_values (TrackerData *data,
GError **error)
{
GArray *old_values;
+ const gchar *database;
+
+ database = data->resource_buffer->graph->graph ?
+ data->resource_buffer->graph->graph : "main";
/* read existing property values */
old_values = g_hash_table_lookup (data->resource_buffer->predicates, property);
@@ -1419,6 +1424,7 @@ get_old_property_values (TrackerData *data,
}
tracker_db_interface_sqlite_fts_delete_text (iface,
+ database,
data->resource_buffer->id,
property_name,
str->str);
@@ -1909,7 +1915,7 @@ cache_delete_resource_type_full (TrackerData *data,
if (strcmp (tracker_class_get_uri (class), TRACKER_PREFIX_RDFS "Resource") == 0 &&
g_hash_table_size (data->resource_buffer->tables) == 0) {
#if HAVE_TRACKER_FTS
- tracker_db_interface_sqlite_fts_delete_id (iface, data->resource_buffer->id);
+ tracker_db_interface_sqlite_fts_delete_id (iface, database,
data->resource_buffer->id);
#endif
/* skip subclass query when deleting whole resource
to improve performance */
diff --git a/src/libtracker-data/tracker-db-interface-sqlite.c
b/src/libtracker-data/tracker-db-interface-sqlite.c
index 0c40a23ba..a789fe963 100644
--- a/src/libtracker-data/tracker-db-interface-sqlite.c
+++ b/src/libtracker-data/tracker-db-interface-sqlite.c
@@ -2080,6 +2080,7 @@ _fts_create_properties (GHashTable *properties)
void
tracker_db_interface_sqlite_fts_init (TrackerDBInterface *db_interface,
+ const gchar *database,
GHashTable *properties,
GHashTable *multivalued,
gboolean create)
@@ -2090,7 +2091,7 @@ tracker_db_interface_sqlite_fts_init (TrackerDBInterface *db_interface,
tracker_fts_init_db (db_interface->db, db_interface, properties);
if (create &&
- !tracker_fts_create_table (db_interface->db, "fts5",
+ !tracker_fts_create_table (db_interface->db, database, "fts5",
properties, multivalued)) {
g_warning ("FTS tables creation failed");
}
@@ -2119,32 +2120,36 @@ tracker_db_interface_sqlite_fts_init (TrackerDBInterface *db_interface,
#if HAVE_TRACKER_FTS
void
-tracker_db_interface_sqlite_fts_delete_table (TrackerDBInterface *db_interface)
+tracker_db_interface_sqlite_fts_delete_table (TrackerDBInterface *db_interface,
+ const gchar *database)
{
- if (!tracker_fts_delete_table (db_interface->db, "fts5")) {
+ if (!tracker_fts_delete_table (db_interface->db, database, "fts5")) {
g_critical ("Failed to delete FTS table");
}
}
void
tracker_db_interface_sqlite_fts_alter_table (TrackerDBInterface *db_interface,
- GHashTable *properties,
- GHashTable *multivalued)
+ const gchar *database,
+ GHashTable *properties,
+ GHashTable *multivalued)
{
- if (!tracker_fts_alter_table (db_interface->db, "fts5", properties, multivalued)) {
+ if (!tracker_fts_alter_table (db_interface->db, database, "fts5", properties, multivalued)) {
g_critical ("Failed to update FTS columns");
}
}
static gchar *
tracker_db_interface_sqlite_fts_create_query (TrackerDBInterface *db_interface,
+ const gchar *database,
gboolean delete,
const gchar **properties)
{
GString *insert_str, *values_str;
gint i;
- insert_str = g_string_new ("INSERT INTO fts5 (");
+ insert_str = g_string_new (NULL);
+ g_string_append_printf (insert_str, "INSERT INTO \"%s\".fts5 (", database);
values_str = g_string_new (NULL);
if (delete) {
@@ -2167,15 +2172,17 @@ tracker_db_interface_sqlite_fts_create_query (TrackerDBInterface *db_interface,
}
static gchar *
-tracker_db_interface_sqlite_fts_create_delete_all_query (TrackerDBInterface *db_interface)
+tracker_db_interface_sqlite_fts_create_delete_all_query (TrackerDBInterface *db_interface,
+ const gchar *database)
{
GString *insert_str;
insert_str = g_string_new (NULL);
g_string_append_printf (insert_str,
- "INSERT INTO fts5 (fts5, rowid %s) "
+ "INSERT INTO \"%s\".fts5 (fts5, rowid %s) "
"SELECT 'delete', rowid %s FROM fts_view "
"WHERE rowid = ?",
+ database,
db_interface->fts_properties,
db_interface->fts_properties);
return g_string_free (insert_str, FALSE);
@@ -2183,6 +2190,7 @@ tracker_db_interface_sqlite_fts_create_delete_all_query (TrackerDBInterface *db_
gboolean
tracker_db_interface_sqlite_fts_update_text (TrackerDBInterface *db_interface,
+ const gchar *database,
int id,
const gchar **properties,
const gchar **text)
@@ -2193,6 +2201,7 @@ tracker_db_interface_sqlite_fts_update_text (TrackerDBInterface *db_interface,
gint i;
query = tracker_db_interface_sqlite_fts_create_query (db_interface,
+ database,
FALSE, properties);
stmt = tracker_db_interface_create_statement (db_interface,
TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE,
@@ -2228,6 +2237,7 @@ tracker_db_interface_sqlite_fts_update_text (TrackerDBInterface *db_interface,
gboolean
tracker_db_interface_sqlite_fts_delete_text (TrackerDBInterface *db_interface,
+ const gchar *database,
int rowid,
const gchar *property,
const gchar *old_text)
@@ -2238,6 +2248,7 @@ tracker_db_interface_sqlite_fts_delete_text (TrackerDBInterface *db_interface,
gchar *query;
query = tracker_db_interface_sqlite_fts_create_query (db_interface,
+ database,
TRUE, properties);
stmt = tracker_db_interface_create_statement (db_interface,
TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE,
@@ -2268,13 +2279,14 @@ tracker_db_interface_sqlite_fts_delete_text (TrackerDBInterface *db_interface,
gboolean
tracker_db_interface_sqlite_fts_delete_id (TrackerDBInterface *db_interface,
+ const gchar *database,
int id)
{
TrackerDBStatement *stmt;
GError *error = NULL;
gchar *query;
- query = tracker_db_interface_sqlite_fts_create_delete_all_query (db_interface);
+ query = tracker_db_interface_sqlite_fts_create_delete_all_query (db_interface, database);
stmt = tracker_db_interface_create_statement (db_interface,
TRACKER_DB_STATEMENT_CACHE_TYPE_UPDATE,
&error,
@@ -2304,9 +2316,10 @@ tracker_db_interface_sqlite_fts_delete_id (TrackerDBInterface *db_interface,
}
void
-tracker_db_interface_sqlite_fts_rebuild_tokens (TrackerDBInterface *interface)
+tracker_db_interface_sqlite_fts_rebuild_tokens (TrackerDBInterface *interface,
+ const gchar *database)
{
- tracker_fts_rebuild_tokens (interface->db, "fts5");
+ tracker_fts_rebuild_tokens (interface->db, database, "fts5");
}
#endif
diff --git a/src/libtracker-data/tracker-db-interface-sqlite.h
b/src/libtracker-data/tracker-db-interface-sqlite.h
index 1715d30ef..81127539a 100644
--- a/src/libtracker-data/tracker-db-interface-sqlite.h
+++ b/src/libtracker-data/tracker-db-interface-sqlite.h
@@ -48,6 +48,7 @@ TrackerDBInterface *tracker_db_interface_sqlite_new (const gc
gint64 tracker_db_interface_sqlite_get_last_insert_id (TrackerDBInterface *interface);
void tracker_db_interface_sqlite_enable_shared_cache (void);
void tracker_db_interface_sqlite_fts_init (TrackerDBInterface *interface,
+ const gchar *database,
GHashTable *properties,
GHashTable
*multivalued,
gboolean create);
@@ -62,26 +63,34 @@ gboolean tracker_db_interface_init_vtabs (TrackerD
TrackerOntologies
*ontologies);
#if HAVE_TRACKER_FTS
-void tracker_db_interface_sqlite_fts_delete_table (TrackerDBInterface *interface);
+void tracker_db_interface_sqlite_fts_delete_table (TrackerDBInterface *interface,
+ const gchar *database);
void tracker_db_interface_sqlite_fts_alter_table (TrackerDBInterface *interface,
+ const gchar *database,
GHashTable *properties,
GHashTable
*multivalued);
gboolean tracker_db_interface_sqlite_fts_update_text (TrackerDBInterface
*db_interface,
+ const gchar *database,
int id,
const gchar **properties,
const gchar **text);
gboolean tracker_db_interface_sqlite_fts_delete_text (TrackerDBInterface *interface,
+ const gchar *database,
int rowid,
const gchar *property,
const gchar *old_text);
gboolean tracker_db_interface_sqlite_fts_delete_id (TrackerDBInterface *interface,
+ const gchar *database,
int rowid);
void tracker_db_interface_sqlite_fts_update_commit (TrackerDBInterface *interface);
void tracker_db_interface_sqlite_fts_update_rollback (TrackerDBInterface *interface);
-void tracker_db_interface_sqlite_fts_rebuild_tokens (TrackerDBInterface *interface);
+void tracker_db_interface_sqlite_fts_rebuild_tokens (TrackerDBInterface *interface,
+ const gchar *database);
+
+#endif
gboolean tracker_db_interface_attach_database (TrackerDBInterface
*db_interface,
GFile *file,
@@ -91,8 +100,6 @@ gboolean tracker_db_interface_detach_database (TrackerD
const gchar *name,
GError **error);
-#endif
-
G_END_DECLS
#endif /* __LIBTRACKER_DB_INTERFACE_SQLITE_H__ */
diff --git a/src/libtracker-fts/tracker-fts.c b/src/libtracker-fts/tracker-fts.c
index 19db53987..9d2d40f95 100644
--- a/src/libtracker-fts/tracker-fts.c
+++ b/src/libtracker-fts/tracker-fts.c
@@ -79,10 +79,11 @@ tracker_fts_init_db (sqlite3 *db,
}
gboolean
-tracker_fts_create_table (sqlite3 *db,
- gchar *table_name,
- GHashTable *tables,
- GHashTable *grouped_columns)
+tracker_fts_create_table (sqlite3 *db,
+ const gchar *database,
+ gchar *table_name,
+ GHashTable *tables,
+ GHashTable *grouped_columns)
{
GString *str, *from, *fts;
GHashTableIter iter;
@@ -95,12 +96,14 @@ tracker_fts_create_table (sqlite3 *db,
/* Create view on tables/columns marked as FTS-indexed */
g_hash_table_iter_init (&iter, tables);
- str = g_string_new ("CREATE VIEW fts_view AS SELECT Resource.ID as rowid ");
- from = g_string_new ("FROM Resource ");
+ str = g_string_new ("CREATE VIEW ");
+ g_string_append_printf (str, "\"%s\".fts_view AS SELECT \"rdfs:Resource\".ID as rowid ",
+ database);
+ from = g_string_new ("FROM \"rdfs:Resource\" ");
fts = g_string_new ("CREATE VIRTUAL TABLE ");
- g_string_append_printf (fts, "%s USING fts5(content=\"fts_view\", ",
- table_name);
+ g_string_append_printf (fts, "\"%s\".%s USING fts5(content=\"fts_view\", ",
+ database, table_name);
while (g_hash_table_iter_next (&iter, (gpointer *) &index_table,
(gpointer *) &columns)) {
@@ -124,9 +127,9 @@ tracker_fts_create_table (sqlite3 *db,
columns = columns->next;
}
- g_string_append_printf (from, "LEFT OUTER JOIN \"%s\" ON "
- " Resource.ID = \"%s\".ID ",
- index_table, index_table);
+ g_string_append_printf (from, "LEFT OUTER JOIN \"%s\".\"%s\" ON "
+ " \"rdfs:Resource\".ID = \"%s\".ID ",
+ database, index_table, index_table);
}
g_string_append (str, from->str);
@@ -158,22 +161,20 @@ tracker_fts_create_table (sqlite3 *db,
}
gboolean
-tracker_fts_delete_table (sqlite3 *db,
- gchar *table_name)
+tracker_fts_delete_table (sqlite3 *db,
+ const gchar *database,
+ gchar *table_name)
{
gchar *query;
int rc;
- rc = sqlite3_exec (db, "DROP VIEW IF EXISTS unionGraph_fts5", NULL, NULL, NULL);
-
- if (rc == SQLITE_OK) {
- query = g_strdup_printf ("DROP VIEW fts_view");
- rc = sqlite3_exec (db, query, NULL, NULL, NULL);
- g_free (query);
- }
+ query = g_strdup_printf ("DROP VIEW fts_view");
+ rc = sqlite3_exec (db, query, NULL, NULL, NULL);
+ g_free (query);
if (rc == SQLITE_OK) {
- query = g_strdup_printf ("DROP TABLE %s", table_name);
+ query = g_strdup_printf ("DROP TABLE \"%s\".%s",
+ database, table_name);
sqlite3_exec (db, query, NULL, NULL, NULL);
g_free (query);
}
@@ -182,23 +183,24 @@ tracker_fts_delete_table (sqlite3 *db,
}
gboolean
-tracker_fts_alter_table (sqlite3 *db,
- gchar *table_name,
- GHashTable *tables,
- GHashTable *grouped_columns)
+tracker_fts_alter_table (sqlite3 *db,
+ const gchar *database,
+ gchar *table_name,
+ GHashTable *tables,
+ GHashTable *grouped_columns)
{
gchar *query, *tmp_name;
int rc;
tmp_name = g_strdup_printf ("%s_TMP", table_name);
- if (!tracker_fts_create_table (db, tmp_name, tables, grouped_columns)) {
+ if (!tracker_fts_create_table (db, database, tmp_name, tables, grouped_columns)) {
g_free (tmp_name);
return FALSE;
}
- query = g_strdup_printf ("INSERT INTO %s (rowid) SELECT rowid FROM fts_view",
- tmp_name);
+ query = g_strdup_printf ("INSERT INTO \"%s\".%s (rowid) SELECT rowid FROM fts_view",
+ database, tmp_name);
rc = sqlite3_exec (db, query, NULL, NULL, NULL);
g_free (query);
@@ -207,8 +209,8 @@ tracker_fts_alter_table (sqlite3 *db,
return FALSE;
}
- query = g_strdup_printf ("INSERT INTO %s(%s) VALUES('rebuild')",
- tmp_name, tmp_name);
+ query = g_strdup_printf ("INSERT INTO \"%s\".%s(%s) VALUES('rebuild')",
+ database, tmp_name, tmp_name);
rc = sqlite3_exec (db, query, NULL, NULL, NULL);
g_free (query);
@@ -217,8 +219,8 @@ tracker_fts_alter_table (sqlite3 *db,
return FALSE;
}
- query = g_strdup_printf ("ALTER TABLE %s RENAME TO %s",
- tmp_name, table_name);
+ query = g_strdup_printf ("ALTER TABLE \"%s\".%s RENAME TO %s",
+ database, tmp_name, table_name);
rc = sqlite3_exec (db, query, NULL, NULL, NULL);
g_free (query);
g_free (tmp_name);
@@ -228,13 +230,14 @@ tracker_fts_alter_table (sqlite3 *db,
void
tracker_fts_rebuild_tokens (sqlite3 *db,
+ const gchar *database,
const gchar *table_name)
{
gchar *query;
/* This special query rebuilds the tokens in the given FTS table */
- query = g_strdup_printf ("INSERT INTO %s(%s) VALUES('rebuild')",
- table_name, table_name);
+ query = g_strdup_printf ("INSERT INTO \"%s\".%s(%s) VALUES('rebuild')",
+ database, table_name, table_name);
sqlite3_exec(db, query, NULL, NULL, NULL);
g_free (query);
}
diff --git a/src/libtracker-fts/tracker-fts.h b/src/libtracker-fts/tracker-fts.h
index 3bda8cf98..e8d3a91f9 100644
--- a/src/libtracker-fts/tracker-fts.h
+++ b/src/libtracker-fts/tracker-fts.h
@@ -32,17 +32,21 @@ G_BEGIN_DECLS
gboolean tracker_fts_init_db (sqlite3 *db,
TrackerDBInterface *interface,
GHashTable *tables);
-gboolean tracker_fts_create_table (sqlite3 *db,
- gchar *table_name,
- GHashTable *tables,
- GHashTable *grouped_columns);
-gboolean tracker_fts_delete_table (sqlite3 *db,
- gchar *table_name);
-gboolean tracker_fts_alter_table (sqlite3 *db,
- gchar *table_name,
- GHashTable *tables,
- GHashTable *grouped_columns);
+gboolean tracker_fts_create_table (sqlite3 *db,
+ const gchar *database,
+ gchar *table_name,
+ GHashTable *tables,
+ GHashTable *grouped_columns);
+gboolean tracker_fts_delete_table (sqlite3 *db,
+ const gchar *database,
+ gchar *table_name);
+gboolean tracker_fts_alter_table (sqlite3 *db,
+ const gchar *database,
+ gchar *table_name,
+ GHashTable *tables,
+ GHashTable *grouped_columns);
void tracker_fts_rebuild_tokens (sqlite3 *db,
+ const gchar *database,
const gchar *table_name);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]