diff options
author | EuAndreh <eu@euandre.org> | 2024-08-14 17:31:36 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2024-08-14 17:31:36 -0300 |
commit | 0b8d97f96dd4db0e50a1cb68a0740a55017c469b (patch) | |
tree | aeb75b31cec46c6de5a8e28aceabeb10143d98f2 /doc/examples/mod_regexp/extension.go | |
parent | Remove most files from _example/ (diff) | |
download | golite-0b8d97f96dd4db0e50a1cb68a0740a55017c469b.tar.gz golite-0b8d97f96dd4db0e50a1cb68a0740a55017c469b.tar.xz |
git mv _example doc/examples/
Diffstat (limited to 'doc/examples/mod_regexp/extension.go')
-rw-r--r-- | doc/examples/mod_regexp/extension.go | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/doc/examples/mod_regexp/extension.go b/doc/examples/mod_regexp/extension.go new file mode 100644 index 0000000..61ceb55 --- /dev/null +++ b/doc/examples/mod_regexp/extension.go @@ -0,0 +1,43 @@ +package main + +import ( + "database/sql" + "fmt" + "github.com/mattn/go-sqlite3" + "log" +) + +func main() { + sql.Register("sqlite3_with_extensions", + &sqlite3.SQLiteDriver{ + Extensions: []string{ + "sqlite3_mod_regexp", + }, + }) + + db, err := sql.Open("sqlite3_with_extensions", ":memory:") + if err != nil { + log.Fatal(err) + } + defer db.Close() + + // Force db to make a new connection in pool + // by putting the original in a transaction + tx, err := db.Begin() + if err != nil { + log.Fatal(err) + } + defer tx.Commit() + + // New connection works (hopefully!) + rows, err := db.Query("select 'hello world' where 'hello world' regexp '^hello.*d$'") + if err != nil { + log.Fatal(err) + } + defer rows.Close() + for rows.Next() { + var helloworld string + rows.Scan(&helloworld) + fmt.Println(helloworld) + } +} |