"Trevor Talbot" <[EMAIL PROTECTED]> wrote:
> 
> > > sqlite> select "{" || hex(randomblob(4)) || "-" || hex(randomblob(2))
> > > || "-" || hex(randomblob(2)) ||  "-" || hex(randomblob(2)) || "-" ||
> > > hex(randomblob(6)) || "}";
> > > {4EA4A842-6ACA-0A81-5B42-F9E1D295BC27}
> 
> Note that this is *NOT* a GUID/UUID.  Be very sure of your
> requirement: if you need a GUID, write a function that uses your
> platform tools to get one.  If you just need some long random
> identifier, the above is fine, but don't call it a GUID.  See RFC
> 4122.
> 

Please reread RFC-4122, especially section 4.4.  While Chase's
guid is technically in violation of RFC-4122 in that it contains
4 extra bits of randomness, it is very close.  And in a sense,
the extra 4 bits of randomness provide a stronger GUID than
RFC-4122 specifies.

I personally find all the syntax in RFC-4122 to be annoying
and so I usually do my GUIDs using hex(randomblob(20)).  But
I guess that is just personal preference.

Note that SQLite contains a decent PRNG which is well seeded,
if you are running on Mac or Linux.  (We need to work on better
seeding on Win32...)

--
D. Richard Hipp <[EMAIL PROTECTED]>


-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to