(cloud) makes sales export queries super stinkin' fast
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
(ns iol-ion.query
|
||||
(:require [clj-time.core :as time]
|
||||
[clj-time.coerce :as coerce]
|
||||
[clj-time.format :as f]))
|
||||
[clj-time.format :as f]
|
||||
[datomic.client.api :as dc]))
|
||||
|
||||
#_{:clj-kondo/ignore [:clojure-lsp/unused-public-var]}
|
||||
(defn dollars-0? [amt]
|
||||
@@ -19,7 +20,7 @@
|
||||
|
||||
|
||||
(defn recent-date []
|
||||
(coerce/to-date (time/minus (local-now) (time/days 90))))
|
||||
(coerce/to-date (time/minus (local-now) (time/days 10))))
|
||||
|
||||
(def excel-formatter (f/with-zone (f/formatter "MM/dd/yyyy") (time/time-zone-for-id "America/Los_Angeles")))
|
||||
(defn excel-date [d]
|
||||
@@ -27,3 +28,25 @@
|
||||
(coerce/to-date-time)
|
||||
localize
|
||||
(f/unparse excel-formatter )))
|
||||
|
||||
|
||||
(defn sales-orders-in-range [db client start end]
|
||||
(let [end (or end #inst "2050-01-01")]
|
||||
(into #{}
|
||||
(comp
|
||||
|
||||
(map (fn [i]
|
||||
(dc/index-range db
|
||||
{:attrid :sales-order/client+date
|
||||
:start [client start]
|
||||
:end [client end]
|
||||
:limit 10000
|
||||
:offset (* 10000 i)})))
|
||||
|
||||
(take-while seq)
|
||||
(mapcat identity)
|
||||
(map :e))
|
||||
(range))))
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user