From bfe9bfde2e71bbfa0ae56e77a8729c5b81af7f19 Mon Sep 17 00:00:00 2001 From: Nuno Cruces Date: Wed, 7 Jun 2023 12:00:46 +0100 Subject: [PATCH] Make GORM driver its own module. --- go.mod | 6 ----- go.sum | 6 ----- gormlite/go.mod | 19 +++++++++++++ gormlite/go.sum | 20 ++++++++++++++ gormlite/test.sh | 14 ++++++++++ gormlite/tests.patch | 63 ++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 116 insertions(+), 12 deletions(-) create mode 100644 gormlite/go.mod create mode 100644 gormlite/go.sum create mode 100755 gormlite/test.sh create mode 100644 gormlite/tests.patch diff --git a/go.mod b/go.mod index 50d12f7..0371334 100644 --- a/go.mod +++ b/go.mod @@ -8,12 +8,6 @@ require ( github.com/tetratelabs/wazero v1.2.0 golang.org/x/sync v0.2.0 golang.org/x/sys v0.8.0 - gorm.io/gorm v1.25.1 -) - -require ( - github.com/jinzhu/inflection v1.0.0 // indirect - github.com/jinzhu/now v1.1.5 // indirect ) retract v0.4.0 // tagged from the wrong branch diff --git a/go.sum b/go.sum index 78018fa..5799fae 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,3 @@ -github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= -github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= -github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= -github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/ncruces/julianday v0.1.5 h1:hDJ9ejiMp3DHsoZ5KW4c1lwfMjbARS7u/gbYcd0FBZk= github.com/ncruces/julianday v0.1.5/go.mod h1:Dusn2KvZrrovOMJuOt0TNXL6tB7U2E8kvza5fFc9G7g= github.com/psanford/httpreadat v0.1.0 h1:VleW1HS2zO7/4c7c7zNl33fO6oYACSagjJIyMIwZLUE= @@ -12,5 +8,3 @@ golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -gorm.io/gorm v1.25.1 h1:nsSALe5Pr+cM3V1qwwQ7rOkw+6UeLrX5O4v3llhHa64= -gorm.io/gorm v1.25.1/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= diff --git a/gormlite/go.mod b/gormlite/go.mod new file mode 100644 index 0000000..b018619 --- /dev/null +++ b/gormlite/go.mod @@ -0,0 +1,19 @@ +module github.com/ncruces/go-sqlite/gormlite + +go 1.19 + +require ( + github.com/google/uuid v1.3.0 + github.com/jinzhu/now v1.1.5 + github.com/ncruces/go-sqlite3 v0.7.1 + gorm.io/driver/mysql v1.5.1 + gorm.io/gorm v1.25.1 +) + +require ( + github.com/go-sql-driver/mysql v1.7.0 // indirect + github.com/jinzhu/inflection v1.0.0 // indirect + github.com/ncruces/julianday v0.1.5 // indirect + github.com/tetratelabs/wazero v1.2.0 // indirect + golang.org/x/sys v0.8.0 // indirect +) diff --git a/gormlite/go.sum b/gormlite/go.sum new file mode 100644 index 0000000..ce170b7 --- /dev/null +++ b/gormlite/go.sum @@ -0,0 +1,20 @@ +github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= +github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= +github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= +github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= +github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= +github.com/ncruces/go-sqlite3 v0.7.1 h1:SDd3g18RobYi3NM8nZgozHM6jaqIbpMEmX42YGOVcTU= +github.com/ncruces/go-sqlite3 v0.7.1/go.mod h1:n+DEDYam8SK5jmsfUC/9GFhSF0gVHGXiYFXnAo8Jwsc= +github.com/ncruces/julianday v0.1.5 h1:hDJ9ejiMp3DHsoZ5KW4c1lwfMjbARS7u/gbYcd0FBZk= +github.com/ncruces/julianday v0.1.5/go.mod h1:Dusn2KvZrrovOMJuOt0TNXL6tB7U2E8kvza5fFc9G7g= +github.com/tetratelabs/wazero v1.2.0 h1:I/8LMf4YkCZ3r2XaL9whhA0VMyAvF6QE+O7rco0DCeQ= +github.com/tetratelabs/wazero v1.2.0/go.mod h1:wYx2gNRg8/WihJfSDxA1TIL8H+GkfLYm+bIfbblu9VQ= +golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +gorm.io/driver/mysql v1.5.1 h1:WUEH5VF9obL/lTtzjmML/5e6VfFR/788coz2uaVCAZw= +gorm.io/driver/mysql v1.5.1/go.mod h1:Jo3Xu7mMhCyj8dlrb3WoCaRd1FhsVh+yMXb1jUInf5o= +gorm.io/gorm v1.25.1 h1:nsSALe5Pr+cM3V1qwwQ7rOkw+6UeLrX5O4v3llhHa64= +gorm.io/gorm v1.25.1/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= diff --git a/gormlite/test.sh b/gormlite/test.sh new file mode 100755 index 0000000..1f9bb7f --- /dev/null +++ b/gormlite/test.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +set -euo pipefail + +cd -P -- "$(dirname -- "$0")" + +rm -rf gorm/ tests/ +git clone --filter=blob:none --branch=v1.25.1 https://github.com/go-gorm/gorm.git +mv gorm/tests tests +rm -rf gorm/ + +patch -p1 -N < tests.patch + +cd tests +go mod tidy && go test \ No newline at end of file diff --git a/gormlite/tests.patch b/gormlite/tests.patch new file mode 100644 index 0000000..de12c8b --- /dev/null +++ b/gormlite/tests.patch @@ -0,0 +1,63 @@ +diff --git a/tests/.gitignore b/tests/.gitignore +index 08cb523..72e8ffc 100644 +--- a/tests/.gitignore ++++ b/tests/.gitignore +@@ -1 +1 @@ +-go.sum ++* +diff --git a/tests/go.mod b/tests/go.mod +index f47d175..dba4a24 100644 +--- a/tests/go.mod ++++ b/tests/go.mod +@@ -7,13 +7,10 @@ require ( + github.com/jackc/pgx/v5 v5.3.1 // indirect + github.com/jinzhu/now v1.1.5 + github.com/lib/pq v1.10.8 +- github.com/mattn/go-sqlite3 v1.14.16 // indirect ++ github.com/ncruces/go-sqlite3 v0.7.1 + golang.org/x/crypto v0.8.0 // indirect + gorm.io/driver/mysql v1.5.0 + gorm.io/driver/postgres v1.5.0 +- gorm.io/driver/sqlite v1.5.0 + gorm.io/driver/sqlserver v1.4.3 +- gorm.io/gorm v1.25.0 +-) +- +-replace gorm.io/gorm => ../ ++ gorm.io/gorm v1.25.1 ++) +\ No newline at end of file +diff --git a/tests/scanner_valuer_test.go b/tests/scanner_valuer_test.go +index 1412169..472434b 100644 +--- a/tests/scanner_valuer_test.go ++++ b/tests/scanner_valuer_test.go +@@ -170,10 +170,10 @@ func (data *EncryptedData) Scan(value interface{}) error { + return errors.New("Too short") + } + +- *data = b[3:] ++ *data = append((*data)[0:], b[3:]...) + return nil + } else if s, ok := value.(string); ok { +- *data = []byte(s)[3:] ++ *data = []byte(s[3:]) + return nil + } + +diff --git a/tests/tests_test.go b/tests/tests_test.go +index 90eb847..cd9af43 100644 +--- a/tests/tests_test.go ++++ b/tests/tests_test.go +@@ -7,9 +7,11 @@ import ( + "path/filepath" + "time" + ++ _ "github.com/ncruces/go-sqlite3/embed" ++ sqlite "github.com/ncruces/go-sqlite3/gormlite" ++ + "gorm.io/driver/mysql" + "gorm.io/driver/postgres" +- "gorm.io/driver/sqlite" + "gorm.io/driver/sqlserver" + "gorm.io/gorm" + "gorm.io/gorm/logger"