atharvalade opened a new pull request, #3198: URL: https://github.com/apache/iggy/pull/3198
## Which issue does this PR close? Closes #3173 ## Rationale Row-processing logic lived inline in `poll_tables`, making it impossible to reuse across future parallel/chunked polling paths without duplication. ## What changed? The column-iteration, value-extraction, JSON-payload construction, and `ProducedMessage` assembly were tightly coupled inside `poll_tables`'s inner loop (~80 lines). Any new polling variant (parallel, chunked) would need to copy-paste this block. Extracted a `process_row` method that accepts a `RowProcessingConfig` (table, tracking/pk columns, format flags) and returns a `ProcessedRow` (message + offset + pk). The `poll_tables` loop now delegates to this single-responsibility method in ~12 lines. ## Local Execution - Passed - Pre-commit hooks ran ## AI Usage 1. Opus 4.6 2. used for exploration and implementation guidance 3. Verified via cargo check, clippy -D warnings, fmt --check, all 19 unit tests passing, CI lint scripts passing 4. Yes, all code can be explained -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
