Thread: UUID generation functions

UUID generation functions

From
"Hyatt, Gordon"
Date:
Sorry for the OT post, but does anyone know if there are any internal
UUID generation functions in pg?  I took a quick look at the 8.2 docs
and didn't find anything related.

I know I can spawn a call to the underlying system to get a UUID.  The
problem is that calling out to the system for this tends to lock one
into a specific O/S.  In the case of Linux, uuidgen is _usually_
available for this; on Windows, however, a custom app to call a specific
API would be necessary.

The idea I had was to call this internal UUID generation function in an
INSERT trigger to generate a unique, traceable that identifies a sample
as it traverses numerous information systems/databases.

Thanks in advance,

Gord Hyatt


Re: UUID generation functions

From
"Kevin Grittner"
Date:
>>> On Mon, Jun 2, 2008 at  1:52 PM, in message
<85AC2B55AEF4CC41A2145B60C7F88074026535@JDCMAIL4.joslin.harvard.edu>,
"Hyatt,
Gordon" <Gordon.Hyatt@joslin.harvard.edu> wrote:
> does anyone know if there are any internal
> UUID generation functions in pg?  I took a quick look at the 8.2
docs
> and didn't find anything related.

Any chance of going to 8.3?

http://www.postgresql.org/docs/8.3/interactive/datatype-uuid.html

-Kevin


Re: UUID generation functions

From
"Hyatt, Gordon"
Date:
Thanks Kevin,

Not yet - the plan is to migrate later this year or early next year.
There are a number of systems that will be upgraded at that time.

Gord


> -----Original Message-----
> From: Kevin Grittner [mailto:Kevin.Grittner@wicourts.gov]
> Sent: Monday, June 02, 2008 3:19 PM
> To: Hyatt, Gordon; pgsql-admin@postgresql.org
> Subject: Re: [ADMIN] UUID generation functions
>
> >>> On Mon, Jun 2, 2008 at  1:52 PM, in message
> <85AC2B55AEF4CC41A2145B60C7F88074026535@JDCMAIL4.joslin.harvard.edu>,
> "Hyatt,
> Gordon" <Gordon.Hyatt@joslin.harvard.edu> wrote:
> > does anyone know if there are any internal
> > UUID generation functions in pg?  I took a quick look at the 8.2
> docs
> > and didn't find anything related.
>
> Any chance of going to 8.3?
>
> http://www.postgresql.org/docs/8.3/interactive/datatype-uuid.html
>
> -Kevin


Re: UUID generation functions

From
John DeSoi
Date:
On Jun 2, 2008, at 3:19 PM, Kevin Grittner wrote:

> Any chance of going to 8.3?
>
> http://www.postgresql.org/docs/8.3/interactive/datatype-uuid.html

But 8.3 still does not generate UUIDs, only stores/compares them. From
the link above:

> PostgreSQL provides storage and comparison functions for UUIDs, but
> the core database does not include any function for generating
> UUIDs, because no single algorithm is well suited for every
> application.

For reasons mentioned by the other poster, it would be helpful if
PostgreSQL could generate them. Is there really more than 2 or 3
needed options where it would be huge code bloat to include sufficient
alternatives?

John DeSoi, Ph.D.





Re: UUID generation functions

From
"Joshua D. Drake"
Date:

On Mon, 2008-06-02 at 18:11 -0400, John DeSoi wrote:
> On Jun 2, 2008, at 3:19 PM, Kevin Grittner wrote:
>
> > Any chance of going to 8.3?
> >
> > http://www.postgresql.org/docs/8.3/interactive/datatype-uuid.html

> For reasons mentioned by the other poster, it would be helpful if
> PostgreSQL could generate them. Is there really more than 2 or 3
> needed options where it would be huge code bloat to include sufficient
> alternatives?

There has been excessive discussion on UUID generation. I would check
the archives. I know that one argument that I made is that pretty much
every language has some sort of UUID generation already, including those
we use for PL languages (excluding plpgsql).

Sincerely,

Joshua D. Drake



Re: UUID generation functions

From
"Milen A. Radev"
Date:
John DeSoi написа:
>
> On Jun 2, 2008, at 3:19 PM, Kevin Grittner wrote:
>
>> Any chance of going to 8.3?
>>
>> http://www.postgresql.org/docs/8.3/interactive/datatype-uuid.html
>
> But 8.3 still does not generate UUIDs, only stores/compares them. From
> the link above:
>
>> PostgreSQL provides storage and comparison functions for UUIDs, but
>> the core database does not include any function for generating UUIDs,
>> because no single algorithm is well suited for every application.
>
> For reasons mentioned by the other poster, it would be helpful if
> PostgreSQL could generate them. Is there really more than 2 or 3 needed
> options where it would be huge code bloat to include sufficient
> alternatives?

http://www.postgresql.org/docs/8.3/static/uuid-ossp.html


--
Milen A. Radev

Re: UUID generation functions

From
"Milen A. Radev"
Date:
Milen A. Radev написа:
> John DeSoi написа:
>>
>> On Jun 2, 2008, at 3:19 PM, Kevin Grittner wrote:
>>
>>> Any chance of going to 8.3?
>>>
>>> http://www.postgresql.org/docs/8.3/interactive/datatype-uuid.html
>>
>> But 8.3 still does not generate UUIDs, only stores/compares them. From
>> the link above:
>>
>>> PostgreSQL provides storage and comparison functions for UUIDs, but
>>> the core database does not include any function for generating UUIDs,
>>> because no single algorithm is well suited for every application.
>>
>> For reasons mentioned by the other poster, it would be helpful if
>> PostgreSQL could generate them. Is there really more than 2 or 3
>> needed options where it would be huge code bloat to include sufficient
>> alternatives?
>
> http://www.postgresql.org/docs/8.3/static/uuid-ossp.html

My bad - just realised the OP most probably needs a Windows-compatible
solution and uuid-ossp is not.


--
Milen A. Radev

Re: UUID generation functions

From
Rommel the iCeMAn
Date:
 >> But 8.3 still does not generate UUIDs, only stores/compares them

This is true, however, only last week I completed a successful pg 8.3
install and during the installation I was able to include UUID
generation functions as an option. I now have 10 functions called
uuid_something. The ones I use most begin with "uuid_generate". I can
call these functions from within my own stored procs.

Rommel the iCeMAn
Barbados, Caribbean.

Re: UUID generation functions

From
"Hyatt, Gordon"
Date:
Please see my comments in line.



> -----Original Message-----
> From: pgsql-admin-owner@postgresql.org [mailto:pgsql-admin-
> owner@postgresql.org] On Behalf Of Milen A. Radev
> Sent: Monday, June 02, 2008 6:24 PM
> To: pgsql-admin@postgresql.org
> Subject: Re: [ADMIN] UUID generation functions
>
> Milen A. Radev написа:
> > John DeSoi написа:
> >>
> >> On Jun 2, 2008, at 3:19 PM, Kevin Grittner wrote:
> >>
> >>> Any chance of going to 8.3?
> >>>
> >>> http://www.postgresql.org/docs/8.3/interactive/datatype-uuid.html
> >>
> >> But 8.3 still does not generate UUIDs, only stores/compares them. From
> >> the link above:
> >>
> >>> PostgreSQL provides storage and comparison functions for UUIDs, but
> >>> the core database does not include any function for generating UUIDs,
> >>> because no single algorithm is well suited for every application.

As far as I can see, there are really only 2 types, either time-based or random.  I guess a third "type" could be one
where2 long integers are used to "generate" the UUID. 

Would this really add that much code?  I haven't yet implemented such algorithms to know - I've simply used the
underlyingsystems services when I needed UUIDs. 

> >>
> >> For reasons mentioned by the other poster, it would be helpful if
> >> PostgreSQL could generate them. Is there really more than 2 or 3
> >> needed options where it would be huge code bloat to include sufficient
> >> alternatives?
> >
> > http://www.postgresql.org/docs/8.3/static/uuid-ossp.html
>
> My bad - just realised the OP most probably needs a Windows-compatible
> solution and uuid-ossp is not.
>


Actually, I'm developing on Windows, but deploying on Linux (both the web-server and the DB server), so a solution that
isindependent of platform is the most desirable.  I was hoping that PG would have something to generate UUIDs
internally.

If PG doesn't have the ability to generate UUIDs, I'll put the code in the web-server (tomcat) to do so.  I was hoping
tohave this functionality as close as possible to the persistence of the data (where rules of uniqueness and integrity
canbe more easily enforced). 

Gord


>
> --
> Milen A. Radev
>
>
> --
> Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-admin



Re: UUID generation functions

From
Peter Eisentraut
Date:
Am Dienstag, 3. Juni 2008 schrieb Hyatt, Gordon:
> > > http://www.postgresql.org/docs/8.3/static/uuid-ossp.html
> >
> > My bad - just realised the OP most probably needs a Windows-compatible
> > solution and uuid-ossp is not.
>
> Actually, I'm developing on Windows, but deploying on Linux (both the
> web-server and the DB server), so a solution that is independent of
> platform is the most desirable.  I was hoping that PG would have something
> to generate UUIDs internally.

It does.  Read the above link.