Skip to content

Commit 7209466

Browse files
committed
also look for aggregate argument in vars map if specified
1 parent f36aa55 commit 7209466

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/fluree/db/query/analytical.cljc

+10-3
Original file line numberDiff line numberDiff line change
@@ -623,10 +623,17 @@
623623

624624

625625
(defn calculate-aggregate
626-
[tuples aggregate-fn-map]
626+
[{:keys [headers vars tuples]} aggregate-fn-map]
627627
(let [{:keys [variable as function]} aggregate-fn-map
628-
agg-params (flatten (select-from-tuples [variable] tuples))
629-
agg-result (function agg-params)]
628+
var (or (as-variable variable)
629+
(:variable variable))
630+
value (if-let [var-idx (util/index-of headers var)]
631+
(map #(nth % var-idx) tuples)
632+
(if-let [val (get vars var)]
633+
(map (constantly val) tuples)
634+
(throw (ex-info (str "Invalid aggregate variable:" var)
635+
{:status 400 :error :db/invalid-query}))))
636+
agg-result (function value)]
630637
[as agg-result]))
631638

632639
(defn add-aggregate-cols

0 commit comments

Comments
 (0)