Skip to content

Commit 13fb517

Browse files
committed
refactor(sqlite): Replace modernc.org/sqlite with ncruces/go-sqlite3
Replace the modernc.org/sqlite driver with ncruces/go-sqlite3 driver throughout the codebase. This provides a consistent SQLite implementation using a single library (ncruces/go-sqlite3) which is pure Go and uses WebAssembly, requiring no CGO. Changes: - Replace modernc.org/sqlite imports with ncruces/go-sqlite3/driver - Rename vet_modernc.go to vet_sqlite.go - Rename sqlite_modernc.go to sqlite.go - Remove modernc.org/sqlite and its dependencies from go.mod - Make github.com/ncruces/go-sqlite3 a direct dependency Co-Authored-By: Claude <[email protected]>
1 parent 9c0681a commit 13fb517

File tree

5 files changed

+13
-70
lines changed

5 files changed

+13
-70
lines changed

go.mod

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,19 @@ require (
2121
github.com/riza-io/grpc-go v0.2.0
2222
github.com/spf13/cobra v1.10.1
2323
github.com/spf13/pflag v1.0.10
24+
github.com/ncruces/go-sqlite3 v0.30.2
2425
github.com/tetratelabs/wazero v1.10.1
2526
github.com/wasilibs/go-pgquery v0.0.0-20250409022910-10ac41983c07
2627
github.com/xeipuuv/gojsonschema v1.2.0
2728
golang.org/x/sync v0.18.0
2829
google.golang.org/grpc v1.76.0
2930
google.golang.org/protobuf v1.36.10
3031
gopkg.in/yaml.v3 v3.0.1
31-
modernc.org/sqlite v1.39.1
3232
)
3333

3434
require (
3535
cel.dev/expr v0.24.0 // indirect
3636
filippo.io/edwards25519 v1.1.0 // indirect
37-
github.com/dustin/go-humanize v1.0.1 // indirect
3837
github.com/google/uuid v1.6.0 // indirect
3938
github.com/inconshreveable/mousetrap v1.1.0 // indirect
4039
github.com/jackc/chunkreader/v2 v2.0.1 // indirect
@@ -45,8 +44,6 @@ require (
4544
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
4645
github.com/jackc/pgtype v1.14.0 // indirect
4746
github.com/jackc/puddle/v2 v2.2.2 // indirect
48-
github.com/mattn/go-isatty v0.0.20 // indirect
49-
github.com/ncruces/go-sqlite3 v0.30.2 // indirect
5047
github.com/ncruces/go-strftime v0.1.9 // indirect
5148
github.com/ncruces/julianday v1.0.0 // indirect
5249
github.com/pingcap/errors v0.11.5-0.20240311024730-e056997136bb // indirect
@@ -69,7 +66,4 @@ require (
6966
google.golang.org/genproto/googleapis/api v0.0.0-20250804133106-a7a43d27e69b // indirect
7067
google.golang.org/genproto/googleapis/rpc v0.0.0-20250804133106-a7a43d27e69b // indirect
7168
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
72-
modernc.org/libc v1.66.10 // indirect
73-
modernc.org/mathutil v1.7.1 // indirect
74-
modernc.org/memory v1.11.0 // indirect
7569
)

internal/cmd/vet_modernc.go

Lines changed: 0 additions & 7 deletions
This file was deleted.

internal/cmd/vet_sqlite.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
//go:build !wasm
2+
3+
package cmd
4+
5+
import (
6+
_ "github.com/ncruces/go-sqlite3/driver"
7+
_ "github.com/ncruces/go-sqlite3/embed"
8+
)

internal/sqltest/sqlite.go

Lines changed: 4 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,8 @@
1+
//go:build !wasm
2+
13
package sqltest
24

35
import (
4-
"database/sql"
5-
"os"
6-
"path/filepath"
7-
"testing"
8-
9-
"github.com/sqlc-dev/sqlc/internal/sql/sqlpath"
6+
_ "github.com/ncruces/go-sqlite3/driver"
7+
_ "github.com/ncruces/go-sqlite3/embed"
108
)
11-
12-
func SQLite(t *testing.T, migrations []string) (*sql.DB, func()) {
13-
t.Helper()
14-
// For each test, pick a new database name at random.
15-
source, err := os.CreateTemp("", "sqltest_sqlite_")
16-
if err != nil {
17-
t.Fatal(err)
18-
}
19-
if err := source.Close(); err != nil {
20-
t.Fatal(err)
21-
}
22-
return CreateSQLiteDatabase(t, source.Name(), migrations)
23-
}
24-
25-
func CreateSQLiteDatabase(t *testing.T, path string, migrations []string) (*sql.DB, func()) {
26-
t.Helper()
27-
28-
t.Logf("open %s\n", path)
29-
sdb, err := sql.Open("sqlite", path)
30-
if err != nil {
31-
t.Fatal(err)
32-
}
33-
34-
files, err := sqlpath.Glob(migrations)
35-
if err != nil {
36-
t.Fatal(err)
37-
}
38-
for _, f := range files {
39-
blob, err := os.ReadFile(f)
40-
if err != nil {
41-
t.Fatal(err)
42-
}
43-
if _, err := sdb.Exec(string(blob)); err != nil {
44-
t.Fatalf("%s: %s", filepath.Base(f), err)
45-
}
46-
}
47-
48-
return sdb, func() {
49-
if _, err := os.Stat(path); err == nil {
50-
os.Remove(path)
51-
}
52-
}
53-
}

internal/sqltest/sqlite_modernc.go

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)