Commit f9df9cf
miranov25
fix(AliasDataFrame): Fill handling, batch optimization, and cycle detection fixes
BUG-2025-11-27-003: Fill Handling for Subframe Joins
- Add set_global_fill() / set_subframe_fill() API for configurable fill behavior
- fill_missing: Fill value for missing keys (default NaN)
- fill_nan / fill_inf / fill_invalid: Fill values for invalid data
- fill_mode: 'safe' (default) or 'direct' (fast path)
- Use pd.merge(indicator=True) to distinguish missing keys from data NaN
- Aggregated warnings: Single summary instead of per-column spam
BUG-2025-11-27-002: Restore Batch Materialization Optimization
- Restore context_override parameter in _eval_in_namespace()
- Restore results dict + single pd.concat (avoids O(n²) fragmentation)
- materialize_aliases() bypasses materialize_alias() for batch path
- Remove _batch_mode parameter (was source of regression)
BUG-2025-11-28-001: Cycle Detection and Index Column Fixes
- Fix false cycle detection for subframe aliases ('val' = 'T.val')
- Add token != alias check in select_aliases() graph builder
- Add index column materialization in batched path
- Improve cycle error messages with expressions and diagnostic hints
Performance: ~3x speedup on subframe-heavy workflows (216s → 72s on 13.5M rows)
Tests: 557 passed, 2 xpassed
Benchmarks: All pass, no regression detected1 parent 6aea3a5 commit f9df9cf
4 files changed
Lines changed: 1101 additions & 9 deletions
File tree
- UTILS/dfextensions/AliasDataFrame
- benchmarks
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2238 | 2238 | | |
2239 | 2239 | | |
2240 | 2240 | | |
2241 | | - | |
| 2241 | + | |
| 2242 | + | |
| 2243 | + | |
2242 | 2244 | | |
2243 | 2245 | | |
2244 | 2246 | | |
| |||
2254 | 2256 | | |
2255 | 2257 | | |
2256 | 2258 | | |
| 2259 | + | |
| 2260 | + | |
| 2261 | + | |
| 2262 | + | |
| 2263 | + | |
| 2264 | + | |
| 2265 | + | |
| 2266 | + | |
| 2267 | + | |
| 2268 | + | |
| 2269 | + | |
| 2270 | + | |
| 2271 | + | |
| 2272 | + | |
| 2273 | + | |
| 2274 | + | |
| 2275 | + | |
| 2276 | + | |
| 2277 | + | |
| 2278 | + | |
| 2279 | + | |
| 2280 | + | |
| 2281 | + | |
| 2282 | + | |
2257 | 2283 | | |
2258 | 2284 | | |
2259 | 2285 | | |
| |||
2498 | 2524 | | |
2499 | 2525 | | |
2500 | 2526 | | |
2501 | | - | |
2502 | | - | |
| 2527 | + | |
2503 | 2528 | | |
2504 | 2529 | | |
2505 | 2530 | | |
| |||
2592 | 2617 | | |
2593 | 2618 | | |
2594 | 2619 | | |
2595 | | - | |
2596 | | - | |
| 2620 | + | |
2597 | 2621 | | |
2598 | 2622 | | |
2599 | 2623 | | |
2600 | | - | |
2601 | | - | |
| 2624 | + | |
| 2625 | + | |
| 2626 | + | |
| 2627 | + | |
| 2628 | + | |
| 2629 | + | |
| 2630 | + | |
| 2631 | + | |
| 2632 | + | |
| 2633 | + | |
| 2634 | + | |
| 2635 | + | |
| 2636 | + | |
| 2637 | + | |
| 2638 | + | |
| 2639 | + | |
| 2640 | + | |
| 2641 | + | |
2602 | 2642 | | |
2603 | 2643 | | |
2604 | 2644 | | |
| |||
Lines changed: 9 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
9 | 16 | | |
10 | 17 | | |
11 | 18 | | |
12 | 19 | | |
13 | 20 | | |
14 | | - | |
| 21 | + | |
15 | 22 | | |
16 | 23 | | |
17 | 24 | | |
| |||
0 commit comments