IMMUTABLE function to cast enum to/from text? - Mailing list pgsql-general

From Philip Semanchuk
Subject IMMUTABLE function to cast enum to/from text?
Date
Msg-id EBFE2A74-B421-4494-8FCC-9F072F128188@americanefficient.com
Whole thread Raw
Responses Re: IMMUTABLE function to cast enum to/from text?  (Joe Conway <mail@joeconway.com>)
List pgsql-general
Hi all,
I know that Postgres' enum_in()/enum_out() functions have a volatility class of STABLE, and STABLE is required because
enumelements can be renamed. We have an enum in our database used in a number of custom functions, all of which require
castingthe enum to/from text. Since enum_in() and enum_out() are STABLE, that means our functions that rely on those
castsmust also be STABLE, and as a result we can't use them in generated columns.  

I have seen conversations that suggest creating a custom IMMUTABLE function to perform the cast, but I can't figure out
howto do that except with a CASE statement that enumerates every possible value. Is there a more elegant approach? 

Thanks
Philip


pgsql-general by date:

Previous
From: Karsten Hilbert
Date:
Subject: Aw: Re: Q: documentation improvement re collation version mismatch
Next
From: Joe Conway
Date:
Subject: Re: IMMUTABLE function to cast enum to/from text?