Can you check in SQL if a fields can be encoded using specified charset

Lists: pgsql-general
From: Paul Taylor <paul_t100(at)fastmail(dot)fm>
To: pgsql-general(at)postgresql(dot)org
Subject: Can you check in SQL if a fields can be encoded using specified charset
Date: 2010-11-12 15:27:41
Message-ID: 4CDD5CED.9020408@fastmail.fm
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-general

Is there a function that can say whether a textvalue can be encoded in a
particular charset

i.e.

SELECT FIELD1 FROM TABLE1 WHERE ENCODE_AS_IS08859(FIELD1)=true

thanks Paul


From: Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
To: paul_t100(at)fastmail(dot)fm
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Can you check in SQL if a fields can be encoded using specified charset
Date: 2010-11-17 20:55:49
Message-ID: m2vd3vpt4a.fsf@2ndQuadrant.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-general

Paul Taylor <paul_t100(at)fastmail(dot)fm> writes:

> Is there a function that can say whether a textvalue can be encoded in a
> particular charset

See convert() and friends here:

http://www.postgresql.org/docs/9.0/interactive/functions-string.html#FUNCTIONS-STRING-OTHER

That will issue an error when the text can't be converted, but you could
have a plpgsql function catching the exception for you and returning
false. Won't be very fast, but will do the job.

Regards,
--
Dimitri Fontaine
http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support