Three sites replace a shaper failure instead of surfacing it. Verified on a89b56ddb.
Sites
| Site |
Behaviour |
pgwire/handler/routing/calvin_response.rs:74 |
&& let Ok(ShapeOutcome::Rows(shaped)) = … — an Err falls through to the command-tag/affected-count path, so a RETURNING payload that failed to shape reports a successful statement with no rows |
native/dispatch/conversion.rs:229 |
same && let Ok(..) swallow; the response degrades to a count-only result |
pgwire/handler/plan.rs:207-210 |
an encode_field failure logs and answers an ERROR command tag, replacing the error |
Should
- Calvin pgwire: raise the error through
shape_error_to_pg (the routed-path helper) with the error's own SQLSTATE.
- Native apply: raise through
shape_error_to_native.
plan.rs: ToSqlText for &str is total in pgwire 0.41, so the encode failure cannot happen — remove the dead fallback instead of keeping a branch that reads as a swallow.
Evidence
- The two
let Ok(ShapeOutcome) sites are the only shaper-error swallows left after the routed-site fix (repo-wide grep).
- A local fix with the surrounding suites green exists and will be proposed with
Closes to this issue.
Three sites replace a shaper failure instead of surfacing it. Verified on
a89b56ddb.Sites
pgwire/handler/routing/calvin_response.rs:74&& let Ok(ShapeOutcome::Rows(shaped)) = …— anErrfalls through to the command-tag/affected-count path, so a RETURNING payload that failed to shape reports a successful statement with no rowsnative/dispatch/conversion.rs:229&& let Ok(..)swallow; the response degrades to a count-only resultpgwire/handler/plan.rs:207-210encode_fieldfailure logs and answers anERRORcommand tag, replacing the errorShould
shape_error_to_pg(the routed-path helper) with the error's own SQLSTATE.shape_error_to_native.plan.rs:ToSqlText for &stris total in pgwire 0.41, so the encode failure cannot happen — remove the dead fallback instead of keeping a branch that reads as a swallow.Evidence
let Ok(ShapeOutcome)sites are the only shaper-error swallows left after the routed-site fix (repo-wide grep).Closesto this issue.