* feat: remove dependency on "hashicorp/go-multierror"
It seems the project has been unmainted for quite some time already,
see for example https://github.com/hashicorp/go-multierror/issues/97
and https://github.com/hashicorp/go-multierror/issues/98.
This also removes an uneccessary dependency which slims down the go.mod.
Go as of version 1.20 supports appending errors by specifying
multiple "%w" formatters in the "fmt.Errorf"[^0] function.
[^0]: https://pkg.go.dev/fmt#Errorf
* feat: use errors.Join to combine multiple errors
As an update to the previous commit 59f084ea3be2e7ec9d912c1a311402b1e4c40df6,
use "errors.Join"[^0] instead of multiple "%w" formatters for "fmt.Errorf".
[^0]: https://pkg.go.dev/errors#Join
* chore: bring back unused util.go file as removing it is a breaking change
As of Go 1.16, the same functionality is now provided by package io or
package os, and those implementations should be preferred in new code.
So replacing all usage of ioutil pkg with io & os.
* MSI Auth for SQL Server
Add MSI Auth option to SQL Server connection. Default if no password is provided in connection string.
* Parse resource endpoint from server for msi
update host name parsing to get just the resource endpoint for msi
* Update go-mssqldb
update go-mssqldb to resolve panic issue referenced here: https://github.com/denisenkom/go-mssqldb/pull/642
* Update sqlserver.go
switch from deprecated methods. NewServicePrincipalTokenFromManagedIdentity calls the two methods that are deprecated for us
* Update sqlserver.go
add useMsi param instead of looking for nil password
* Update sqlserver readme
Update sqlserver readme for msi auth. make useMsi a bit safer
* Update sqlserver.go
remove comment
* Update database/sqlserver/README.md
Co-authored-by: Keegan Campbell <[email protected]>
* Update sqlserver.go
refactor resource uri logic into its own method
* Update sqlserver_test.go
add tests for msi connection. can only test whether it fails with useMsi= true, or succeeds with useMsi=false
* Update sqlserver.go
check msi.EnsureFresh return value
* Return error for multiple auth and move query filter
move migrate.FilterCustomQuery(purl).String() into one line out of if/else. return error if both useMsi=true and password are passed
* Update README.md
update readme with warning for useMsi
* Update sqlserver_test.go
Update TestMsiFalse test case as now it should fail when useMsi=false and no password is provided
Co-authored-by: Keegan Campbell <[email protected]>
* used uber atomic bool instead standard in lock/unlock db
* fixing local lock optimization implementation
* fixing mysql local lock optimization implementation
* fixing cockroachdb local lock optimization implementation
* CAS wrapper to automatically restore
* added test for cas with restore
* added atomic lock to sqlite & mongo
* added atomic lock to sqlite & mongo
* fix/refactor test cas restore function
* disable lock for mongo
* mongo local lock before acquiring the db lock
Co-authored-by: a.prinkov <[email protected]>