From: | Andrew Dunstan <andrew(at)dunslane(dot)net> |
---|---|
To: | "ldh(at)laurent-hasson(dot)com" <ldh(at)laurent-hasson(dot)com>, "pgsql-performance(at)postgresql(dot)org" <pgsql-performance(at)postgresql(dot)org> |
Subject: | Re: Better performance no-throw conversion? |
Date: | 2021-09-08 17:31:01 |
Message-ID: | 7f9b14e3-02e3-4c88-b187-a2f8595de6f6@dunslane.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
On 9/8/21 1:17 PM, ldh(at)laurent-hasson(dot)com wrote:
>
> Hello,
>
>
>
> Some databases such as SQLServer (try_cast) or BigQuery (safe.cast)
> offer not-throw conversion. In general, these tend to perform better
> than custom UDFs that catch exceptions and are also simpler to use.
> For example, in Postgres, I have a function that does the following:
>
>
>
> CREATE OR REPLACE FUNCTION toFloat(str varchar, val real)
>
> RETURNS real AS $$
>
> BEGIN
>
> RETURN case when str is null then val else str::real end;
>
> EXCEPTION WHEN OTHERS THEN
>
> RETURN val;
>
> END;
>
> $$ LANGUAGE plpgsql COST 1 IMMUTABLE;
>
>
>
> I couldn’t find a reference to such capabilities in Postgres and
> wondered if I missed it, and if not, is there any plan to add such a
> feature?
>
>
>
Not that I know of, but you could probably do this fairly simply in C.
cheers
andrew
--
Andrew Dunstan
EDB: https://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2021-09-08 17:32:58 | Re: Better performance no-throw conversion? |
Previous Message | ldh@laurent-hasson.com | 2021-09-08 17:17:35 | Better performance no-throw conversion? |