Re: CAST(... ON DEFAULT) - WIP build on top of Error-Safe User Functions
Vik Fearing <vik@postgresfriends.org>
From: Vik Fearing <vik@postgresfriends.org>
To: jian he <jian.universality@gmail.com>
Cc: Corey Huinker <corey.huinker@gmail.com>,
Isaac Morland <isaac.morland@gmail.com>, pgsql-hackers@lists.postgresql.org
Date: 2025-07-22T12:45:42Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Make cast functions to type money error safe
- b36b95640487 19 (unreleased) landed
-
Make cast function from circle to polygon error safe
- 26f9012beecf 19 (unreleased) landed
-
Make geometry cast functions error safe
- 45cdaf3665be 19 (unreleased) landed
-
Make cast functions from jsonb error safe
- 10e4d8aaf46f 19 (unreleased) landed
-
Make many cast functions error safe
- e2f289e5b9b8 19 (unreleased) landed
-
Add SQL/JSON query functions
- 6185c9737cf4 17.0 cited
-
Add soft error handling to some expression nodes
- aaaf9449ec6b 17.0 cited
On 22/07/2025 14:26, Vik Fearing wrote: > The <cast error behavior> is: > > <cast error behavior> ::= > ERROR > | NULL > | DEFAULT <value expression> > > but I am planning on removing the NULL variant in favor of having the > <value expression> be a <contextually typed value specification>. So > it would be either ERROR ON CONVERSION ERROR (postgres's current > behavior), or DEFAULT NULL ON CONVERSION ERROR. Sorry, I meant <implicitly typed value specification>. The point being that CAST(ARRAY['1', '2', 'three'] AS INTEGER ARRAY DEFAULT NULL ON CONVERSION ERROR) will give you (CAST NULL AS INTEGER ARRAY) and *not* ARRAY[1, 2, NULL]. -- Vik Fearing