Re: GUID for postgreSQL

Поиск
Список
Период
Сортировка
От Chris Browne
Тема Re: GUID for postgreSQL
Дата
Msg-id 60pst2zsuy.fsf@dba2.int.libertyrms.com
обсуждение исходный текст
Ответ на GUID for postgreSQL  ("Riaan van der Westhuizen" <riaan@huizensoft.co.za>)
Список pgsql-general
smarlowe@g2switchworks.com (Scott Marlowe) writes:
> 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.

Consult RFC 4122...

  <http://www.ietf.org/rfc/rfc4122.txt>

"Abstract

   This specification defines a Uniform Resource Name namespace for
   UUIDs (Universally Unique IDentifier), also known as GUIDs (Globally
   Unique IDentifier).  A UUID is 128 bits long, and can guarantee
   uniqueness across space and time.  UUIDs were originally used in the
   Apollo Network Computing System and later in the Open Software
   Foundation's (OSF) Distributed Computing Environment (DCE), and then
   in Microsoft Windows platforms.

   This specification is derived from the DCE specification with the
   kind permission of the OSF (now known as The Open Group).
   Information from earlier versions of the DCE specification have been
   incorporated into this document."

See also the gBorg "pgUUID" project:
  <http://gborg.postgresql.org/project/pguuid/projdisplay.php>
--
(format nil "~S@~S" "cbbrowne" "acm.org")
http://www.ntlug.org/~cbbrowne/sap.html
Rules of the Evil Overlord #78.  "I will not tell my Legions of Terror
"And he must  be taken alive!" The command will be:  ``And try to take
him alive if it is reasonably practical.''"
<http://www.eviloverlord.com/>

В списке pgsql-general по дате отправления:

Предыдущее
От: Chris Browne
Дата:
Сообщение: Re: GUID for postgreSQL
Следующее
От: Greg Stark
Дата:
Сообщение: Re: Megabytes of stats saved after every connection