MCPcopy Create free account
hub / github.com/TanStack/db / evaluateWrappedAggregates

Function evaluateWrappedAggregates

packages/db/src/query/compiler/group-by.ts:635–657  ·  view source on GitHub ↗

* Evaluates wrapped-aggregate expressions against the aggregated row. * Copies synthetic __agg_N values into finalResults so the compiled wrapper * expressions can reference them, evaluates each wrapper, then removes the * synthetic keys so they don't leak onto user-visible result rows.

(
  finalResults: Record<string, any>,
  aggregatedRow: Record<string, any>,
  wrappedAggExprs: Record<string, (data: any) => any>,
  groupKeyCount: number = 0,
)

Source from the content-addressed store, hash-verified

633 * synthetic keys so they don't leak onto user-visible result rows.
634 */
635function evaluateWrappedAggregates(
636 finalResults: Record<string, any>,
637 aggregatedRow: Record<string, any>,
638 wrappedAggExprs: Record<string, (data: any) => any>,
639 groupKeyCount: number = 0,
640): void {
641 for (const key of Object.keys(aggregatedRow)) {
642 if (key.startsWith(`__agg_`)) {
643 finalResults[key] = aggregatedRow[key]
644 }
645 }
646 for (let i = 0; i < groupKeyCount; i++) {
647 finalResults[`${GROUP_KEY_REF_PREFIX}${i}`] = aggregatedRow[`__key_${i}`]
648 }
649 for (const [alias, evaluator] of Object.entries(wrappedAggExprs)) {
650 finalResults[alias] = evaluator({ $selected: finalResults })
651 }
652 for (const key of Object.keys(finalResults)) {
653 if (key.startsWith(`__agg_`) || key.startsWith(GROUP_KEY_REF_PREFIX)) {
654 delete finalResults[key]
655 }
656 }
657}
658
659/**
660 * Checks whether an expression contains an aggregate anywhere in its tree.

Callers 1

processGroupByFunction · 0.85

Calls 2

keysMethod · 0.45
entriesMethod · 0.45

Tested by

no test coverage detected