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

Use Go standard libary sql/database abstraction #835

Merged
merged 12 commits into from
Jul 30, 2021
Merged

Use Go standard libary sql/database abstraction #835

merged 12 commits into from
Jul 30, 2021

Conversation

otoolep
Copy link
Member

@otoolep otoolep commented Jul 30, 2021

This PR changes the DB layer such that it no longer uses the SQLite driver directly, but instead uses the Go standard library SQL abstraction. This was done to fix faulty SQLite connection handling, in the context of multiple goroutines. This is believed to be the root cause of #830

Using the standard library abstraction also brings in connection pooling, which should help with some concurrency improvements -- without bugs. Connection pool stats are also added to the status/ output.

Empty statements now cause panic.
No longer relevant since each Exec and Query gets its own connection.
BoltDB has run fine for years with this issues, continue to ignore them.
@otoolep otoolep changed the title Sql layer Use Go standard libary sql/database abstraction Jul 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant