Re: Proposal: is_castable

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Michał Wadas <michalwadas(at)gmail(dot)com>
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Proposal: is_castable
Date: 2020-04-03 14:19:20
Message-ID: 23154.1585923560@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

=?UTF-8?Q?Micha=C5=82_Wadas?= <michalwadas(at)gmail(dot)com> writes:
> Currently there is no way to check if CAST will succeed.
> Therefore I propose adding new function: is_castable

> SELECT is_castable('foo' as time) // false

What would you actually do with it?

> Similar features are implemented in:
> - SQL Server (as TRY_CONVERT)
> - Oracle (as CONVERT([val] DEFAULT [expr] ON CONVERSION ERROR)

Somehow, I don't think those have the semantics of what you suggest here.

I suspect you are imagining that you could write something like

CASE WHEN is_castable(x as y) THEN cast(x as y) ELSE ...

but that will not work. The THEN condition has to pass parse analysis
whether or not execution will ever reach it.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2020-04-03 14:19:21 where should I stick that backup?
Previous Message Amit Kapila 2020-04-03 14:06:26 Re: WAL usage calculation patch