This changeset adds code that is run at app-startup that will flush out changes
to the temporary tables into the permanent ones. For moz_places, this is done
whenever we sync moz_historyvisits and when we add or modify a bookmark. For
moz_historyvisits, this is done on a timer controlled by the preference
places.syncDBTableIntervalInSecs.
Changeset includes full test coverage for the above behaviors.
r=dietrich
r=Mak77
--HG--
rename : toolkit/components/places/tests/unit/head_bookmarks.js => toolkit/components/places/tests/background/head_background.js
2008-09-18 11:10:47 -04:00
Marco Bonardo ext:(%2C%20Shawn%20Wilsher%20%3Csdwilsh%40shawnwilsher.com%3E)
Bug 450705 - Optimize the query changes from the temp table rewrite
This changeset merges patches from two bugs to actually use the temporary tables
created for places.
Bug 449640 patch by Shawn Wilsher <sdwilsh@shawnwilsher.com>
r=dietrich, r=Mak77
Bug 450705 patch by Marco Bonardo <mak77@bonardo.net>
r=sdwilsh, r=dietrich, r=Mardak
This changeset creates two temporary tables that will be used when inserting
data into moz_places and moz_historyvisits. This will reduce the number of
writes as well as the number of fsyncs that happen.
r=dietrich
This changeset removes a bunch of code that was labeled REMOVE ME with a release
stated. All those releases have passed, so let's get rid of the code.
r=dietrich
This changeset marks nsNavHistory as threadsafe so we can use the database
connection on more than one thread in JS. It also adds assertions on every
other public API to ensure that it is only running on the main thread.
r=dietrich
r=bent
This changeset makes nsNavHistory use the threadsafe addref and release macros
so database access can be done off of the main thread via nsPIPlacesDatabase.
r=dietrich
It turns out that this is not a safe function to use at all when you start using
the database connection on more than one thread. It also does not work as
expected when triggers are used to insert data into a database.
r=dietrich
This makes places no longer use a shared cache for the database. This wins us
about 7% for location bar queries. For those needing access to the places
database now, they should QI nsINavHistoryService to nsPIPlacesDatase and get
the database connection off of it.
r=dietrich
This moves all the triggers created by places into the appropriate migration
functions. This saves us two queries to sqlite_master every time the places
service starts up.
r=dietrich