<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-base.
</pre>
<p><a href="https://github.com/macports/macports-base/commit/9bb06b93fb67f4c337fa2fb0392ff4c3d4fc62ef">https://github.com/macports/macports-base/commit/9bb06b93fb67f4c337fa2fb0392ff4c3d4fc62ef</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 9bb06b93f Use sqlite truncate checkpoint
</span>9bb06b93f is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 9bb06b93fb67f4c337fa2fb0392ff4c3d4fc62ef
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Wed Sep 13 14:32:32 2023 +1000
<span style='display:block; white-space:pre;color:#404040;'> Use sqlite truncate checkpoint
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Should prevent WAL files that can be of similar size to registry.db
</span><span style='display:block; white-space:pre;color:#404040;'> from hanging around.
</span>---
src/cregistry/registry.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/cregistry/registry.c b/src/cregistry/registry.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 68c6d3bff..07d2f248a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/cregistry/registry.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/cregistry/registry.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -535,10 +535,16 @@ int reg_vacuum(char *db_path) {
</span> int reg_checkpoint(reg_registry* reg, reg_error* errPtr) {
#if SQLITE_VERSION_NUMBER >= 3022000
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if (sqlite3_libversion_number() >= 3022000) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (sqlite3_db_readonly(reg->db, "registry") == 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- && sqlite3_wal_checkpoint_v2(reg->db, "registry",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- SQLITE_CHECKPOINT_PASSIVE, NULL, NULL) != SQLITE_OK) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int result;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (sqlite3_libversion_number() >= 3022000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && sqlite3_db_readonly(reg->db, "registry") == 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* The busy handler (as set in reg_open) should time out if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exclusive write access can't be obtained quickly. In that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case, we should still get the effect of SQLITE_CHECKPOINT_PASSIVE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ and a return value of SQLITE_BUSY. Call that success. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ result = sqlite3_wal_checkpoint_v2(reg->db, "registry",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SQLITE_CHECKPOINT_TRUNCATE, NULL, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (result != SQLITE_OK && result != SQLITE_BUSY) {
</span> reg_sqlite_error(reg->db, errPtr, NULL);
return 0;
}
</pre><pre style='margin:0'>
</pre>