Add randomness pool mode for V4 UUID and NullUUID for SQL Scanners.
From Andrey Pechkurov:
Adds an optional randomness pool mode for Random (Version 4) UUID generation. The pool contains random bytes read from the random number generator on demand in batches. Enabling the pool may improve the UUID generation throughput significantly.
Since the pool is stored on the Go heap, this feature may be a bad fit for security sensitive applications. That's why it's implemented as an opt-in feature.
From Samuel Roth:
Added support for NullUUID
A NullUUID can be marked not valid (i.e., null) for use with JSON and the database/sql/driver.Scanner interfaces.
Add NewString()
This release introduces the NewString() function which is the equivalent of uuid.New().String().
Syntactic cleanup
There are no code changes. A missing period was add to a godoc comment and the linter was told to not complain that the results of hash.Write() are ignored (the function cannot fail)
Further error optimizations
Do not allocate memory for errors (it is only one word)
Optimize error reporting
Optimize length of time it takes to discover an input is bad by no longer using fmt.Errorf, which is quite slow. It now uses a custom error type that formats the string when the Error method is called rather than when generating the error.
Minor fixes
This release contains
Allow concurrent, re-creatable usage #44 by trabetti was merged on Apr 16, 2019
Fix race in NewUUID() #64 by AstolfoKawaii was merged on Jul 2, 2020
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps github.com/google/uuid from 1.1.1 to 1.3.0.
Release notes
Sourced from github.com/google/uuid's releases.
Commits
44b5fee
Minor cleanup.e28eb7b
Remove TestConformance from null_test.go. It was useful to demonstrateae25fc6
feat(uuid): Added support for NullUUID (#76)655bf50
Add randomness pool mode for V4 UUID (#80)512b657
feat: add public matcher function for custom error type invalidLengthError (#78)bfb86fa
Add NewString Func (#73)b5d0d36
hash.go hash error covered and linter error fixed (#71)9377784
Update sql.go (#72)85223fa
Reduce custom error allocation (#70)edef28d
Use a custom error type for invalid lengths, replacingfmt.Errorf
(#69)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)