RoutineAssertionException
Exception thrown when an assertion inside a PL/pgSQL routine turns out to be false.
INTO STRICT states that the query matches exactly one row, and ASSERT states its condition holds. A run that finds otherwise has falsified something the routine claimed, which makes this a defect in the database code rather than an outcome of the call - the same reading that has fetch*Strict finding no row raise InvalidOperationException with INCORRECT_RESULT_SIZE instead of returning null. This is that failure one level down, asserted in PL/pgSQL rather than in Kotlin.
A routine saying no on purpose is RoutineRaiseException and is deliberately a different type.
Parameters
The SQL state code returned by the database.
The original error message from the database server.
Constructors
Properties
Where this happened, innermost first, appended to by each layer as the exception unwinds. It is on the base class for the same reason queryContext is: adding to it is the only thing a frame can do to an exception without replacing it, and replacing one costs the type the caller catches on - a ConstraintViolationException restated as something else stops being the failure a retry looks for. A mapper walking a nested composite appends the attribute it was on, a transaction plan the step and parameter it was resolving. Rendered reversed, outermost first, so PATH: step 1 -> parameter 'name' -> map #1 reads from the plan down to the lambda.
The context of the query that resulted in this exception, if applicable.
Which assertion failed.
The raw error message received from the database, if applicable.