Hector Villarreal and Claude Opus 5.5
ef8ac5e6db
#1456 : GROUPBY refuses oversized subtotals before building them, without recursion
...
Addresses CodeRabbit review on #3221 , "Check the output size before
with_subtotals builds subtotal lines": the size limit was checked only
after every subtotal line existed. A row with 4000 key columns at total
depth 4000 nested with_subtotals 4000 levels deep and overflowed the
stack (the process aborted) before the late check could refuse it.
with_subtotals now works without recursion: each line gets an id for its
key prefix at every level, a stable sort by those ids keeps each group
together in first-appearance order, and one walk adds the subtotals.
The output size (with the header and total lines when present) is
checked while the groups are counted, before any subtotal line is built.
Test: groupby_subtotals_past_the_size_limit_are_refused_before_they_are_built.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-03 00:36:42 -06:00
Hector Villarreal and Claude Opus 5.5
1fd10711a5
#1456 : GROUPBY total depth 2 or more adds subtotals
...
GROUPBY's total_depth only ever added one Total line. In Excel a depth
of N adds a subtotal line for each group of the first N - 1 key columns
(after the group, or before it when the depth is negative) and labels
the last line "Grand Total"; a depth greater than the number of key
columns, or above 1 with field_relationship 1 (a flat table), is
#VALUE!. The subtotals aggregate the group's source rows, so AVERAGE and
COUNT subtotals are right too.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-11-03 00:10:34 -06:00
Brandon Thomas
59fd17ae56
Merge PR #2980
...
# Conflicts:
# docs/function-parity.md
2026-10-31 10:17:09 -04:00
Brandon Thomas
8069ad33ef
Merge PR #2979
...
# Conflicts:
# docs/function-parity.md
2026-10-31 10:17:09 -04:00
Brandon Thomas
82a78a9d21
Merge PR #2657
...
# Conflicts:
# docs/function-parity.md
2026-10-31 10:17:09 -04:00
Brandon Thomas
0db7d97f2e
Merge PR #3008
...
# Conflicts:
# docs/function-parity.md
2026-10-30 23:06:47 -04:00
Brandon Thomas
4d1233d0a2
Merge PR #3007
...
# Conflicts:
# docs/function-parity.md
2026-10-30 23:06:47 -04:00
Brandon Thomas
07c8201786
Merge PR #3006
...
# Conflicts:
# docs/function-parity.md
2026-10-30 23:06:47 -04:00
Brandon Thomas
31d5cc5b41
Merge PR #3003
...
# Conflicts:
# crates/functions/src/stat/tests.rs
# docs/function-parity.md
2026-10-30 23:06:47 -04:00
Brandon Thomas
c0fcc7de16
Merge PR #3002
...
# Conflicts:
# docs/function-parity.md
2026-10-30 23:06:47 -04:00
Brandon Thomas
5390e230d8
Merge PR #3001
...
# Conflicts:
# crates/functions/src/stat/tests.rs
# docs/function-parity.md
2026-10-30 23:06:46 -04:00
Brandon Thomas
c9eb797d8b
Merge PR #3000
...
# Conflicts:
# crates/functions/src/stat/tests.rs
# docs/function-parity.md
2026-10-30 23:06:46 -04:00
Brandon Thomas
5441691ca3
Merge PR #2999
...
# Conflicts:
# crates/functions/src/stat/tests.rs
# docs/function-parity.md
2026-10-30 23:04:26 -04:00
Brandon Thomas
d3f54debd9
Merge PR #2998
...
# Conflicts:
# docs/function-parity.md
2026-10-30 23:04:10 -04:00
Brandon Thomas
64ea0cb69c
Merge PR #2997
...
# Conflicts:
# crates/functions/src/text.rs
# docs/function-parity.md
2026-10-30 23:04:01 -04:00
Brandon Thomas
f887ecf1cf
Merge PR #2996
...
# Conflicts:
# docs/function-parity.md
2026-10-30 23:03:41 -04:00
Brandon Thomas
ae598a74fe
Merge PR #2995
...
# Conflicts:
# docs/function-parity.md
2026-10-30 23:03:41 -04:00
Brandon Thomas
bc0fffbe97
Merge PR #2994
...
# Conflicts:
# docs/function-parity.md
2026-10-30 23:03:40 -04:00
Brandon Thomas
1ebef5a694
Merge PR #2992
...
# Conflicts:
# docs/function-parity.md
2026-10-30 23:03:39 -04:00
Brandon Thomas
f812c53814
Merge PR #2991
...
# Conflicts:
# docs/function-parity.md
2026-10-30 23:03:38 -04:00
Brandon Thomas
b775b3ce32
Merge PR #2990
...
# Conflicts:
# docs/function-parity.md
2026-10-30 23:03:38 -04:00
Harrison Booth
006b7962bd
Preserve F distribution tail accuracy
2026-10-30 21:14:19 -05:00
Harrison Booth
7ea3a4c2c3
Merge upstream main into harmonic mean branch
2026-10-30 20:59:56 -05:00
Harrison Booth
cae0c9abdb
Merge main into function updates
2026-10-30 20:59:41 -05:00
Harrison Booth
ed81d7e34e
Merge upstream main into binomial distribution branch
2026-10-30 20:59:39 -05:00
Harrison Booth
8f7dff0d04
Merge main into function updates
2026-10-30 20:59:31 -05:00
Harrison Booth
7b7e734524
Merge main into function updates
2026-10-30 20:59:20 -05:00
Harrison Booth
6d5ab57f84
Merge upstream main into Weibull distribution branch
2026-10-30 20:59:18 -05:00
Harrison Booth
a04629576d
Merge main into function updates
2026-10-30 20:59:12 -05:00
Harrison Booth
3174020a70
Merge main into function updates
2026-10-30 20:59:02 -05:00
Harrison Booth
781149a593
Merge main into function updates
2026-10-30 20:58:53 -05:00
Harrison Booth
322298b202
Merge upstream main into gamma distribution branch
2026-10-30 20:58:48 -05:00
Harrison Booth
11d6ff1b79
Merge main into function updates
2026-10-30 20:58:38 -05:00
Harrison Booth
eefa7c4a54
Merge main into function updates
2026-10-30 20:58:24 -05:00
Harrison Booth
45939a8a41
Merge remote-tracking branch 'upstream/main' into gc-build-g718x
...
# Conflicts:
# docs/function-parity.md
2026-10-30 20:56:57 -05:00
Harrison Booth
70da8bb3ae
Cover strict upper tail in F inverse
2026-10-30 20:53:15 -05:00
Harrison Booth
a0da53f576
Match T DIST zero degree errors by mode
2026-10-30 20:53:00 -05:00
Harrison Booth
ca44a5d68f
Avoid overflow in t density normalization
2026-10-30 20:52:05 -05:00
Harrison Booth
3b61d660e9
Return NUM for invalid T distribution degrees
2026-10-30 20:51:47 -05:00
Harrison Booth
cca8a58bfa
Stabilize F distribution CDF at extreme degrees
2026-10-30 20:51:07 -05:00
Harrison Booth
d3cd393dba
G719: return NA for empty harmonic mean input
2026-10-30 20:25:09 -05:00
Harrison Booth
8985685833
G718: match beta density endpoint errors
2026-10-30 20:24:21 -05:00
Harrison Booth
962a5df841
G717: cap binomial trial counts
2026-10-30 20:23:32 -05:00
Harrison Booth
fea4c03ca2
G709: use stable tail at F median
2026-10-30 20:18:56 -05:00
Harrison Booth
1d9096e5ec
G709: stabilize F upper tail at extreme degrees
2026-10-30 20:05:47 -05:00
Harrison Booth
8e740d97e1
G707: stabilize decimal boundary cases
2026-10-30 19:58:17 -05:00
Harrison Booth
a9bacdca4c
G711: keep T.DIST validation isolated
2026-10-30 19:56:36 -05:00
Harrison Booth
6aa2cb8223
G709: invert upper F probabilities through complementary tail
2026-10-30 19:49:32 -05:00
Harrison Booth
83e6408b71
G707: align signed output boundary regression
2026-10-30 19:47:30 -05:00
Harrison Booth
1b1224c67a
G713: simplify zero-shape boundary
2026-10-30 19:42:50 -05:00