diff options
| author | 2023-06-27 19:27:06 -0500 | |
|---|---|---|
| committer | 2023-06-27 17:27:06 -0700 | |
| commit | f81d084f5cef287d7fb94798219c2c0d95cb4a4f (patch) | |
| tree | 70138e11d6c7a5312033f339d09552f2f1b880c3 | |
| parent | 940c9a8185cb0c27e03e804b7bdd01cf5a91ec3e (diff) | |
| download | bun-f81d084f5cef287d7fb94798219c2c0d95cb4a4f.tar.gz bun-f81d084f5cef287d7fb94798219c2c0d95cb4a4f.tar.zst bun-f81d084f5cef287d7fb94798219c2c0d95cb4a4f.zip | |
[bun:sqlite] enable FTS5 on linux build (#3431)
* [bun:sqlite] enable FTS5 on linux build
* prettier
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | test/js/bun/sqlite/sqlite.test.js | 18 |
2 files changed, 19 insertions, 1 deletions
@@ -1694,7 +1694,7 @@ sizegen: # Linux uses bundled SQLite3 ifeq ($(OS_NAME),linux) sqlite: - $(CC) $(EMIT_LLVM_FOR_RELEASE) $(CFLAGS) $(INCLUDE_DIRS) -DSQLITE_ENABLE_COLUMN_METADATA= -DSQLITE_MAX_VARIABLE_NUMBER=250000 -DSQLITE_ENABLE_RTREE=1 -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS3_PARENTHESIS=1 -DSQLITE_ENABLE_JSON1=1 $(SRC_DIR)/sqlite/sqlite3.c -c -o $(SQLITE_OBJECT) + $(CC) $(EMIT_LLVM_FOR_RELEASE) $(CFLAGS) $(INCLUDE_DIRS) -DSQLITE_ENABLE_COLUMN_METADATA= -DSQLITE_MAX_VARIABLE_NUMBER=250000 -DSQLITE_ENABLE_RTREE=1 -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS3_PARENTHESIS=1 -DSQLITE_ENABLE_FTS5=1 -DSQLITE_ENABLE_JSON1=1 $(SRC_DIR)/sqlite/sqlite3.c -c -o $(SQLITE_OBJECT) endif picohttp: diff --git a/test/js/bun/sqlite/sqlite.test.js b/test/js/bun/sqlite/sqlite.test.js index faa7d5015..e4725cac2 100644 --- a/test/js/bun/sqlite/sqlite.test.js +++ b/test/js/bun/sqlite/sqlite.test.js @@ -513,6 +513,24 @@ it("latin1 supplement chars", () => { expect(db.query("SELECT * FROM foo WHERE id > 9999").values()).toEqual([]); }); +it("supports FTS5", () => { + const db = new Database(); + db.run("CREATE VIRTUAL TABLE movies USING fts5(title, tokenize='trigram')"); + const insert = db.prepare("INSERT INTO movies VALUES ($title)"); + const insertMovies = db.transaction(movies => { + for (const movie of movies) insert.run(movie); + }); + insertMovies([ + { $title: "The Shawshank Redemption" }, + { $title: "WarGames" }, + { $title: "Interstellar" }, + { $title: "Se7en" }, + { $title: "City of God" }, + { $title: "Spirited Away" }, + ]); + expect(db.query("SELECT * FROM movies('game')").all()).toEqual([{ title: "WarGames" }]); +}); + describe("Database.run", () => { it("should not throw error `not an error` when provided query containing only whitespace", () => { const db = Database.open(":memory:"); |
