Skip to content

Commit f1d4bce

Browse files
committed
Call sqlite3_db_release_memory when we discard a connection.
https://www.sqlite.org/capi3ref.html#sqlite3_db_release_memory
1 parent 9c34e52 commit f1d4bce

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

ext/sqlite3/database.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,12 @@ close_or_discard_db(sqlite3RubyPtr ctx)
2929
"is being discarded. This is a memory leak. If possible, please close all sqlite "
3030
"database connections before forking.");
3131

32+
// release as much heap memory as possible by deallocating non-essential memory
33+
// allocations held by the database library. Memory used to cache database pages to
34+
// improve performance is an example of non-essential memory.
35+
sqlite3_db_release_memory(ctx->db);
36+
37+
// release file descriptors
3238
#ifdef HAVE_SQLITE3_DB_NAME
3339
const char *db_name;
3440
int j_db = 0;

0 commit comments

Comments
 (0)