Thread: UUID generation functions
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
>>> 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
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
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.
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
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
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
>> 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.
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
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.