From 642382c1ec3733669c7ae8206c37efa209a0a79c Mon Sep 17 00:00:00 2001 From: Zanie Blue Date: Thu, 10 Jul 2025 16:24:28 -0500 Subject: [PATCH 1/3] Enable FTS5 in SQLite --- cpython-unix/build-sqlite.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/cpython-unix/build-sqlite.sh b/cpython-unix/build-sqlite.sh index e01e3077d..9f481559d 100755 --- a/cpython-unix/build-sqlite.sh +++ b/cpython-unix/build-sqlite.sh @@ -27,7 +27,16 @@ fi # it's not looked for. unset CXX -CC_FOR_BUILD="${HOST_CC}" CFLAGS="${EXTRA_TARGET_CFLAGS} -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_FTS3_TOKENIZER -fPIC" CPPFLAGS="${EXTRA_TARGET_CFLAGS} -fPIC" LDFLAGS="${EXTRA_TARGET_LDFLAGS}" ./configure ${CONFIGURE_FLAGS} +CC_FOR_BUILD="${HOST_CC}" \ +CFLAGS="${EXTRA_TARGET_CFLAGS} \ + -DSQLITE_ENABLE_DBSTAT_VTAB \ + -DSQLITE_ENABLE_FTS3 \ + -DSQLITE_ENABLE_FTS3_PARENTHESIS \ + -DSQLITE_ENABLE_FTS3_TOKENIZER \ + -DSQLITE_ENABLE_FTS5 \ + -fPIC" \ +CPPFLAGS="${EXTRA_TARGET_CFLAGS} -fPIC" \ +LDFLAGS="${EXTRA_TARGET_LDFLAGS}" ./configure ${CONFIGURE_FLAGS} make -j ${NUM_CPUS} libsqlite3.a make install-lib DESTDIR=${ROOT}/out From b004e3417b9aca9846353767e70ac1930133209e Mon Sep 17 00:00:00 2001 From: Geoffrey Thomas Date: Thu, 10 Jul 2025 19:28:54 -0400 Subject: [PATCH 2/3] Add tests for some previously present SQLite extensions --- src/verify_distribution.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/verify_distribution.py b/src/verify_distribution.py index 1ac2381f4..d516f3a49 100644 --- a/src/verify_distribution.py +++ b/src/verify_distribution.py @@ -122,6 +122,15 @@ def test_sqlite(self): self.assertTrue(hasattr(conn, "enable_load_extension")) # Backup feature requires modern SQLite, which we always have. self.assertTrue(hasattr(conn, "backup")) + # Ensure that various extensions are present. These will raise + # if they are not. + cursor = conn.cursor() + cursor.execute("CREATE VIRTUAL TABLE fts3 USING fts3(sender, title, body);") + cursor.execute("CREATE VIRTUAL TABLE fts4 USING fts4(sender, title, body);") + cursor.execute("CREATE VIRTUAL TABLE fts5 USING fts5(sender, title, body);") + cursor.execute("CREATE VIRTUAL TABLE geopoly USING geopoly();") + cursor.execute("CREATE VIRTUAL TABLE rtree USING rtree(id, minX, maxX);") + conn.close() def test_ssl(self): import ssl From 3bb66f9e54d6f5ea7c8a5504a2bce41a7b57aefa Mon Sep 17 00:00:00 2001 From: Geoffrey Thomas Date: Fri, 11 Jul 2025 10:57:14 -0400 Subject: [PATCH 3/3] sqlite: Also enable fts4, geopoly, and rtree --- cpython-unix/build-sqlite.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cpython-unix/build-sqlite.sh b/cpython-unix/build-sqlite.sh index 9f481559d..ef7c6a631 100755 --- a/cpython-unix/build-sqlite.sh +++ b/cpython-unix/build-sqlite.sh @@ -33,7 +33,10 @@ CFLAGS="${EXTRA_TARGET_CFLAGS} \ -DSQLITE_ENABLE_FTS3 \ -DSQLITE_ENABLE_FTS3_PARENTHESIS \ -DSQLITE_ENABLE_FTS3_TOKENIZER \ + -DSQLITE_ENABLE_FTS4 \ -DSQLITE_ENABLE_FTS5 \ + -DSQLITE_ENABLE_GEOPOLY \ + -DSQLITE_ENABLE_RTREE \ -fPIC" \ CPPFLAGS="${EXTRA_TARGET_CFLAGS} -fPIC" \ LDFLAGS="${EXTRA_TARGET_LDFLAGS}" ./configure ${CONFIGURE_FLAGS}