Commit 3f4f83c
fix(query-engine): MultipleSum weights samples by 1 for count sub_type (#717)
* fix(query-engine): MultipleSum weights samples by 1 for count sub_type
MultipleSumAccumulatorUpdater always summed the raw sample value,
so an ingested count precompute held Σvalue instead of Σ1 whenever
aggregation_sub_type=="count". Mirror the CountMinSketch fix: extract
a shared, strict sub_type-to-weighting helper and use it for both.
Fixes #503
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RzTeeyqi31cRJ1BkMFWWRx
* fix(planner,query-engine): propagate MultipleSum's strict subtype contract
#503 made MultipleSum reject an empty/invalid aggregation_sub_type, but
two producers/validators of MultipleSum configs weren't updated to match
(roborev review #197):
- candidate_gen.rs derived "" for (Sum, MultipleSum) candidates instead
of "sum", so every optimizer-selected MultipleSum candidate for a Sum
statistic would fail to ingest.
- engine startup validation only ran create_accumulator_updater over
CountMinSketch/CountMinSketchWithHeap configs, so an invalid MultipleSum
subtype would pass startup and fail lazily per-batch instead of failing
fast.
Deferred: capability_matching.rs's Sum/Count candidate lists aren't
subtype-aware for MultipleSum either, but neither the streaming planner
nor the optimizer ever generates a MultipleSum+"count" config today
(Statistic::Count routes to CountMinSketch/CountMinSketchWithHeap only),
so this is unreachable outside a hand-authored config -- same category
as MultipleSubpopulation, which #503 already scoped out.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RzTeeyqi31cRJ1BkMFWWRx
---------
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>1 parent 0b5309c commit 3f4f83c
4 files changed
Lines changed: 272 additions & 26 deletions
File tree
- asap-planner-rs/src/optimizer
- asap-query-engine/src/precompute_engine
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
239 | 239 | | |
240 | 240 | | |
241 | 241 | | |
242 | | - | |
| 242 | + | |
243 | 243 | | |
244 | 244 | | |
245 | 245 | | |
| |||
363 | 363 | | |
364 | 364 | | |
365 | 365 | | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
366 | 387 | | |
367 | 388 | | |
368 | 389 | | |
| |||
Lines changed: 135 additions & 21 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
461 | 461 | | |
462 | 462 | | |
463 | 463 | | |
| 464 | + | |
464 | 465 | | |
465 | 466 | | |
466 | 467 | | |
467 | | - | |
| 468 | + | |
468 | 469 | | |
469 | 470 | | |
| 471 | + | |
470 | 472 | | |
471 | 473 | | |
472 | 474 | | |
473 | 475 | | |
474 | | - | |
475 | | - | |
476 | | - | |
477 | | - | |
478 | | - | |
479 | | - | |
480 | 476 | | |
481 | 477 | | |
482 | 478 | | |
| |||
486 | 482 | | |
487 | 483 | | |
488 | 484 | | |
489 | | - | |
| 485 | + | |
| 486 | + | |
490 | 487 | | |
491 | 488 | | |
492 | 489 | | |
| |||
845 | 842 | | |
846 | 843 | | |
847 | 844 | | |
848 | | - | |
| 845 | + | |
| 846 | + | |
849 | 847 | | |
850 | | - | |
851 | | - | |
852 | | - | |
853 | | - | |
854 | | - | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
855 | 851 | | |
856 | 852 | | |
857 | 853 | | |
858 | 854 | | |
859 | 855 | | |
860 | 856 | | |
861 | | - | |
| 857 | + | |
862 | 858 | | |
863 | 859 | | |
864 | 860 | | |
| |||
948 | 944 | | |
949 | 945 | | |
950 | 946 | | |
951 | | - | |
| 947 | + | |
952 | 948 | | |
953 | 949 | | |
954 | 950 | | |
| |||
969 | 965 | | |
970 | 966 | | |
971 | 967 | | |
972 | | - | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
973 | 972 | | |
974 | 973 | | |
975 | 974 | | |
| |||
983 | 982 | | |
984 | 983 | | |
985 | 984 | | |
986 | | - | |
| 985 | + | |
987 | 986 | | |
988 | 987 | | |
989 | 988 | | |
| |||
1017 | 1016 | | |
1018 | 1017 | | |
1019 | 1018 | | |
| 1019 | + | |
1020 | 1020 | | |
1021 | 1021 | | |
1022 | 1022 | | |
| |||
1066 | 1066 | | |
1067 | 1067 | | |
1068 | 1068 | | |
1069 | | - | |
| 1069 | + | |
1070 | 1070 | | |
1071 | 1071 | | |
1072 | 1072 | | |
| |||
1137 | 1137 | | |
1138 | 1138 | | |
1139 | 1139 | | |
1140 | | - | |
| 1140 | + | |
1141 | 1141 | | |
1142 | 1142 | | |
1143 | 1143 | | |
| |||
1157 | 1157 | | |
1158 | 1158 | | |
1159 | 1159 | | |
1160 | | - | |
| 1160 | + | |
1161 | 1161 | | |
1162 | 1162 | | |
1163 | 1163 | | |
| |||
1615 | 1615 | | |
1616 | 1616 | | |
1617 | 1617 | | |
| 1618 | + | |
| 1619 | + | |
| 1620 | + | |
| 1621 | + | |
| 1622 | + | |
| 1623 | + | |
| 1624 | + | |
| 1625 | + | |
| 1626 | + | |
| 1627 | + | |
| 1628 | + | |
| 1629 | + | |
| 1630 | + | |
| 1631 | + | |
| 1632 | + | |
| 1633 | + | |
| 1634 | + | |
| 1635 | + | |
| 1636 | + | |
| 1637 | + | |
| 1638 | + | |
| 1639 | + | |
| 1640 | + | |
| 1641 | + | |
| 1642 | + | |
| 1643 | + | |
| 1644 | + | |
| 1645 | + | |
| 1646 | + | |
| 1647 | + | |
| 1648 | + | |
| 1649 | + | |
| 1650 | + | |
| 1651 | + | |
| 1652 | + | |
| 1653 | + | |
| 1654 | + | |
| 1655 | + | |
| 1656 | + | |
| 1657 | + | |
| 1658 | + | |
| 1659 | + | |
| 1660 | + | |
| 1661 | + | |
| 1662 | + | |
| 1663 | + | |
| 1664 | + | |
| 1665 | + | |
| 1666 | + | |
| 1667 | + | |
| 1668 | + | |
| 1669 | + | |
| 1670 | + | |
| 1671 | + | |
| 1672 | + | |
| 1673 | + | |
| 1674 | + | |
| 1675 | + | |
| 1676 | + | |
| 1677 | + | |
| 1678 | + | |
| 1679 | + | |
| 1680 | + | |
| 1681 | + | |
| 1682 | + | |
| 1683 | + | |
| 1684 | + | |
| 1685 | + | |
| 1686 | + | |
| 1687 | + | |
| 1688 | + | |
| 1689 | + | |
| 1690 | + | |
| 1691 | + | |
| 1692 | + | |
| 1693 | + | |
| 1694 | + | |
| 1695 | + | |
| 1696 | + | |
| 1697 | + | |
| 1698 | + | |
| 1699 | + | |
| 1700 | + | |
| 1701 | + | |
| 1702 | + | |
| 1703 | + | |
| 1704 | + | |
| 1705 | + | |
| 1706 | + | |
| 1707 | + | |
| 1708 | + | |
| 1709 | + | |
| 1710 | + | |
| 1711 | + | |
| 1712 | + | |
| 1713 | + | |
| 1714 | + | |
| 1715 | + | |
| 1716 | + | |
| 1717 | + | |
| 1718 | + | |
| 1719 | + | |
| 1720 | + | |
| 1721 | + | |
| 1722 | + | |
| 1723 | + | |
| 1724 | + | |
| 1725 | + | |
| 1726 | + | |
| 1727 | + | |
| 1728 | + | |
| 1729 | + | |
| 1730 | + | |
| 1731 | + | |
1618 | 1732 | | |
1619 | 1733 | | |
1620 | 1734 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
258 | 258 | | |
259 | 259 | | |
260 | 260 | | |
261 | | - | |
262 | | - | |
263 | | - | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
264 | 265 | | |
265 | 266 | | |
266 | 267 | | |
| |||
269 | 270 | | |
270 | 271 | | |
271 | 272 | | |
272 | | - | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
273 | 276 | | |
274 | 277 | | |
275 | 278 | | |
| |||
362 | 365 | | |
363 | 366 | | |
364 | 367 | | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
365 | 411 | | |
366 | 412 | | |
367 | 413 | | |
| |||
0 commit comments