summaryrefslogtreecommitdiff
path: root/addressbook
diff options
context:
space:
mode:
authorDavid Woodhouse <David.Woodhouse@intel.com>2014-09-15 06:22:31 -0700
committerDavid Woodhouse <David.Woodhouse@intel.com>2014-10-09 13:20:38 +0100
commit49d3167d5ceb03ced1fa060c783704e657e91c61 (patch)
tree2fc5ae7380ac760bfcfa233711581a2f90d2625d /addressbook
parentaa1d8f07835b95dfd781d87dfcb7af97750e00b3 (diff)
downloadevolution-data-server-49d3167d5ceb03ced1fa060c783704e657e91c61.tar.gz
Bug 699597 - EBookSqlite: Add indices on family_name, nickname, given_name and file_as
The Evolution address autocompletion uses these, and we really want it to be fast. So enable indices on the *unlocalised* column by default.
Diffstat (limited to 'addressbook')
-rw-r--r--addressbook/libedata-book/e-book-sqlite.c33
1 files changed, 32 insertions, 1 deletions
diff --git a/addressbook/libedata-book/e-book-sqlite.c b/addressbook/libedata-book/e-book-sqlite.c
index f0968c19f..1cbf1463f 100644
--- a/addressbook/libedata-book/e-book-sqlite.c
+++ b/addressbook/libedata-book/e-book-sqlite.c
@@ -245,7 +245,7 @@ ebsql_init_debug (void)
} \
} G_STMT_END
-#define FOLDER_VERSION 9
+#define FOLDER_VERSION 10
#define INSERT_MULTI_STMT_BYTES 128
#define COLUMN_DEFINITION_BYTES 32
#define GENERATED_QUERY_BYTES 1024
@@ -428,6 +428,10 @@ static EContactField default_summary_fields[] = {
*/
static EContactField default_indexed_fields[] = {
E_CONTACT_FULL_NAME,
+ E_CONTACT_NICKNAME,
+ E_CONTACT_FILE_AS,
+ E_CONTACT_GIVEN_NAME,
+ E_CONTACT_FAMILY_NAME,
E_CONTACT_EMAIL,
E_CONTACT_FILE_AS,
E_CONTACT_FAMILY_NAME,
@@ -437,6 +441,10 @@ static EContactField default_indexed_fields[] = {
static EBookIndexType default_index_types[] = {
E_BOOK_INDEX_PREFIX,
E_BOOK_INDEX_PREFIX,
+ E_BOOK_INDEX_PREFIX,
+ E_BOOK_INDEX_PREFIX,
+ E_BOOK_INDEX_PREFIX,
+ E_BOOK_INDEX_PREFIX,
E_BOOK_INDEX_SORT_KEY,
E_BOOK_INDEX_SORT_KEY,
E_BOOK_INDEX_SORT_KEY
@@ -2326,6 +2334,29 @@ ebsql_introspect_summary (EBookSqlite *ebsql,
E_CONTACT_X509_CERT, NULL);
}
}
+
+ if (previous_schema < 10) {
+ if ((i = summary_field_array_index (summary_fields, E_CONTACT_NICKNAME)) >= 0) {
+ summary_field = &g_array_index (summary_fields, SummaryField, i);
+ summary_field->index |= INDEX_FLAG (PREFIX);
+ }
+
+ if ((i = summary_field_array_index (summary_fields, E_CONTACT_FILE_AS)) >= 0) {
+ summary_field = &g_array_index (summary_fields, SummaryField, i);
+ summary_field->index |= INDEX_FLAG (PREFIX);
+ }
+
+ if ((i = summary_field_array_index (summary_fields, E_CONTACT_GIVEN_NAME)) >= 0) {
+ summary_field = &g_array_index (summary_fields, SummaryField, i);
+ summary_field->index |= INDEX_FLAG (PREFIX);
+ }
+
+ if ((i = summary_field_array_index (summary_fields, E_CONTACT_FAMILY_NAME)) >= 0) {
+ summary_field = &g_array_index (summary_fields, SummaryField, i);
+ summary_field->index |= INDEX_FLAG (PREFIX);
+ }
+
+ }
}
introspect_summary_finish: