Re: CAST(... ON DEFAULT) - WIP build on top of Error-Safe User Functions

From: jian he <jian(dot)universality(at)gmail(dot)com>
To: Corey Huinker <corey(dot)huinker(at)gmail(dot)com>
Cc: Amul Sul <sulamul(at)gmail(dot)com>, Peter Eisentraut <peter(at)eisentraut(dot)org>, Kirill Reshke <reshkekirill(at)gmail(dot)com>, Vik Fearing <vik(at)postgresfriends(dot)org>, Isaac Morland <isaac(dot)morland(at)gmail(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: CAST(... ON DEFAULT) - WIP build on top of Error-Safe User Functions
Date: 2026-04-01 07:23:07
Message-ID: CACJufxGRSV3j6g7feEkfu7WuLx7ocMte8mvVEwNh7XBfnpJd-A@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

One more issue I found:
https://git.postgresql.org/cgit/postgresql.git/commit/?id=74c96699be3f53c058c8794c07952221b9625b4f
SELECT JSON_VALUE(jsonb '1234', '$' RETURNING char(2) DEFAULT '011' ON ERROR);
ERROR: value too long for type character(2)

Similarly, we can
SELECT CAST(text '1234' as char(2) DEFAULT '111111' ON conversion ERROR);
ERROR: value too long for type character(2)

Composite types respect typmod, for example:
CREATE TYPE comp AS (a char(3), b int);
SELECT CAST('(14,42)' AS comp DEFAULT '(1234,2)' ON CONVERSION ERROR); -- error

The regression tests are too large; we can order them by the cast
source type's pg_type.type category,
so we won't miss any tests.

What do you think?

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Chao Li 2026-04-01 07:30:40 Re: Reduce log level of some logical decoding messages to DEBUG1
Previous Message John Naylor 2026-04-01 07:20:47 Re: tuple radix sort