Why this change is needed:
Unit test mock was rejecting dict parameters, but real PostgreSQLDB.execute()
accepts data as dict[str, Any]. This caused unit tests to fail after fixing
the actual migration code to pass dict instead of unpacked positional args.
How it solves it:
- Changed mock_execute signature from (sql, *args) to (sql, data=None)
- Accept dict parameter like real execute() does
- Mock now matches actual PostgreSQLDB.execute() behavior
Impact:
- Fixes Vector Storage Migration unit tests
- Mock now correctly validates migration code
Testing:
- Unit tests will verify this fix