Search Postgresql Archives

Re: GUID for postgreSQL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Yes, this is the problem with GUIDs... you can calculate them by mashing
toghether things like the time, a network address, and some random
numbers, which makes it very unlikely for a collision.... but at the end
of the day that G stand for global, *not* guaranteed.

On Wed, 27 Jul 2005, Scott Marlowe wrote:

> On Wed, 2005-07-27 at 15:32, John DeSoi wrote:
> > On Jul 27, 2005, at 4:49 AM, Tino Wildenhain wrote:
> > 
> > > I'd create a sequence:
> > >
> > > CREATE SEQUENCE global_unique_id_seq;
> > >
> > > and a function:
> > >
> > > CREATE OR REPLACE FUNCTION newid()
> > >   RETURNS text AS
> > > $BODY$ SELECT nextval('global_unique_id_seq')::text; $BODY$
> > >   LANGUAGE 'sql' VOLATILE;
> > >
> > >
> > > now every call to newid() returns a garantied unique id for
> > > say the next 18446744073709551616 calls.
> > > Of course you can obfuscate the ID even more using
> > > md5, include servername and so on, but this will not improve
> > > security in any way (unless you mix data with 2nd database)
> > 
> > 
> > This is not really a viable replacement for a GUID == globally unique  
> > identifier. Here global means that if I use the application in  
> > multiple databases, I'm guaranteed that no two identifiers will be  
> > the same. Using a sequence will only support uniqueness for a single  
> > database.
> 
> So, how can two databases, not currently talking to one another,
> guarantee that their GUIDs don't collide? using a large randomly
> generated name space only reduces the chances of collision, it doesn't
> actually guarantee it.
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
> 
>                http://www.postgresql.org/docs/faq
> 



---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux