Skip to content

Commit 2a161ad

Browse files
committed
ext: compile sqlite with WAL_SYNCHRONOUS=1 and --enable-fts5
See https://fractaledmind.github.io/2023/09/10/enhancing-rails-sqlite-optimizing-compilation/
1 parent 21acdca commit 2a161ad

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

ext/sqlite3/extconf.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,18 @@ def configure_system_libraries
4949

5050
def configure_packaged_libraries
5151
minimal_recipe.tap do |recipe|
52-
recipe.configure_options += ["--enable-shared=no", "--enable-static=yes"]
52+
recipe.configure_options += [
53+
"--enable-shared=no",
54+
"--enable-static=yes",
55+
"--enable-fts5",
56+
]
5357
ENV.to_h.tap do |env|
5458
user_cflags = with_config("sqlite-cflags")
5559
more_cflags = [
5660
"-fPIC", # needed for linking the static library into a shared library
5761
"-O2", # see https://github.com/sparklemotion/sqlite3-ruby/issues/335 for some benchmarks
5862
"-fvisibility=hidden", # see https://github.com/rake-compiler/rake-compiler-dock/issues/87
63+
"-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1",
5964
]
6065
env["CFLAGS"] = [user_cflags, env["CFLAGS"], more_cflags].flatten.join(" ")
6166
recipe.configure_options += env.select { |k,v| ENV_ALLOWLIST.include?(k) }

0 commit comments

Comments
 (0)