github.com/jdgcs/sqlite3@v1.12.1-0.20210908114423-bc5f96e4dd51/tpch/driver/drivers/sqlite.go (about) 1 // Copyright 2021 The Sqlite Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package drivers 6 7 import ( 8 "database/sql" 9 "path/filepath" 10 11 _ "modernc.org/sqlite" 12 "modernc.org/sqlite/tpch/driver" 13 ) 14 15 func init() { 16 driver.Register(newSQLite()) 17 } 18 19 var _ driver.SUT = (*sqlite)(nil) 20 21 type sqlite struct { 22 *sqlite3 23 } 24 25 func newSQLite() *sqlite { 26 return &sqlite{newSQLite3()} 27 } 28 29 func (b *sqlite) Name() string { return "sqlite" } 30 31 func (b *sqlite) OpenDB() (*sql.DB, error) { 32 pth := filepath.Join(b.wd, "sqlite.db") 33 db, err := sql.Open(b.Name(), pth) 34 if err != nil { 35 return nil, err 36 } 37 38 b.db = db 39 return db, nil 40 } 41 42 func (b *sqlite) OpenMem() (driver.SUT, *sql.DB, error) { 43 db, err := sql.Open(b.Name(), "file::memory:") 44 if err != nil { 45 return nil, nil, err 46 } 47 48 return &sqlite{&sqlite3{db: db}}, db, nil 49 }