Michael Erickson
Michael Erickson
Added this to KV because it depends on predicate locking.
Also added to Queries because there's some optbuilder work needed to use predicate locking once available.
[read committed weekly meeting] We think we could implement this without predicate locking by using CPut to write a tombstone in regions that don't contain the row.
Here's a demonstration of the problem. With this diff applied: ``` diff --git a/pkg/sql/opt/exec/execbuilder/relational.go b/pkg/sql/opt/exec/execbuilder/relational.go index e6ecfde3c12..01a6750ef2d 100644 --- a/pkg/sql/opt/exec/execbuilder/relational.go +++ b/pkg/sql/opt/exec/execbuilder/relational.go @@ -3105,11 +3105,13 @@ func (b *Builder) buildLocking(toLock...
Initial reduction: [repro.txt](https://github.com/user-attachments/files/16434274/repro.txt) running this with: ``` ./cockroach demo --multitenant=false --set=errexit=false --no-example-database -f ~/Downloads/127814/repro.txt ```
Using that repro, this reproduces on v24.1.2 and v23.2.5, but not v23.1.21. So seems like it was a regression in v23.2. I'll remove release-blocker since this wasn't a recent regression.