HASH f07d8c45f9c5
DATE 2026-07-16
SUBJECT ookstats: replace go-libsql with mattn go-sqlite3
FILES 6 CHANGED
HASH f07d8c45f9c5
DATE 2026-07-16
SUBJECT ookstats: replace go-libsql with mattn
go-sqlite3
FILES 6 CHANGED
┌─ nix/pkgs/default.nix ─────────────────────────────────────────────────────┐
│ diff --git a/nix/pkgs/default.nix b/nix/pkgs/default.nix │
│ index bc25609..1975349 100644 │
│ --- a/nix/pkgs/default.nix │
│ +++ b/nix/pkgs/default.nix │
│ @@ -23,14 +23,7 @@ │
│ racePackages = lib.mapAttrs (_name: sim: sim.script) (simulation.generateRace │
│ Comparisons pkgs); │
│ trinketPackages = lib.mapAttrs (_name: sim: sim.script) (simulation.generateT │
│ rinketComparisons pkgs); │
│ │
│ - go-libsql-src = pkgs.fetchFromGitHub { │
│ - owner = "tursodatabase"; │
│ - repo = "go-libsql"; │
│ - rev = "60e59c7150f4"; │
│ - hash = "sha256-TuD/7AWkC13lQct2QguO31dP1th+nD0ZTPqD+RUfnu8="; │
│ - }; │
│ - │
│ - ookstats = callPackage ./ookstats {inherit go-libsql-src wowsims-db;}; │
│ + ookstats = callPackage ./ookstats {inherit wowsims-db;}; │
│ ookstats-deploy = callPackage ./ookstats-deploy {inherit ookstats;}; │
│ in { │
│ packages = │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ nix/pkgs/default.nix ───────────────┐
│ diff --git a/nix/pkgs/default.nix b/nix/pkgs │
│ /default.nix │
│ index bc25609..1975349 100644 │
│ --- a/nix/pkgs/default.nix │
│ +++ b/nix/pkgs/default.nix │
│ @@ -23,14 +23,7 @@ │
│ racePackages = lib.mapAttrs (_name: sim │
│ : sim.script) (simulation.generateRaceCompar │
│ isons pkgs); │
│ trinketPackages = lib.mapAttrs (_name: │
│ sim: sim.script) (simulation.generateTrinket │
│ Comparisons pkgs); │
│ │
│ - go-libsql-src = pkgs.fetchFromGitHub { │
│ - owner = "tursodatabase"; │
│ - repo = "go-libsql"; │
│ - rev = "60e59c7150f4"; │
│ - hash = "sha256-TuD/7AWkC13lQct2QguO31 │
│ dP1th+nD0ZTPqD+RUfnu8="; │
│ - }; │
│ - │
│ - ookstats = callPackage ./ookstats {inhe │
│ rit go-libsql-src wowsims-db;}; │
│ + ookstats = callPackage ./ookstats {inhe │
│ rit wowsims-db;}; │
│ ookstats-deploy = callPackage ./ookstat │
│ s-deploy {inherit ookstats;}; │
│ in { │
│ packages = │
└──────────────────────────────────────────────┘
┌─ nix/pkgs/ookstats/default.nix ────────────────────────────────────────────┐
│ diff --git a/nix/pkgs/ookstats/default.nix b/nix/pkgs/ookstats/default.nix │
│ index 06006b2..5c4d1a4 100644 │
│ --- a/nix/pkgs/ookstats/default.nix │
│ +++ b/nix/pkgs/ookstats/default.nix │
│ @@ -2,40 +2,21 @@ │
│ buildGoModule, │
│ lib, │
│ gcc, │
│ - pkgs, │
│ - go-libsql-src, │
│ installShellFiles, │
│ makeWrapper, │
│ wowsims-db, │
│ ... │
│ -}: let │
│ - # map nix platform to go-libsql's platform string │
│ - libsqlArch = │
│ - if pkgs.stdenv.hostPlatform.system == "x86_64-linux" │
│ - then "linux_amd64" │
│ - else if pkgs.stdenv.hostPlatform.system == "aarch64-linux" │
│ - then "linux_arm64" │
│ - else if pkgs.stdenv.hostPlatform.system == "aarch64-darwin" │
│ - then "darwin_arm64" │
│ - else throw "Unsupported platform for go-libsql pre-compiled library"; │
│ -in │
│ +}: │
│ buildGoModule { │
│ pname = "ookstats"; │
│ version = "0.2.0"; │
│ src = ./src; │
│ │
│ - vendorHash = "sha256-DHj4DTsXkFQZUimMrnqYc6RVTfsbukBmUcYt/dRwKUo="; │
│ + vendorHash = "sha256-QJxCINaMiJ6OjRJaOnHMW4gSfXLkXOYQU8xfbKdgQuQ="; │
│ │
│ nativeBuildInputs = [gcc installShellFiles makeWrapper]; │
│ │
│ - env = { │
│ - CGO_ENABLED = "1"; │
│ - # see: │
│ - # https://github.com/tursodatabase/go-libsql/issues/21 │
│ - # https://github.com/tursodatabase/go-libsql/issues/57 │
│ - CGO_CFLAGS = "-I${go-libsql-src}/lib/include"; │
│ - CGO_LDFLAGS = "-L${go-libsql-src}/lib/${libsqlArch} -lsql_experimental"; │
│ - }; │
│ + env.CGO_ENABLED = "1"; │
│ │
│ # Generate shell completions │
│ postInstall = '' │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ nix/pkgs/ookstats/default.nix ──────┐
│ diff --git a/nix/pkgs/ookstats/default.nix b │
│ /nix/pkgs/ookstats/default.nix │
│ index 06006b2..5c4d1a4 100644 │
│ --- a/nix/pkgs/ookstats/default.nix │
│ +++ b/nix/pkgs/ookstats/default.nix │
│ @@ -2,40 +2,21 @@ │
│ buildGoModule, │
│ lib, │
│ gcc, │
│ - pkgs, │
│ - go-libsql-src, │
│ installShellFiles, │
│ makeWrapper, │
│ wowsims-db, │
│ ... │
│ -}: let │
│ - # map nix platform to go-libsql's platfor │
│ m string │
│ - libsqlArch = │
│ - if pkgs.stdenv.hostPlatform.system == " │
│ x86_64-linux" │
│ - then "linux_amd64" │
│ - else if pkgs.stdenv.hostPlatform.system │
│ == "aarch64-linux" │
│ - then "linux_arm64" │
│ - else if pkgs.stdenv.hostPlatform.system │
│ == "aarch64-darwin" │
│ - then "darwin_arm64" │
│ - else throw "Unsupported platform for go │
│ -libsql pre-compiled library"; │
│ -in │
│ +}: │
│ buildGoModule { │
│ pname = "ookstats"; │
│ version = "0.2.0"; │
│ src = ./src; │
│ │
│ - vendorHash = "sha256-DHj4DTsXkFQZUimMrn │
│ qYc6RVTfsbukBmUcYt/dRwKUo="; │
│ + vendorHash = "sha256-QJxCINaMiJ6OjRJaOn │
│ HMW4gSfXLkXOYQU8xfbKdgQuQ="; │
│ │
│ nativeBuildInputs = [gcc installShellFi │
│ les makeWrapper]; │
│ │
│ - env = { │
│ - CGO_ENABLED = "1"; │
│ - # see: │
│ - # https://github.com/tursodatabase/go │
│ -libsql/issues/21 │
│ - # https://github.com/tursodatabase/go │
│ -libsql/issues/57 │
│ - CGO_CFLAGS = "-I${go-libsql-src}/lib/ │
│ include"; │
│ - CGO_LDFLAGS = "-L${go-libsql-src}/lib │
│ /${libsqlArch} -lsql_experimental"; │
│ - }; │
│ + env.CGO_ENABLED = "1"; │
│ │
│ # Generate shell completions │
│ postInstall = '' │
└──────────────────────────────────────────────┘
┌─ nix/pkgs/ookstats/src/cmd/generate.go ────────────────────────────────────┐
│ diff --git a/nix/pkgs/ookstats/src/cmd/generate.go b/nix/pkgs/ookstats/src/cmd/gen │
│ erate.go │
│ index 51ca78b..88a793e 100644 │
│ --- a/nix/pkgs/ookstats/src/cmd/generate.go │
│ +++ b/nix/pkgs/ookstats/src/cmd/generate.go │
│ @@ -8,7 +8,6 @@ import ( │
│ "strings" │
│ │
│ "github.com/spf13/cobra" │
│ - _ "github.com/tursodatabase/go-libsql" │
│ "ookstats/internal/database" │
│ "ookstats/internal/generator" │
│ "ookstats/internal/generator/indexes" │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ .../ookstats/src/cmd/generate.go ───┐
│ diff --git a/nix/pkgs/ookstats/src/cmd/gener │
│ ate.go b/nix/pkgs/ookstats/src/cmd/generate. │
│ go │
│ index 51ca78b..88a793e 100644 │
│ --- a/nix/pkgs/ookstats/src/cmd/generate.go │
│ +++ b/nix/pkgs/ookstats/src/cmd/generate.go │
│ @@ -8,7 +8,6 @@ import ( │
│ "strings" │
│ │
│ "github.com/spf13/cobra" │
│ - _ "github.com/tursodatabase/go-libsql" │
│ "ookstats/internal/database" │
│ "ookstats/internal/generator" │
│ "ookstats/internal/generator/indexes" │
└──────────────────────────────────────────────┘
┌─ nix/pkgs/ookstats/src/go.mod ─────────────────────────────────────────────┐
│ diff --git a/nix/pkgs/ookstats/src/go.mod b/nix/pkgs/ookstats/src/go.mod │
│ index 89f2250..016addc 100644 │
│ --- a/nix/pkgs/ookstats/src/go.mod │
│ +++ b/nix/pkgs/ookstats/src/go.mod │
│ @@ -4,12 +4,11 @@ go 1.21 │
│ │
│ require ( │
│ github.com/charmbracelet/log v0.4.2 │
│ + github.com/mattn/go-sqlite3 v1.14.48 │
│ github.com/spf13/cobra v1.10.1 │
│ - github.com/tursodatabase/go-libsql v0.0.0-20250723062947-60e59c7150f4 │
│ ) │
│ │
│ require ( │
│ - github.com/antlr4-go/antlr/v4 v4.13.0 // indirect │
│ github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect │
│ github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc // in │
│ direct │
│ github.com/charmbracelet/lipgloss v1.1.0 // indirect │
│ @@ -18,7 +17,6 @@ require ( │
│ github.com/charmbracelet/x/term v0.2.1 // indirect │
│ github.com/go-logfmt/logfmt v0.6.0 // indirect │
│ github.com/inconshreveable/mousetrap v1.1.0 // indirect │
│ - github.com/libsql/sqlite-antlr4-parser v0.0.0-20240327125255-dbf53b6cbf06 // ind │
│ irect │
│ github.com/lucasb-eyer/go-colorful v1.2.0 // indirect │
│ github.com/mattn/go-isatty v0.0.20 // indirect │
│ github.com/mattn/go-runewidth v0.0.16 // indirect │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ nix/pkgs/ookstats/src/go.mod ───────┐
│ diff --git a/nix/pkgs/ookstats/src/go.mod b/ │
│ nix/pkgs/ookstats/src/go.mod │
│ index 89f2250..016addc 100644 │
│ --- a/nix/pkgs/ookstats/src/go.mod │
│ +++ b/nix/pkgs/ookstats/src/go.mod │
│ @@ -4,12 +4,11 @@ go 1.21 │
│ │
│ require ( │
│ github.com/charmbracelet/log v0.4.2 │
│ + github.com/mattn/go-sqlite3 v1.14.48 │
│ github.com/spf13/cobra v1.10.1 │
│ - github.com/tursodatabase/go-libsql v0.0.0- │
│ 20250723062947-60e59c7150f4 │
│ ) │
│ │
│ require ( │
│ - github.com/antlr4-go/antlr/v4 v4.13.0 // i │
│ ndirect │
│ github.com/aymanbagabas/go-osc52/v2 v2.0.1 │
│ // indirect │
│ github.com/charmbracelet/colorprofile v0.2 │
│ .3-0.20250311203215-f60798e515dc // indirect │
│ github.com/charmbracelet/lipgloss v1.1.0 / │
│ / indirect │
│ @@ -18,7 +17,6 @@ require ( │
│ github.com/charmbracelet/x/term v0.2.1 // │
│ indirect │
│ github.com/go-logfmt/logfmt v0.6.0 // indi │
│ rect │
│ github.com/inconshreveable/mousetrap v1.1. │
│ 0 // indirect │
│ - github.com/libsql/sqlite-antlr4-parser v0. │
│ 0.0-20240327125255-dbf53b6cbf06 // indirect │
│ github.com/lucasb-eyer/go-colorful v1.2.0 │
│ // indirect │
│ github.com/mattn/go-isatty v0.0.20 // indi │
│ rect │
│ github.com/mattn/go-runewidth v0.0.16 // i │
│ ndirect │
└──────────────────────────────────────────────┘
┌─ nix/pkgs/ookstats/src/go.sum ─────────────────────────────────────────────┐
│ diff --git a/nix/pkgs/ookstats/src/go.sum b/nix/pkgs/ookstats/src/go.sum │
│ index ea0f955..3c909b1 100644 │
│ --- a/nix/pkgs/ookstats/src/go.sum │
│ +++ b/nix/pkgs/ookstats/src/go.sum │
│ @@ -1,5 +1,3 @@ │
│ -github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8T │
│ VTI= │
│ -github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9U │
│ TnmpPaOR2g= │
│ github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiEr │
│ DT4WkJ2k= │
│ github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2 │
│ ASbcXHWsFqH8hp8= │
│ github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc h1:4pZ │
│ I35227imm7yK2bGPcfpFEmuY1gc2YSTShr4iJBfs= │
│ @@ -19,22 +17,18 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARq │
│ s3+rkHYY13jYWTU97c │
│ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI │
│ +c5H38= │
│ github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4 │
│ = │
│ github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEV │
│ veWlfTs= │
│ -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= │
│ -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNG │
│ IjoY= │
│ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s │
│ 0bqwp9tc8= │
│ github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfs │
│ EA9PFc4w1p2J65bw= │
│ -github.com/libsql/sqlite-antlr4-parser v0.0.0-20240327125255-dbf53b6cbf06 h1:JLvn │
│ 7D+wXjH9g4Jsjo+VqmzTUpl/LX7vfr6VOfSWTdM= │
│ -github.com/libsql/sqlite-antlr4-parser v0.0.0-20240327125255-dbf53b6cbf06/go.mod │
│ h1:FUkZ5OHjlGPjnM2UyGJz9TypXQFgYqw6AFNO1UiROTM= │
│ github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69A │
│ j6K7nkY= │
│ github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7 │
│ ruzyGqttikkLy0= │
│ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY │
│ = │
│ github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7 │
│ dTCTo3Y= │
│ github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TU │
│ LQc= │
│ github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh1 │
│ 53qUoGf23w= │
│ +github.com/mattn/go-sqlite3 v1.14.48 h1:7XHIgl0a8HwOaiK4E47ozLkST78rR9+OtNGx27D/T │
│ Fs= │
│ +github.com/mattn/go-sqlite3 v1.14.48/go.mod h1:6JTjA44L93a0QCyJef5YvlPoKXntQPjzWv │
│ 5gtm9sB6w= │
│ github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc= │
│ github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3V │
│ fY/Cnk= │
│ -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= │
│ -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl │
│ 0= │
│ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbA │
│ QM= │
│ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNV │
│ Y4sRDYZ/4= │
│ github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJt │
│ xc= │
│ @@ -47,19 +41,13 @@ github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iR │
│ ViNW+4lEMi0PvY= │
│ github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2 │
│ Bg= │
│ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJ │
│ A= │
│ github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8 │
│ C91i36aY= │
│ -github.com/tursodatabase/go-libsql v0.0.0-20250723062947-60e59c7150f4 h1:UwxG3Vmt │
│ rhYRF38SDa1M829udKBXGqYcbzcWd0EBImc= │
│ -github.com/tursodatabase/go-libsql v0.0.0-20250723062947-60e59c7150f4/go.mod h1:T │
│ jsB2miB8RW2Sse8sdxzVTdeGlx74GloD5zJYUC38d8= │
│ github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF │
│ /ppJZNG9ZpyihvCd0w101no= │
│ github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuq │
│ unuUZ/Dhy/avygyECGrLceyNeo4LiM= │
│ golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 h1:aAcj0Da7eBAtrTp03QXWvm88pS │
│ yOt+UgdZw2BFZ+lEw= │
│ golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8/go.mod h1:CQ1k9gNrJ50XIzaKCRR │
│ 2hssIjF07kZFEiieALBM/ARQ= │
│ -golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= │
│ -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= │
│ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= │
│ golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= │
│ golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= │
│ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8h │
│ uTwlJQCZ016jof/cbN4VW5Yz0= │
│ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= │
│ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= │
│ -gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= │
│ -gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81H │
│ FBacw= │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ nix/pkgs/ookstats/src/go.sum ───────┐
│ diff --git a/nix/pkgs/ookstats/src/go.sum b/ │
│ nix/pkgs/ookstats/src/go.sum │
│ index ea0f955..3c909b1 100644 │
│ --- a/nix/pkgs/ookstats/src/go.sum │
│ +++ b/nix/pkgs/ookstats/src/go.sum │
│ @@ -1,5 +1,3 @@ │
│ -github.com/antlr4-go/antlr/v4 v4.13.0 h1:lx │
│ Cg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI= │
│ -github.com/antlr4-go/antlr/v4 v4.13.0/go.mo │
│ d h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPa │
│ OR2g= │
│ github.com/aymanbagabas/go-osc52/v2 v2.0.1 │
│ h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ │
│ 2k= │
│ github.com/aymanbagabas/go-osc52/v2 v2.0.1/ │
│ go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXH │
│ WsFqH8hp8= │
│ github.com/charmbracelet/colorprofile v0.2. │
│ 3-0.20250311203215-f60798e515dc h1:4pZI35227 │
│ imm7yK2bGPcfpFEmuY1gc2YSTShr4iJBfs= │
│ @@ -19,22 +17,18 @@ github.com/davecgh/go-sp │
│ ew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkH │
│ YY13jYWTU97c │
│ github.com/davecgh/go-spew v1.1.1/go.mod h1 │
│ :J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38 │
│ = │
│ github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu │
│ 3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= │
│ github.com/go-logfmt/logfmt v0.6.0/go.mod h │
│ 1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfT │
│ s= │
│ -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg │
│ 4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= │
│ -github.com/google/go-cmp v0.5.9/go.mod h1:1 │
│ 7dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= │
│ github.com/inconshreveable/mousetrap v1.1.0 │
│ h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9 │
│ tc8= │
│ github.com/inconshreveable/mousetrap v1.1.0 │
│ /go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc │
│ 4w1p2J65bw= │
│ -github.com/libsql/sqlite-antlr4-parser v0.0 │
│ .0-20240327125255-dbf53b6cbf06 h1:JLvn7D+wXj │
│ H9g4Jsjo+VqmzTUpl/LX7vfr6VOfSWTdM= │
│ -github.com/libsql/sqlite-antlr4-parser v0.0 │
│ .0-20240327125255-dbf53b6cbf06/go.mod h1:FUk │
│ Z5OHjlGPjnM2UyGJz9TypXQFgYqw6AFNO1UiROTM= │
│ github.com/lucasb-eyer/go-colorful v1.2.0 h │
│ 1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nk │
│ Y= │
│ github.com/lucasb-eyer/go-colorful v1.2.0/g │
│ o.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGq │
│ ttikkLy0= │
│ github.com/mattn/go-isatty v0.0.20 h1:xfD0i │
│ DuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= │
│ github.com/mattn/go-isatty v0.0.20/go.mod h │
│ 1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3 │
│ Y= │
│ github.com/mattn/go-runewidth v0.0.16 h1:E5 │
│ ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= │
│ github.com/mattn/go-runewidth v0.0.16/go.mo │
│ d h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoG │
│ f23w= │
│ +github.com/mattn/go-sqlite3 v1.14.48 h1:7XH │
│ Igl0a8HwOaiK4E47ozLkST78rR9+OtNGx27D/TFs= │
│ +github.com/mattn/go-sqlite3 v1.14.48/go.mod │
│ h1:6JTjA44L93a0QCyJef5YvlPoKXntQPjzWv5gtm9s │
│ B6w= │
│ github.com/muesli/termenv v0.16.0 h1:S5AlUN │
│ 9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc= │
│ github.com/muesli/termenv v0.16.0/go.mod h1 │
│ :ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk │
│ = │
│ -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214 │
│ owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= │
│ -github.com/pkg/errors v0.9.1/go.mod h1:bwaw │
│ xfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= │
│ github.com/pmezard/go-difflib v1.0.0 h1:4DB │
│ wDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= │
│ github.com/pmezard/go-difflib v1.0.0/go.mod │
│ h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDY │
│ Z/4= │
│ github.com/rivo/uniseg v0.2.0/go.mod h1:J6w │
│ j4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= │
│ @@ -47,19 +41,13 @@ github.com/spf13/pflag v │
│ 1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4 │
│ lEMi0PvY= │
│ github.com/spf13/pflag v1.0.9/go.mod h1:McX │
│ fInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= │
│ github.com/stretchr/testify v1.10.0 h1:Xv5e │
│ rBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= │
│ github.com/stretchr/testify v1.10.0/go.mod │
│ h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36 │
│ aY= │
│ -github.com/tursodatabase/go-libsql v0.0.0-2 │
│ 0250723062947-60e59c7150f4 h1:UwxG3VmtrhYRF3 │
│ 8SDa1M829udKBXGqYcbzcWd0EBImc= │
│ -github.com/tursodatabase/go-libsql v0.0.0-2 │
│ 0250723062947-60e59c7150f4/go.mod h1:TjsB2mi │
│ B8RW2Sse8sdxzVTdeGlx74GloD5zJYUC38d8= │
│ github.com/xo/terminfo v0.0.0-2022091000202 │
│ 9-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZN │
│ G9ZpyihvCd0w101no= │
│ github.com/xo/terminfo v0.0.0-2022091000202 │
│ 9-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/ │
│ Dhy/avygyECGrLceyNeo4LiM= │
│ golang.org/x/exp v0.0.0-20240325151524-a685 │
│ a6edb6d8 h1:aAcj0Da7eBAtrTp03QXWvm88pSyOt+Ug │
│ dZw2BFZ+lEw= │
│ golang.org/x/exp v0.0.0-20240325151524-a685 │
│ a6edb6d8/go.mod h1:CQ1k9gNrJ50XIzaKCRR2hssIj │
│ F07kZFEiieALBM/ARQ= │
│ -golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr │
│ 1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= │
│ -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1 │
│ gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= │
│ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJr │
│ h7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= │
│ golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFY │
│ WkSue1YwXzLmsV5Gfq7Eiy72C1uc= │
│ golang.org/x/sys v0.30.0/go.mod h1:/VUhepia │
│ JMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= │
│ gopkg.in/check.v1 v0.0.0-20161208181325-20d │
│ 25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQ │
│ CZ016jof/cbN4VW5Yz0= │
│ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuv │
│ ctI91KS9hhNmmWOoWu0XTYJS7CA= │
│ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7B │
│ CEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= │
│ -gotest.tools v2.2.0+incompatible h1:VsBPFP1 │
│ AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= │
│ -gotest.tools v2.2.0+incompatible/go.mod h1: │
│ DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= │
└──────────────────────────────────────────────┘
┌─ nix/pkgs/ookstats/src/internal/database/client.go ────────────────────────┐
│ diff --git a/nix/pkgs/ookstats/src/internal/database/client.go b/nix/pkgs/ookstats │
│ /src/internal/database/client.go │
│ index 3dcee09..d6d8d14 100644 │
│ --- a/nix/pkgs/ookstats/src/internal/database/client.go │
│ +++ b/nix/pkgs/ookstats/src/internal/database/client.go │
│ @@ -6,10 +6,19 @@ import ( │
│ "os" │
│ "strings" │
│ │
│ - _ "github.com/tursodatabase/go-libsql" │
│ + sqlite3 "github.com/mattn/go-sqlite3" │
│ ) │
│ │
│ -// connect creates a local libSQL database connection │
│ +func init() { │
│ + sql.Register("sqlite3_ookstats", &sqlite3.SQLiteDriver{ │
│ + ConnectHook: func(conn *sqlite3.SQLiteConn) error { │
│ + // cache_size has no DSN param in mattn/go-sqlite3; apply per connection │
│ + _, err := conn.Exec("PRAGMA cache_size = -64000", nil) │
│ + return err │
│ + }, │
│ + }) │
│ +} │
│ + │
│ var dbPathOverride string │
│ │
│ // SetDBPath allows callers (CLI) to override the local SQLite filename │
│ @@ -17,7 +26,7 @@ func SetDBPath(path string) { │
│ dbPathOverride = path │
│ } │
│ │
│ -// DBConnString returns the libsql connection string for the local SQLite file │
│ +// DBConnString returns the DSN for the local SQLite file │
│ func DBConnString() string { │
│ // Priority: explicit override -> env vars -> default │
│ if dbPathOverride != "" { │
│ @@ -48,11 +57,7 @@ func ensureDSNParams(base string) string { │
│ if strings.Contains(base, "?") { │
│ return base │
│ } │
│ - return base + "?" + │
│ - "_pragma=journal_mode(WAL)&" + │
│ - "_pragma=synchronous=NORMAL&" + │
│ - "_pragma=busy_timeout=5000&" + │
│ - "_pragma=cache_size=-64000" │
│ + return base + "?_journal_mode=WAL&_synchronous=NORMAL&_busy_timeout=5000" │
│ } │
│ │
│ // DBFilePath returns the plain filesystem path for the local DB (without file: p │
│ refix) │
│ @@ -69,7 +74,7 @@ func Connect() (*sql.DB, error) { │
│ fmt.Printf("Using local SQLite database: %s\n", dsn) │
│ fmt.Printf("Opening database connection...\n") │
│ │
│ - db, err := sql.Open("libsql", dsn) │
│ + db, err := sql.Open("sqlite3_ookstats", dsn) │
│ if err != nil { │
│ return nil, fmt.Errorf("failed to open database: %w", err) │
│ } │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...c/internal/database/client.go ───┐
│ diff --git a/nix/pkgs/ookstats/src/internal/ │
│ database/client.go b/nix/pkgs/ookstats/src/i │
│ nternal/database/client.go │
│ index 3dcee09..d6d8d14 100644 │
│ --- a/nix/pkgs/ookstats/src/internal/databas │
│ e/client.go │
│ +++ b/nix/pkgs/ookstats/src/internal/databas │
│ e/client.go │
│ @@ -6,10 +6,19 @@ import ( │
│ "os" │
│ "strings" │
│ │
│ - _ "github.com/tursodatabase/go-libsql" │
│ + sqlite3 "github.com/mattn/go-sqlite3" │
│ ) │
│ │
│ -// connect creates a local libSQL database │
│ connection │
│ +func init() { │
│ + sql.Register("sqlite3_ookstats", &sqlite3. │
│ SQLiteDriver{ │
│ + ConnectHook: func(conn *sqlite3.SQLiteCon │
│ n) error { │
│ + // cache_size has no DSN param in mattn/ │
│ go-sqlite3; apply per connection │
│ + _, err := conn.Exec("PRAGMA cache_size = │
│ -64000", nil) │
│ + return err │
│ + }, │
│ + }) │
│ +} │
│ + │
│ var dbPathOverride string │
│ │
│ // SetDBPath allows callers (CLI) to overri │
│ de the local SQLite filename │
│ @@ -17,7 +26,7 @@ func SetDBPath(path string │
│ ) { │
│ dbPathOverride = path │
│ } │
│ │
│ -// DBConnString returns the libsql connecti │
│ on string for the local SQLite file │
│ +// DBConnString returns the DSN for the loc │
│ al SQLite file │
│ func DBConnString() string { │
│ // Priority: explicit override -> env vars │
│ -> default │
│ if dbPathOverride != "" { │
│ @@ -48,11 +57,7 @@ func ensureDSNParams(base │
│ string) string { │
│ if strings.Contains(base, "?") { │
│ return base │
│ } │
│ - return base + "?" + │
│ - "_pragma=journal_mode(WAL)&" + │
│ - "_pragma=synchronous=NORMAL&" + │
│ - "_pragma=busy_timeout=5000&" + │
│ - "_pragma=cache_size=-64000" │
│ + return base + "?_journal_mode=WAL&_synchro │
│ nous=NORMAL&_busy_timeout=5000" │
│ } │
│ │
│ // DBFilePath returns the plain filesystem │
│ path for the local DB (without file: prefix) │
│ @@ -69,7 +74,7 @@ func Connect() (*sql.DB, e │
│ rror) { │
│ fmt.Printf("Using local SQLite database: % │
│ s\n", dsn) │
│ fmt.Printf("Opening database connection... │
│ \n") │
│ │
│ - db, err := sql.Open("libsql", dsn) │
│ + db, err := sql.Open("sqlite3_ookstats", ds │
│ n) │
│ if err != nil { │
│ return nil, fmt.Errorf("failed to open da │
│ tabase: %w", err) │
│ } │
└──────────────────────────────────────────────┘
[ BACK TO LOG ]
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET