Comments (9)
Typically, UUIDs are used as a client provided value to reference some unique record. So you'll typically receive it as a string. It makes sense to store it as such to avoid having to do any type conversion
from go.uuid.
I assume it's just to make it readable when storing it in a database, else you'd be storing it as a blob.
from go.uuid.
What if i want to store it as a 16 byte blob instead of a 36 byte string?
from go.uuid.
It doesn't really matter how it is received as this library stores it in a 16 byte array. So even if I did receive it as a string from a client, it would then be a 16 byte array after calling FromString
.
Point is: I can scan it from either a 16 byte slice, a text byte slice or a string. When valuing it, I should have the same options. If it came from the database as a 16 byte slice, I would assume being able to put it back like that.
from go.uuid.
Fair point. I was worried manually querying blob data in a MySQL database for example would be fiddly but it seems MySQL will cast strings to binary in queries. Not sure about other databases though...
from go.uuid.
Postgres handles this fine as well. You can exec / query with either string or byte array. On the console, it displays the UUID type as a string.
from go.uuid.
@danilobuerger @danhardman See initial discussion in #5
I never tested since if lib/pq supports binary protocol.
from go.uuid.
@satori Thanks for the link. Support for binary protocol in lib/pq was added here: lib/pq#357. It is a bit annoying to always call Bytes()
. Maybe there is a better solution while providing backward compatibility for people relying on it to be a string?
from go.uuid.
@danilobuerger What is the downside to just rolling your own struct composition and overriding Value()?
from go.uuid.
Related Issues (20)
- assignment mismatch: 2 variables but uuid.NewV4 returns 1 values HOT 4
- uuid.NewV4() - fixed in master, but bugged in all releases HOT 2
- Readme Coverage and GoDoc coverage report different values HOT 1
- PSA: This repo is dead
- assignment mismatch: 2 variables but uuid.NewV4 returns 1 values HOT 6
- release version problem HOT 6
- incompatible code between HEAD of master and tag v1.2.0 HOT 1
- Need new release/tag for vulnerability fix HOT 1
- Why did I get this mistake? HOT 1
- IMPORTANT: Unresolved CVE on latest release (CVE-2021-3538 ) HOT 1
- Create functions that allows go get empty/default uuid HOT 3
- It's time to switch to gitee.com/gofrs/uuid HOT 1
- Can you tag the fix that is in master using ReadFull as 1.2.1? HOT 1
- CVE-2021-3538 HOT 1
- Is it thread-Safe?! HOT 1
- Fix Request: CVE-2021-3538 HOT 2
- Issue using go.uuid in docker container HOT 3
- New Release possible? HOT 4
- could not get new version for go.mod HOT 1
- NewV1() get same result on Windows HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from go.uuid.