On Wed, Apr 1, 2026 at 3:23 AM jian he <[email protected]> wrote:
> 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) > Both of these are doomed when we hit the default, so I don't see why we should make any accommodation for them. > 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 > This one is trickier, but I'd be willing to reject composite inputs in v19 and solve it in v20. > 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. > We can always remove redundant tests later.
