MP076WARNINGFree

warn-xid-consuming-retry

What It Detects

SAVEPOINT creates subtransactions that consume XIDs and accelerate wraparound risk.

Why It's Dangerous

Each SAVEPOINT allocates a new transaction ID (XID). In retry loops, every SAVEPOINT/ROLLBACK TO consumes another XID. On high-throughput systems, subtransaction XID consumption can push the database toward XID wraparound.

Bad Example

SAVEPOINT my_savepoint;

Good Example

-- Use separate transactions instead of subtransactions
-- Or retry the entire transaction, not a subtransaction

Configuration

Disable this rule:

# .migrationpilotrc.yml
rules:
  MP076: false

Or change its severity:

# .migrationpilotrc.yml
rules:
  MP076:
    severity: warning