Bandit B608 flagged f-string SQL construction in the INSERT INTO ... SELECT
statement in a5_005_rebaseline_plan_phases.py. The f-strings interpolated the
module-level constant _ALL_DATA_COLUMNS into a raw SQL statement, which Bandit
classifies as a potential SQL injection risk (even though the constant is
hardcoded and safe at runtime).
Replace the two f-string lines:
f"INSERT INTO _v3_plans_new ({_ALL_DATA_COLUMNS}) "
f"SELECT {_ALL_DATA_COLUMNS} FROM v3_plans"
with plain string concatenation:
"INSERT INTO _v3_plans_new (" + _ALL_DATA_COLUMNS + ") "
"SELECT " + _ALL_DATA_COLUMNS + " FROM v3_plans"
This eliminates the B608 finding without changing migration behaviour, and
unblocks the planned tightening of the bandit severity gate from HIGH to MEDIUM
(tracked in issue #9945).
ISSUES CLOSED: #10777