- Mar 05, 2014
-
-
Mateusz Polrola authored
DBus signals about change of locale property for given address book are deferred until all address books will update their locale. Depending on the number of address books and their size delay between changing address book's locale property and receiving signal about that takes about one or two minutes. Flushing DBus properties after changing locale property of address book causes immediate emission of DBus signal. (cherry picked from commit 69e94310)
-
alexandru.costache authored
Commit "addressbook: fix localed race condition" brought from upstream master checks if the environment variable EDS_TESTING is set, while the original code used EDS_LOCALED_TESTING. This patch reverts checking to branch specific name.
-
- Feb 14, 2014
-
-
alexandru.costache authored
Fixed crash that occurred when changing locale by migrating locale handling to EDataBookFactory, which is the server side singleton. Crash happened because when locale changed, there was an attempt to access an EDataBook instance while it was in course of being freed in another thread. Cherry picked from commit in master: EDataBookFactor / EDataBook: Migrated locale handling to EDataBookFactory c8914fc7 Fixes BGO #723276
-
- Dec 05, 2013
-
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
This reverts commit 129901a6.
-
Tristan Van Berkom authored
This reverts commit 2b61817f.
-
- Dec 01, 2013
-
-
Tristan Van Berkom authored
Modified system-address-book.source.in to configure sort keys by default. Sort keys specified for E_CONTACT_FAMILY_NAME, E_CONTACT_GIVEN_NAME and E_CONTACT_FULL_NAME
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
No search expression is invalid anymore. Conflicts: tests/libebook/client/test-client-cursor-operations.c
-
Tristan Van Berkom authored
x-evolution-any-field with a NULL value (or byte) means 'get all contacts'.
-
Tristan Van Berkom authored
After much discussion on sqlite-users mailing list, I found the real, correct technique for querying our multi attribute values on the auxiliary tables. o Removed the crack query optimizer o Added the index to aux_table.uid (this is important to optimize contact inserts, as we have to delete all aux_table.uid entries in the case of a replace). o Drop the LEFT JOIN statements in favor of JOIN 'folder_id_email_list' AS 'email_list' ON +email_list.uid = summary.uid This does not create exponentially huge data sets because of the ON statement, the '+' ensures that email_list.uid is ineligable for indexing, since we want to use email_list.value indexes later on.
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
When finalizing a cursor, it is important to have access to the direct backend available so that it can be asked to delete the direct access cursor instance. For this reason EBookClientCursor must keep the EBookClient alive, EBookClient now exposes a hidden API (not in the header file) to allow the EBookClientCursor to ask the EBookClient to delete the cursor on the EBookClientCursor's behalf. Ugly, but works. Conflicts: addressbook/libebook/e-book-client.c
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
There is no such thing anymore as an invalid query for the cursor.
-
Tristan Van Berkom authored
Fixed the above function to not pass NULL to e_collator_get_index()
-
Tristan Van Berkom authored
Now we aren't filtering by fields of interest for contact changes, so disabled the part of the test which adds a contact. This can be reverted if we so decide to filter it manually in EDataBookView Conflicts: tests/libebook/client/test-client-uid-only-view.c
-
Tristan Van Berkom authored
Initial changes are filtered by fields-of-interest, however change notifications are not filtered, this is because it's actually faster to just send the vcard as is. Conflicts: tests/libebook/client/test-client-revision-view.c
-
Tristan Van Berkom authored
o Added test for the underscore Before we used to only escape the '%' character in LIKE statements, but SQLite also recognizes the '_' as a single char wildcard and needs escaping. This test ensures that the underscore is properly handled. o Added query test which ORs the same field This helps to test the query optimizer in EBookBackendSqlite, which will optimize a query which ORs two multi attribute fields (like E_CONTACT_EMAIL). o Added tests for the NOT queries o Added tests for NOT, AND and OR and as well as some nested AND / OR tests which trigger the query optimizer in EBookBackendSqlite o Fix expectations for phone number matches, now that the phone number comparisons are fixed o Added --filter option. Pass a regular expression to filter which test cases should run o Added test which searches by UID (can trigger bugs if normalization is mistakenly done on the UIDs). Conflicts: tests/libebook/client/test-client-custom-summary.c
-
Tristan Van Berkom authored
This could not be backported from master, manually done.
-
Tristan Van Berkom authored
Conflicts: addressbook/libebook/e-book-client.c
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
Refactored the whole test suite so that it's isolated to libedata-book, use the EBookSqlite directly. Now for the majority of test cases, we test with and without fields in the summary (with an empty summary configuration) and we also test the EBookSqlite with a callback to fetch vcards and without a callback. We also now test for e164 number change notifications in locale changes. Conflicts: tests/libebook/data/vcards/sorted-4.vcf tests/libebook/data/vcards/sorted-5.vcf tests/libedata-book/Makefile.am
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
Conflicts: addressbook/libedata-book/e-book-backend.h
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
This is a complete rewrite for the EBookBackendSqliteDB API, some improvements here include: o Support for e_book_query_exists() and e_book_query_not() o ESexp parsing only happens once, least possible processing while generating a query o Query preflighting stage checks for the validity of a query, and also optimizes it, so that the generated statement will be as fast as possible o Implementation of queries are now much more straigh forward, we have a single array of constraint generator functions, one for each type of EBookQueryTest o General interactions with SQLite is improved, functions like ebsql_string_append_printf() and book_backend_sqlite_exec_printf() reduce the amount of redundant code o Inserts are done with prepared SQLite statements, which should buy us optimization on batch inserts o Phone number queries no longer require the E_BOOK_INDEX_PHONE to work, however they are quicker with the index o Auxiliary tables are now created for each multi attribute contact field in the summary separately, reducing the amount of rows needed to traverse for a match (also adding more flexibility to how we handle these multi-attribute fields) o Special care has been taken to ensure that we begin write transactions with BEGIN IMMEDIATE, allowing us to fail gracefully if and when SQLITE_BUSY is returned o Schema upgrades are more failsafe, Just add columns needed in the summary if they are not already declared, even though SQLite does not support "ADD COLUMN IF NOT EXISTS". o When searching contacts with a search expression that cannot be satisfied by the summary columns, use a fallback built into the SQLite instead of loading everything into memory o Allow usage of the cursor with fields that are not in the summary, both for cursor ordering and filtering. o While relocalizing the whole database, care is taken to perform the operation in batches, this way EBookBackendSqlite does not ever try to load the whole database in memory at once. o Region code for phone number parsing is now tied into the locale setting and will change as a result of locale changes. o While relocalizing and reformatting the e164 phone number attributes in vcards, we send notifications for vcards which changed as a result of relocalization via a EbSqlVCardCallback which can be passed to e_book_backend_sqlite_set_locale() o Error codes are refined to be more meaningful in general than the traditional E_BOOK_SQLITE_ERROR_OTHER Conflicts: addressbook/libedata-book/Makefile.am po/POTFILES.in
-
Tristan Van Berkom authored
-
Tristan Van Berkom authored
Also declare the first member with "= 0", just because we now use it to index an array, and I'm paranoid/unsure about the C spec in this case. Conflicts: addressbook/libebook-contacts/e-book-query.c addressbook/libebook-contacts/e-book-query.h