Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: use pure-go implementation when cgo is disabled #161

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

aymanbagabas
Copy link

This implements a pure-go alternative driver whenever CGO_ENABLED=0

Related: #93
Fixes: #35
Fixes: #72
Fixes: #77
Fixes: #160

  • Do only one thing
  • Non breaking API changes
  • Tested

What did this pull request do?

This PR uses a pure-go implementation of SQLite using https://gitlab.com/cznic/sqlite whenever CGO_ENABLED is disabled, and uses https://github.com/mattn/go-sqlite3 when CGO is enabled.

User Case Description

As shown in #77 #72 #93 #35, sometime CGO is inconvenient.

This implements a pure-go alternative driver whenever CGO_ENABLED=0

Related: go-gorm#93
Fixes: go-gorm#35
Fixes: go-gorm#72
Fixes: go-gorm#77
Fixes: go-gorm#160
aymanbagabas added a commit to aymanbagabas/gorm that referenced this pull request Jul 5, 2023
This tests the sqlite with/out CGO, updates the minimum tests go version
to 1.18, and adds the latest go version `^1` to the sqlite CI tests.

Related: go-gorm/sqlite#161
aymanbagabas added a commit to aymanbagabas/gorm that referenced this pull request Jul 5, 2023
This tests the sqlite with/out CGO, updates the minimum tests go version
to 1.18, and adds the latest go version `^1` to the sqlite CI tests.

Related: go-gorm/sqlite#161
aymanbagabas added a commit to aymanbagabas/gorm that referenced this pull request Jul 5, 2023
This tests the sqlite with/out CGO, updates the minimum tests go version
to 1.18, and adds the latest go version `^1` to the sqlite CI tests.

Related: go-gorm/sqlite#161
Format yaml using prettier

Remove go1.17 since modernc.org/sqlite requires at least go1.18
This enables running tests that require CGO like `go test -race` when
using pure-go sqlite through passing `-tags pure` build flag
aymanbagabas added a commit to aymanbagabas/gorm that referenced this pull request Jul 6, 2023
This tests the sqlite with/out CGO, updates the minimum tests go version
to 1.18, and adds the latest go version `^1` to the sqlite CI tests.

Related: go-gorm/sqlite#161
aymanbagabas added a commit to aymanbagabas/gorm that referenced this pull request Jul 6, 2023
This tests the sqlite with/out CGO, updates the minimum tests go version
to 1.18, and adds the latest go version `^1` to the sqlite CI tests.

Related: go-gorm/sqlite#161
aymanbagabas added a commit to aymanbagabas/gorm that referenced this pull request Jul 6, 2023
This tests the sqlite with/out CGO, updates the minimum tests go version
to 1.18, and adds the latest go version `^1` to the sqlite CI tests.

Related: go-gorm/sqlite#161
aymanbagabas added a commit to aymanbagabas/gorm that referenced this pull request Jul 6, 2023
This tests the sqlite with/out CGO, updates the minimum tests go version
to 1.18, and adds the latest go version `^1` to the sqlite CI tests.

Related: go-gorm/sqlite#161
aymanbagabas added a commit to aymanbagabas/gorm that referenced this pull request Jul 6, 2023
This tests the sqlite with/out CGO, updates the minimum tests go version
to 1.18, and adds the latest go version `^1` to the sqlite CI tests.

Related: go-gorm/sqlite#161
aymanbagabas added a commit to aymanbagabas/gorm that referenced this pull request Jul 6, 2023
This tests the sqlite with/out CGO, updates the minimum tests go version
to 1.18, and adds the latest go version `^1` to the sqlite CI tests.

Related: go-gorm/sqlite#161
@ncruces
Copy link
Contributor

ncruces commented Aug 20, 2023

DSNs are different between drivers. Having code that behaves silently behaves significantly differently because the C compiler toolchain is not installed is a bad idea, IMO.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants