Alternate input for user defined data type

Started by Aram Fingalover 12 years ago2 messagesgeneral
Jump to latest
#1Aram Fingal
fingal@multifactorial.com

I want to create a user defined data type but have flexible input just like, for example, the boolean data type where TRUE can be entered as any of (TRUE, true, T, t, YES, yes, Y, y, 1...) and it will be interpreted as the same thing.

So suppose I have days of the week:

CREATE TYPE days_of_week AS ENUM ('Su','M','Tu','W','Th','F','Sa');

Except that I want 'MON', 'Mon', 'mon' and 'monday' all to be interpreted as 'M' in the data type. What is the best way to do this.? Is that what input_function is for in the CREATE TYPE command? Do I need to create a trigger?

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

#2Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Aram Fingal (#1)
Re: Alternate input for user defined data type

Aram Fingal wrote:

I want to create a user defined data type but have flexible input just like, for example, the boolean
data type where TRUE can be entered as any of (TRUE, true, T, t, YES, yes, Y, y, 1...) and it will be
interpreted as the same thing.

So suppose I have days of the week:

CREATE TYPE days_of_week AS ENUM ('Su','M','Tu','W','Th','F','Sa');

Except that I want 'MON', 'Mon', 'mon' and 'monday' all to be interpreted as 'M' in the data type.
What is the best way to do this.? Is that what input_function is for in the CREATE TYPE command? Do I
need to create a trigger?

Yes, the type input function converts the string representation to the internal
representation, so that's where you'd implement that in a user defined data type.

Yours,
Laurenz Albe

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general