Commit f184562
committed
fix: Implement two-phase deletion to prevent partial deletion risk
- Phase 1: Evaluate all rows and collect matching keys first
- Phase 2: Delete all matching rows only if Phase 1 succeeds
- If WHERE evaluation fails on any row, no rows are deleted
- Improved error message to indicate no rows were deleted on failure
- This ensures table consistency even when WHERE clause evaluation fails
Addresses CodeRabbit review feedback about partial deletion risk leaving
table in inconsistent state.1 parent ef26ec3 commit f184562
1 file changed
Lines changed: 24 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
176 | 176 | | |
177 | 177 | | |
178 | 178 | | |
179 | | - | |
180 | 179 | | |
181 | 180 | | |
182 | 181 | | |
183 | 182 | | |
184 | 183 | | |
185 | 184 | | |
186 | | - | |
| 185 | + | |
| 186 | + | |
187 | 187 | | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
188 | 191 | | |
189 | 192 | | |
190 | 193 | | |
191 | 194 | | |
192 | | - | |
193 | | - | |
| 195 | + | |
194 | 196 | | |
195 | 197 | | |
196 | 198 | | |
197 | 199 | | |
198 | 200 | | |
199 | 201 | | |
200 | | - | |
| 202 | + | |
201 | 203 | | |
202 | 204 | | |
203 | 205 | | |
204 | 206 | | |
205 | 207 | | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
206 | 219 | | |
207 | 220 | | |
208 | 221 | | |
209 | 222 | | |
| 223 | + | |
210 | 224 | | |
211 | 225 | | |
212 | | - | |
213 | 226 | | |
214 | | - | |
215 | 227 | | |
216 | | - | |
217 | | - | |
218 | | - | |
219 | | - | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
220 | 233 | | |
221 | 234 | | |
222 | 235 | | |
| |||
0 commit comments