diff options
author | David Woodhouse <David.Woodhouse@intel.com> | 2014-09-15 06:22:31 -0700 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2014-10-09 13:20:38 +0100 |
commit | 49d3167d5ceb03ced1fa060c783704e657e91c61 (patch) | |
tree | 2fc5ae7380ac760bfcfa233711581a2f90d2625d /addressbook | |
parent | aa1d8f07835b95dfd781d87dfcb7af97750e00b3 (diff) | |
download | evolution-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.c | 33 |
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: |