tracker r1892 - in branches/indexer-split: . src/libtracker-db



Author: pvanhoof
Date: Mon Jul 21 11:10:41 2008
New Revision: 1892
URL: http://svn.gnome.org/viewvc/tracker?rev=1892&view=rev

Log:
2008-07-21  Philip Van Hoof  <pvanhoof gnome org>

        * src/libtracker-db/tracker-db-manager.c: Functions for attached
        connections



Modified:
   branches/indexer-split/ChangeLog
   branches/indexer-split/src/libtracker-db/tracker-db-manager.c

Modified: branches/indexer-split/src/libtracker-db/tracker-db-manager.c
==============================================================================
--- branches/indexer-split/src/libtracker-db/tracker-db-manager.c	(original)
+++ branches/indexer-split/src/libtracker-db/tracker-db-manager.c	Mon Jul 21 11:10:41 2008
@@ -1525,6 +1525,57 @@
 	}
 }
 
+
+static void
+db_set_interfaces_params (TrackerDBInterface *iface,
+	       gint                cache_size,
+	       gint                page_size)
+{
+	tracker_db_interface_execute_query (iface, NULL, "PRAGMA synchronous = NORMAL;");
+	tracker_db_interface_execute_query (iface, NULL, "PRAGMA count_changes = 0;");
+	tracker_db_interface_execute_query (iface, NULL, "PRAGMA temp_store = FILE;");
+	tracker_db_interface_execute_query (iface, NULL, "PRAGMA encoding = \"UTF-8\"");
+	tracker_db_interface_execute_query (iface, NULL, "PRAGMA auto_vacuum = 0;");
+
+	if (page_size != TRACKER_DB_PAGE_SIZE_DONT_SET) {
+		g_message ("  Setting page size to %d", page_size);
+		tracker_db_interface_execute_query (iface, NULL, "PRAGMA page_size = %d", page_size);
+	}
+
+	tracker_db_interface_execute_query (iface, NULL, "PRAGMA cache_size = %d", cache_size);
+	g_message ("  Setting cache size to %d", cache_size);
+
+	g_message ("  Adding functions (FormatDate, etc)");
+
+	if (!tracker_db_interface_sqlite_set_collation_function (TRACKER_DB_INTERFACE_SQLITE (iface),
+								 "UTF8", 
+								 utf8_collation_func)) {
+		g_critical ("Collation sequence failed");
+	}
+
+	/* Create user defined functions that can be used in sql */
+	tracker_db_interface_sqlite_create_function (iface, 
+						     "FormatDate", 
+						     function_date_to_str, 
+						     1);
+	tracker_db_interface_sqlite_create_function (iface, 
+						     "GetServiceName", 
+						     function_get_service_name, 
+						     1);
+	tracker_db_interface_sqlite_create_function (iface, 
+						     "GetServiceTypeID", 
+						     function_get_service_type, 
+						     1);
+	tracker_db_interface_sqlite_create_function (iface, 
+						     "GetMaxServiceTypeID", 
+						     function_get_max_service_type, 
+						     1);
+	tracker_db_interface_sqlite_create_function (iface, 
+						     "REGEXP",
+						     function_regexp,
+						     2);
+}
+
 static void
 db_get_static_data (TrackerDBInterface *iface)
 {
@@ -2477,11 +2528,10 @@
 			tracker_db_interface_set_procedure_table (connection, 
 								  prepared_queries);
 
-			db_set_params (connection,
+			db_set_interfaces_params (connection,
 				       dbs[db].cache_size,
-				       dbs[db].page_size,
-				       TRUE,
-				       FALSE);
+				       dbs[db].page_size);
+
 		} else {
 			db_exec_no_reply (connection, 
 					  "ATTACH '%s' as '%s'",



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]