diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2018-07-17 17:56:25 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2018-07-20 18:27:32 +0200 |
commit | d5c79e87bc1284f925e2c155f03312da7fd0a4ab (patch) | |
tree | 1a09006308697c656c99ca9b9ec19452cab07679 | |
parent | 85e58a5219b66f77cbb534c0de39563ff50ec9a9 (diff) | |
download | tracker-d5c79e87bc1284f925e2c155f03312da7fd0a4ab.tar.gz |
libtracker-direct: Avoid WAL checkpoint on readonly connections
There is no point in doing WAL checkpoints from a readonly connection, so
avoid it altogether.
-rw-r--r-- | src/libtracker-direct/tracker-direct.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/libtracker-direct/tracker-direct.c b/src/libtracker-direct/tracker-direct.c index c3ff4d004..4b8d74a73 100644 --- a/src/libtracker-direct/tracker-direct.c +++ b/src/libtracker-direct/tracker-direct.c @@ -217,6 +217,9 @@ wal_hook (TrackerDBInterface *iface, TrackerDataManager *data_manager = tracker_db_interface_get_user_data (iface); TrackerDBInterface *wal_iface = tracker_data_manager_get_wal_db_interface (data_manager); + if (!wal_iface) + return; + if (n_pages >= 10000) { /* Do immediate checkpointing (blocking updates) to * prevent excessive WAL file growth. @@ -383,7 +386,8 @@ tracker_direct_connection_finalize (GObject *object) if (priv->data_manager) { TrackerDBInterface *wal_iface; wal_iface = tracker_data_manager_get_wal_db_interface (priv->data_manager); - tracker_db_interface_sqlite_wal_checkpoint (wal_iface, TRUE, NULL); + if (wal_iface) + tracker_db_interface_sqlite_wal_checkpoint (wal_iface, TRUE, NULL); } g_clear_object (&priv->store); @@ -879,5 +883,6 @@ tracker_direct_connection_sync (TrackerDirectConnection *conn) set_up_thread_pools (conn, NULL); wal_iface = tracker_data_manager_get_wal_db_interface (priv->data_manager); - tracker_db_interface_sqlite_wal_checkpoint (wal_iface, TRUE, NULL); + if (wal_iface) + tracker_db_interface_sqlite_wal_checkpoint (wal_iface, TRUE, NULL); } |