pi-lens
Version:
Real-time code feedback for pi — LSP, linters, formatters, type-checking, structural analysis & booboo
47 lines (35 loc) • 813 B
YAML
# ABAP DELETE Without WHERE
# Detects DELETE statements without WHERE in ABAP
id: delete-where
name: DELETE FROM Should Have WHERE Clause
severity: error
category: reliability
defect_class: correctness
inline_tier: blocking
language: abap
message: "DELETE FROM statement should have a WHERE clause"
description: |
DELETE FROM without WHERE deletes ALL rows. Almost always a bug.
✅ FIX: Add WHERE clause
```abap
DELETE FROM employees WHERE id = lv_id. " GOOD
```
query: |
(delete_statement
(delete) @DELETE
(from_clause)
(where_clause)? @WHERE)
metavars:
- DELETE
- WHERE
post_filter: missing_where
tags:
- reliability
- abap
- data-loss
examples:
bad: |
DELETE FROM employees. " BAD
good: |
DELETE FROM employees WHERE id = 123. " GOOD
has_fix: false