1
0
mirror of git://git.gnupg.org/gnupg.git synced 2025-03-24 22:09:57 +01:00
Neal H. Walfield 297cf8660c gpg: Cache prepared SQL queries and open DB connections.
* g10/tofu.c: Include <stdarg.h>.
(prepares_saved) [DEBUG_TOFU_CACHE]: New variable.
(queries) [DEBUG_TOFU_CACHE]: New variable.
(struct db): Add fields prevp, begin_transaction, end_transaction,
rollback, record_binding_get_old_policy, record_binding_update,
record_binding_update2, get_policy_select_policy_and_conflict,
get_trust_bindings_with_this_email, get_trust_gather_other_user_ids,
get_trust_gather_other_keys, register_already_seen, and
register_insert.
[DEBUG_TOFU_CACHE]: Add field hits.
(STRINGIFY): New macro.
(STRINGIFY2): New macro.
(enum sqlite_arg_type): New enum.
(sqlite3_stepx): New function.
(combined_db): Remove variable.
(opendb): Don't cache the combined db.
(struct dbs): New struct.  Update users to use this as the head of the
local DB list rather than overloading struct db.
(unlink_db): New function.
(link_db): New function.
(db_cache): New variable.
(db_cache_count): New variable.
(DB_CACHE_ENTRIES): Define.
(getdb): If the dbs specific cache doesn't include the DB, look at
DB_CACHE.  Only if that also doesn't include the DB open the
corresponding DB.
(closedb): New function.
(opendbs): Don't open the combined DB.  Just return an initialized
struct dbs.
(closedbs): Don't close the dbs specific dbs.  Attach them to the
front of DB_CACHE.  If DB_CACHE contains more than DB_CACHE_ENTRIES,
close enough dbs from the end of the DB_CACHE list such that DB_CACHE
only contains DB_CACHE_ENTRIES.  Don't directly close the dbs, instead
use the new closedb function.
[DEBUG_TOFU_CACHE]: Print out some statistics.
(record_binding): Use sqlite3_stepx instead of sqlite3_exec or
sqlite3_exec_printf.
(get_policy): Likewise.
(get_trust): Likewise.
(tofu_register): Likewise.

--
Signed-off-by: Neal H. Walfield <neal@g10code.com>
2015-10-23 17:38:16 +02:00
..
2014-10-31 14:21:34 +01:00
2015-08-06 17:00:41 +09:00
2007-07-04 19:49:40 +00:00
2015-10-08 15:40:53 +02:00
2014-11-13 12:01:42 +01:00
2015-05-01 13:58:18 +09:00
2015-02-04 09:15:34 +01:00
2015-02-04 09:15:34 +01:00
2015-10-23 17:38:15 +02:00
2015-08-31 11:30:54 +02:00
2015-08-06 17:00:41 +09:00
2015-10-19 20:11:03 +02:00
2015-10-05 19:48:47 +02:00
2015-10-23 17:38:15 +02:00
2015-10-05 19:48:47 +02:00
2015-10-18 18:45:40 +02:00
2015-08-06 17:00:41 +09:00
2015-08-06 17:00:41 +09:00
2015-10-19 20:11:03 +02:00
2008-12-12 08:54:50 +00:00
2015-04-06 13:07:09 +02:00
2015-09-10 18:12:20 +02:00
2015-10-19 20:11:00 +02:00
2015-10-23 17:38:15 +02:00
2015-09-10 18:12:20 +02:00
2015-10-18 18:45:40 +02:00
2014-01-29 17:45:05 +01:00