release-22.1: sql: don't use the streamer for queries with mutations #81838
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Backport 1/1 commits from #81796.
/cc @cockroachdb/release
Previously, we could try to use the streamer for the queries with
mutations. The streamer requires the usage of the LeafTxn whereas
mutations expect the usage of the RootTxn. The streamer's requirement
would win, and mutations were more likely to encounter retryable errors
that are propagated back to the client.
This was an oversight, and the mutations' requirement should win. This
commit makes it so that we don't use the streamer API if we don't know
for sure that there are no mutations in the plan. We could be smarter
and allow the usage of the streamer for some queries with mutations
(when we can prove that there is no concurrency between the root and the
leaf txns), but that doesn't seem important at the moment and is left as
a TODO.
Fixes: #80823.
Release note: None
Release justification: low risk bug fix.