Re: Feature request for postgresSQL - Mailing list pgsql-general

From Bruce Momjian
Subject Re: Feature request for postgresSQL
Date
Msg-id 200303171637.h2HGbXp05553@candle.pha.pa.us
Whole thread Raw
Responses Re: Feature request for postgresSQL  (Joe Conway <mail@joeconway.com>)
List pgsql-general
I am CC'ing the general list with this feature request.

You could easily write a new data type like those in /contrib for this
functionality.  You are the first to ask for this feature.

---------------------------------------------------------------------------

Tim Hawkins wrote:
> I'm not sure this the correct mechanism for requesting a feature.
>
>
>
> I would like to see the introduction of a GUID datatype which stores a
> standard 16byte DCE UUID, plus a function for creating UUID's for
> initialisation.
>
>
>
> We use GUID's exclusively instead of sequences in all of our system
> implementations as they allow records to be moved freely between
> database servers,
>
> Don't not suffer from loss of sequence position, and can be generated
> without any need for each process to be critically locked.  We currently
> have to simulate
>
> Them using an application function and a 32 char field on databases like
> postgreSQL that do not support them directly.
>
>
>
> Support for this datatype would greatly assist those of us moving from
> SQL Server, and add a valuable function to postgreSQL itself.
>
>
>
> >From the sql server 2000 docs
>
>
>
> Creates a unique value of type uniqueidentifier.
>
>
> Syntax
>
>
> NEWID ( )
>
>
> Return Types
>
>
> uniqueidentifier
>
>
> Examples
>
>
> A. Use the NEWID function with a variable
>
>
> This example uses NEWID to assign a value to a variable declared as the
> uniqueidentifier data type. The value of the uniqueidentifier data type
> variable is printed before the value is tested.
>
> -- Creating a local variable with DECLARE/SET syntax.
> DECLARE @myid uniqueidentifier
> SET @myid = NEWID()
> PRINT 'Value of @myid is: '+ CONVERT(varchar(255), @myid)
>
> Here is the result set:
>
> Value of @myid is: 6F9619FF-8B86-D011-B42D-00C04FC964FF
>
>
>
> Note  The value returned by NEWID is different for each computer. This
> number is shown only for illustration.
>
>
> B. Use NEWID in a CREATE TABLE statement
>
>
> This example creates cust table with a uniqueidentifier data type, and
> uses NEWID to fill the table with a default value. In assigning the
> default value of NEWID(), each new and existing row has a unique value
> for the cust_id column.
>
> -- Creating a table using NEWID for uniqueidentifier data type.
> CREATE TABLE cust
> (
>  cust_id uniqueidentifier NOT NULL
>    DEFAULT newid(),
>  company varchar(30) NOT NULL,
>  contact_name varchar(60) NOT NULL,
>  address varchar(30) NOT NULL,
>  city varchar(30) NOT NULL,
>  state_province varchar(10) NULL,
>  postal_code varchar(10) NOT NULL,
>  country varchar(20) NOT NULL,
>  telephone varchar(15) NOT NULL,
>  fax varchar(15) NULL
> )
> GO
> -- Inserting data into cust table.
> INSERT cust
> (cust_id, company, contact_name, address, city, state_province,
>  postal_code, country, telephone, fax)
> VALUES
> (newid(), 'Wartian Herkku', 'Pirkko Koskitalo', 'Torikatu 38', 'Oulu',
> NULL,
>  '90110', 'Finland', '981-443655', '981-443655')
> INSERT cust
> (cust_id, company, contact_name, address, city, state_province,
> postal_code, country, telephone, fax)
> VALUES
> (newid(), 'Wellington Importadora', 'Paula Parente', 'Rua do Mercado,
> 12', 'Resende', 'SP',
>  '08737-363', 'Brazil', '(14) 555-8122', '')
> INSERT cust
> (cust_id, company, contact_name, address, city, state_province,
>  postal_code, country, telephone, fax)
> VALUES
> (newid(), 'Cactus Comidas para Ilevar', 'Patricio Simpson', 'Cerrito
> 333', 'Buenos Aires', NULL,
>  '1010', 'Argentina', '(1) 135-5555', '(1) 135-4892')
> INSERT cust
> (cust_id, company, contact_name, address, city, state_province,
>  postal_code, country, telephone, fax)
> VALUES
> (newid(), 'Ernst Handel', 'Roland Mendel', 'Kirchgasse 6', 'Graz', NULL,
>  '8010', 'Austria', '7675-3425', '7675-3426')
> INSERT cust
> (cust_id, company, contact_name, address, city, state_province,
>  postal_code, country, telephone, fax)
> VALUES
> (newid(), 'Maison Dewey', 'Catherine Dewey', 'Rue Joseph-Bens 532',
> 'Bruxelles', NULL,
>  'B-1180', 'Belgium', '(02) 201 24 67', '(02) 201 24 68')
> GO
>
> C. Use uniqueidentifier and variable assignment
>
>
> This example declares a local variable called @myid as a variable of
> uniqueidentifier data type. Then, the variable is assigned a value using
> the SET statement.
>
> DECLARE @myid uniqueidentifier
> SET @myid = 'A972C577-DFB0-064E-1189-0154C99310DAAC12'
> GO
>
>
>
>
>
>
>
>
>
>
>

[ image/gif is not supported, skipping... ]

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-general by date:

Previous
From: Dmitry Tkach
Date:
Subject: Re: newbie question
Next
From: Oleg Lebedev
Date:
Subject: Change column type