diff options
author | looi <looi@users.noreply.github.com> | 2015-09-20 10:07:23 -0600 |
---|---|---|
committer | Yasuhiro Matsumoto <mattn.jp@gmail.com> | 2015-09-21 19:53:44 +0900 |
commit | b808f01f660667b1510acf216aa2b9fe7f555ddb (patch) | |
tree | 221ed3644920828e7d27996c522f81a8c74199e8 /sqlite3_fts3_test.go | |
parent | fix #238 (diff) | |
download | golite-b808f01f660667b1510acf216aa2b9fe7f555ddb.tar.gz golite-b808f01f660667b1510acf216aa2b9fe7f555ddb.tar.xz |
Add FTS4 unicode61 tokenizer support
Diffstat (limited to 'sqlite3_fts3_test.go')
-rw-r--r-- | sqlite3_fts3_test.go | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/sqlite3_fts3_test.go b/sqlite3_fts3_test.go index a1cd217..884ca4c 100644 --- a/sqlite3_fts3_test.go +++ b/sqlite3_fts3_test.go @@ -81,3 +81,47 @@ func TestFTS3(t *testing.T) { t.Fatal("Result should be only one") } } + +func TestFTS4(t *testing.T) { + tempFilename := TempFilename() + db, err := sql.Open("sqlite3", tempFilename) + if err != nil { + t.Fatal("Failed to open database:", err) + } + defer os.Remove(tempFilename) + defer db.Close() + + _, err = db.Exec("DROP TABLE foo") + _, err = db.Exec("CREATE VIRTUAL TABLE foo USING fts4(tokenize=unicode61, id INTEGER PRIMARY KEY, value TEXT)") + if err != nil { + t.Fatal("Failed to create table:", err) + } + + _, err = db.Exec("INSERT INTO foo(id, value) VALUES(?, ?)", 1, `février`) + if err != nil { + t.Fatal("Failed to insert value:", err) + } + + rows, err := db.Query("SELECT value FROM foo WHERE value MATCH 'fevrier'") + if err != nil { + t.Fatal("Unable to query foo table:", err) + } + defer rows.Close() + + var value string + if !rows.Next() { + t.Fatal("Result should be only one") + } + + if err := rows.Scan(&value); err != nil { + t.Fatal("Unable to scan results:", err) + } + + if value != `février` { + t.Fatal("Value should be `février`, but:", value) + } + + if rows.Next() { + t.Fatal("Result should be only one") + } +} |