Re: equivalent of mysql's SET type? - Mailing list pgsql-general

From Darren Duncan
Subject Re: equivalent of mysql's SET type?
Date
Msg-id 4D76DD61.7040707@darrenduncan.net
Whole thread Raw
In response to equivalent of mysql's SET type?  (Reece Hart <reece@harts.net>)
Responses Re: equivalent of mysql's SET type?  (Reece Hart <reece@harts.net>)
List pgsql-general
Reece Hart wrote:
> I'm considering porting a MySQL database to PostgreSQL. That database uses
> MySQL's SET type. Does anyone have advice about representing this type in
> PostgreSQL?
>
> MySQL DDL excerpt:
> CREATE TABLE `transcript_variation` (
>   `transcript_variation_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
>   `transcript_stable_id` varchar(128) NOT NULL,
>    ...
>   `consequence_type`
> set('ESSENTIAL_SPLICE_SITE','STOP_GAINED','STOP_LOST','COMPLEX_INDEL','SPLICE_SITE')
> ) ENGINE=MyISAM AUTO_INCREMENT=174923212 DEFAULT CHARSET=latin1;
>
> I'm considering implementing this as a new type based on a bit vector, but I
> wonder if anyone has a more flexible general solution.

Try starting with an enum type to define the possible values:

   CREATE TYPE Consequence_Type
     AS ENUM ('ESSENTIAL_SPLICE_SITE','STOP_GAINED',
       'STOP_LOST','COMPLEX_INDEL','SPLICE_SITE');

... and then you could try using "ARRAY OF Consequence_Type" or some such.

-- Darren Duncan

pgsql-general by date:

Previous
From: Steve Atkins
Date:
Subject: Re: equivalent of mysql's SET type?
Next
From: Noah Misch
Date:
Subject: Re: 9.1 - rewrite less alter table?