From 5e5d088a3662a12104630827ac6926f7626d23cf Mon Sep 17 00:00:00 2001 From: mattn Date: Mon, 18 Aug 2014 16:56:31 +0900 Subject: Add license header --- sqlite3_windows.go | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'sqlite3_windows.go') diff --git a/sqlite3_windows.go b/sqlite3_windows.go index e4ebc24..c5565e9 100644 --- a/sqlite3_windows.go +++ b/sqlite3_windows.go @@ -1,3 +1,7 @@ +// Copyright (C) 2014 Yasuhiro Matsumoto . +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file. package sqlite3 /* -- cgit v1.2.3 From 6535341da906b68a836904b742145b409e961a56 Mon Sep 17 00:00:00 2001 From: mattn Date: Mon, 18 Aug 2014 17:00:59 +0900 Subject: Add one blank line for godoc --- backup.go | 1 + error.go | 1 + error_test.go | 1 + sqlite3.go | 1 + sqlite3_test.go | 1 + sqlite3_windows.go | 1 + 6 files changed, 6 insertions(+) (limited to 'sqlite3_windows.go') diff --git a/backup.go b/backup.go index 9e79c60..4b2a72d 100644 --- a/backup.go +++ b/backup.go @@ -2,6 +2,7 @@ // // Use of this source code is governed by an MIT-style // license that can be found in the LICENSE file. + package sqlite3 /* diff --git a/error.go b/error.go index 59b5051..b910108 100644 --- a/error.go +++ b/error.go @@ -2,6 +2,7 @@ // // Use of this source code is governed by an MIT-style // license that can be found in the LICENSE file. + package sqlite3 import "C" diff --git a/error_test.go b/error_test.go index 6a8660d..a006188 100644 --- a/error_test.go +++ b/error_test.go @@ -2,6 +2,7 @@ // // Use of this source code is governed by an MIT-style // license that can be found in the LICENSE file. + package sqlite3 import ( diff --git a/sqlite3.go b/sqlite3.go index 1683a48..aac71ad 100644 --- a/sqlite3.go +++ b/sqlite3.go @@ -2,6 +2,7 @@ // // Use of this source code is governed by an MIT-style // license that can be found in the LICENSE file. + package sqlite3 /* diff --git a/sqlite3_test.go b/sqlite3_test.go index 0f10780..581d289 100644 --- a/sqlite3_test.go +++ b/sqlite3_test.go @@ -2,6 +2,7 @@ // // Use of this source code is governed by an MIT-style // license that can be found in the LICENSE file. + package sqlite3 import ( diff --git a/sqlite3_windows.go b/sqlite3_windows.go index c5565e9..269c05a 100644 --- a/sqlite3_windows.go +++ b/sqlite3_windows.go @@ -2,6 +2,7 @@ // // Use of this source code is governed by an MIT-style // license that can be found in the LICENSE file. + package sqlite3 /* -- cgit v1.2.3 From 3d78a08b9f3307ac3874f5c120f7d4166c62efb9 Mon Sep 17 00:00:00 2001 From: mattn Date: Wed, 10 Sep 2014 14:58:32 +0900 Subject: Workaround for #109, #147 --- sqlite3.go | 3 +++ sqlite3_windows.go | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'sqlite3_windows.go') diff --git a/sqlite3.go b/sqlite3.go index f133897..5191a62 100644 --- a/sqlite3.go +++ b/sqlite3.go @@ -1,6 +1,9 @@ package sqlite3 /* +#ifdef _WIN32 +# define _localtime32(x) localtime(x) +#endif #include #include #include diff --git a/sqlite3_windows.go b/sqlite3_windows.go index e4ebc24..7a52826 100644 --- a/sqlite3_windows.go +++ b/sqlite3_windows.go @@ -2,7 +2,7 @@ package sqlite3 /* #cgo CFLAGS: -I. -fno-stack-check -fno-stack-protector -mno-stack-arg-probe -#cgo LDFLAGS: -lmingwex -lmingw32 -lmsvcr100 +#cgo LDFLAGS: -lmingwex -lmingw32 #cgo CFLAGS: -DSQLITE_ENABLE_RTREE */ import "C" -- cgit v1.2.3 From 00716954b7fac405c5e5084a0ef6d7d6bc3a2b48 Mon Sep 17 00:00:00 2001 From: mattn Date: Wed, 22 Oct 2014 13:31:54 +0900 Subject: Specify by -D --- sqlite3.go | 4 ---- sqlite3_other.go | 2 +- sqlite3_windows.go | 2 +- 3 files changed, 2 insertions(+), 6 deletions(-) (limited to 'sqlite3_windows.go') diff --git a/sqlite3.go b/sqlite3.go index 15c7003..69a2a9b 100644 --- a/sqlite3.go +++ b/sqlite3.go @@ -29,10 +29,6 @@ struct tm* _localtime32(const __time32_t *tm) { # define SQLITE_OPEN_FULLMUTEX 0 #endif -#ifndef SQLITE_THREADSAFE -# define SQLITE_THREADSAFE -#endif - static int _sqlite3_open_v2(const char *filename, sqlite3 **ppDb, int flags, const char *zVfs) { #ifdef SQLITE_OPEN_URI diff --git a/sqlite3_other.go b/sqlite3_other.go index c87c01f..54b6c7a 100644 --- a/sqlite3_other.go +++ b/sqlite3_other.go @@ -9,6 +9,6 @@ package sqlite3 /* #cgo CFLAGS: -I. #cgo linux LDFLAGS: -ldl -#cgo CFLAGS: -DSQLITE_ENABLE_RTREE +#cgo CFLAGS: -DSQLITE_ENABLE_RTREE -DSQLITE_THREADSAFE */ import "C" diff --git a/sqlite3_windows.go b/sqlite3_windows.go index 9c47124..1b339a0 100644 --- a/sqlite3_windows.go +++ b/sqlite3_windows.go @@ -8,6 +8,6 @@ package sqlite3 /* #cgo CFLAGS: -I. -fno-stack-check -fno-stack-protector -mno-stack-arg-probe #cgo LDFLAGS: -lmingwex -lmingw32 -#cgo CFLAGS: -DSQLITE_ENABLE_RTREE +#cgo CFLAGS: -DSQLITE_ENABLE_RTREE -DSQLITE_THREADSAFE */ import "C" -- cgit v1.2.3 From e5819757da0824da7e9140b1a862cafecf88159c Mon Sep 17 00:00:00 2001 From: mattn Date: Fri, 24 Oct 2014 19:38:05 +0900 Subject: Should affect on only 386 --- sqlite3.go | 7 ------- sqlite3_windows.go | 1 + 2 files changed, 1 insertion(+), 7 deletions(-) (limited to 'sqlite3_windows.go') diff --git a/sqlite3.go b/sqlite3.go index db6bdf7..257d64f 100644 --- a/sqlite3.go +++ b/sqlite3.go @@ -10,13 +10,6 @@ package sqlite3 #include #include -#ifdef _WIN32 -#include -struct tm* _localtime32(const __time32_t *tm) { - return localtime(tm); -} -#endif - #ifdef __CYGWIN__ # include #endif diff --git a/sqlite3_windows.go b/sqlite3_windows.go index 1b339a0..84eb457 100644 --- a/sqlite3_windows.go +++ b/sqlite3_windows.go @@ -7,6 +7,7 @@ package sqlite3 /* #cgo CFLAGS: -I. -fno-stack-check -fno-stack-protector -mno-stack-arg-probe +#cgo windows,386 CFLAGS: -D_localtime32=localtime #cgo LDFLAGS: -lmingwex -lmingw32 #cgo CFLAGS: -DSQLITE_ENABLE_RTREE -DSQLITE_THREADSAFE */ -- cgit v1.2.3 From da2bf8a0f356364fb8189a5a276b5acf77839d30 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Tue, 24 Feb 2015 11:27:09 +0900 Subject: Add FTS3 feature. Close #176 --- sqlite3.go | 2 ++ sqlite3_fts3_test.go | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++ sqlite3_windows.go | 1 - 3 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 sqlite3_fts3_test.go (limited to 'sqlite3_windows.go') diff --git a/sqlite3.go b/sqlite3.go index 18ab545..605474c 100644 --- a/sqlite3.go +++ b/sqlite3.go @@ -7,6 +7,8 @@ package sqlite3 /* #cgo CFLAGS: -std=gnu99 +#cgo CFLAGS: -DSQLITE_ENABLE_RTREE -DSQLITE_THREADSAFE +#cgo CFLAGS: -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS #include #include #include diff --git a/sqlite3_fts3_test.go b/sqlite3_fts3_test.go new file mode 100644 index 0000000..a1cd217 --- /dev/null +++ b/sqlite3_fts3_test.go @@ -0,0 +1,83 @@ +// Copyright (C) 2015 Yasuhiro Matsumoto . +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file. + +package sqlite3 + +import ( + "database/sql" + "os" + "testing" +) + +func TestFTS3(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 fts3(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, `今日の 晩御飯は 天麩羅よ`) + if err != nil { + t.Fatal("Failed to insert value:", err) + } + + _, err = db.Exec("INSERT INTO foo(id, value) VALUES(?, ?)", 2, `今日は いい 天気だ`) + if err != nil { + t.Fatal("Failed to insert value:", err) + } + + rows, err := db.Query("SELECT id, value FROM foo WHERE value MATCH '今日* 天*'") + if err != nil { + t.Fatal("Unable to query foo table:", err) + } + defer rows.Close() + + for rows.Next() { + var id int + var value string + + if err := rows.Scan(&id, &value); err != nil { + t.Error("Unable to scan results:", err) + continue + } + + if id == 1 && value != `今日の 晩御飯は 天麩羅よ` { + t.Error("Value for id 1 should be `今日の 晩御飯は 天麩羅よ`, but:", value) + } else if id == 2 && value != `今日は いい 天気だ` { + t.Error("Value for id 2 should be `今日は いい 天気だ`, but:", value) + } + } + + rows, err = db.Query("SELECT value FROM foo WHERE value MATCH '今日* 天麩羅*'") + 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 != `今日の 晩御飯は 天麩羅よ` { + t.Fatal("Value should be `今日の 晩御飯は 天麩羅よ`, but:", value) + } + + if rows.Next() { + t.Fatal("Result should be only one") + } +} diff --git a/sqlite3_windows.go b/sqlite3_windows.go index 84eb457..f47272d 100644 --- a/sqlite3_windows.go +++ b/sqlite3_windows.go @@ -9,6 +9,5 @@ package sqlite3 #cgo CFLAGS: -I. -fno-stack-check -fno-stack-protector -mno-stack-arg-probe #cgo windows,386 CFLAGS: -D_localtime32=localtime #cgo LDFLAGS: -lmingwex -lmingw32 -#cgo CFLAGS: -DSQLITE_ENABLE_RTREE -DSQLITE_THREADSAFE */ import "C" -- cgit v1.2.3 From 308067797b0fcce4ca06362580dc6db77c1bfeda Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Thu, 12 Mar 2015 18:43:55 +0900 Subject: Apply -lpthread withou windows. --- sqlite3.go | 1 - sqlite3_other.go | 2 +- sqlite3_windows.go | 1 + 3 files changed, 2 insertions(+), 2 deletions(-) (limited to 'sqlite3_windows.go') diff --git a/sqlite3.go b/sqlite3.go index edf3663..4cdc4d5 100644 --- a/sqlite3.go +++ b/sqlite3.go @@ -9,7 +9,6 @@ package sqlite3 #cgo CFLAGS: -std=gnu99 #cgo CFLAGS: -DSQLITE_ENABLE_RTREE -DSQLITE_THREADSAFE #cgo CFLAGS: -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS -#cgo LDFLAGS: -lpthread #include #include #include diff --git a/sqlite3_other.go b/sqlite3_other.go index 54b6c7a..8d98b4a 100644 --- a/sqlite3_other.go +++ b/sqlite3_other.go @@ -9,6 +9,6 @@ package sqlite3 /* #cgo CFLAGS: -I. #cgo linux LDFLAGS: -ldl -#cgo CFLAGS: -DSQLITE_ENABLE_RTREE -DSQLITE_THREADSAFE +#cgo LDFLAGS: -lpthread */ import "C" diff --git a/sqlite3_windows.go b/sqlite3_windows.go index f47272d..abc8384 100644 --- a/sqlite3_windows.go +++ b/sqlite3_windows.go @@ -2,6 +2,7 @@ // // Use of this source code is governed by an MIT-style // license that can be found in the LICENSE file. +// +build windows package sqlite3 -- cgit v1.2.3 From 61be1322444f6fa13d47dc56cca63c8b49208fdf Mon Sep 17 00:00:00 2001 From: Taru Karttunen Date: Wed, 30 Dec 2015 00:19:24 +0200 Subject: Fix compile for old mingw32 --- sqlite3_windows.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sqlite3_windows.go') diff --git a/sqlite3_windows.go b/sqlite3_windows.go index abc8384..163e8f7 100644 --- a/sqlite3_windows.go +++ b/sqlite3_windows.go @@ -8,7 +8,7 @@ package sqlite3 /* #cgo CFLAGS: -I. -fno-stack-check -fno-stack-protector -mno-stack-arg-probe -#cgo windows,386 CFLAGS: -D_localtime32=localtime +#cgo windows,386 CFLAGS: -D_USE_32BIT_TIME_T #cgo LDFLAGS: -lmingwex -lmingw32 */ import "C" -- cgit v1.2.3