Commit 373856e
authored
fix(polling_source): eliminate per-batch schema inference, fix zero-row crash (ENG-952) (#261)
* docs(specs): add ENG-952 design spec for PollingSource zero-row batch fix
* docs(specs): update ENG-952 spec — canonical-schema approach replaces Fix B
* docs(plans): add ENG-952 implementation plan
* test(polling_source): add failing regression tests for ENG-952 zero-row batch crash
* refactor(test_polling_source): remove extraneous to_config/from_config from inline test impls
Follow the established inline-class pattern used throughout the file: test
impl classes define only identity, schema, poll, fetch, and close. Also add
a descriptive failure message to the _accumulated_stream assertion so failures
self-describe rather than raising an AttributeError on the next line.
* fix(polling_source): establish canonical Arrow schema once, eliminating zero-row crash
* fix(polling_source): defer infer-once schema establishment until first non-empty batch
* docs(design_issues): add PS4 entry for ENG-952 zero-row batch schema crash
* docs(polling_source): improve _build_stream_from_df docstring and remove stale type: ignore
* fix(test_polling_source): update test_zero_row_batch_is_not_accumulated for _batches API
ITL-617 replaced _accumulated_stream with an append-only _batches list.
Zero-row batches produce empty ArrowTableStream entries in _batches, so the
assertion must count total rows across all batches rather than batch-list length.
Also rename DESIGN_ISSUES PS4 entry to PS5 to avoid collision with the
ITL-617 PS4 entry that was added to main.
---------
Co-authored-by: agent-kurodo[bot] <268466204+agent-kurodo[bot]@users.noreply.github.com>1 parent 55d0439 commit 373856e
5 files changed
Lines changed: 1052 additions & 3 deletions
File tree
- src/orcapod/core/sources
- superpowers
- plans
- specs
- tests/test_channels
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
172 | 172 | | |
173 | 173 | | |
174 | 174 | | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
175 | 193 | | |
176 | 194 | | |
177 | 195 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
258 | 258 | | |
259 | 259 | | |
260 | 260 | | |
| 261 | + | |
261 | 262 | | |
262 | 263 | | |
263 | 264 | | |
| |||
613 | 614 | | |
614 | 615 | | |
615 | 616 | | |
616 | | - | |
617 | | - | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
618 | 624 | | |
619 | 625 | | |
620 | 626 | | |
| |||
628 | 634 | | |
629 | 635 | | |
630 | 636 | | |
631 | | - | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
632 | 673 | | |
633 | 674 | | |
634 | 675 | | |
| |||
0 commit comments