Improve the projects query.

This commit is contained in:
Andrey Antukh 2019-11-27 15:32:50 +01:00
parent 69e9247fb6
commit d79161aee0

View file

@ -34,14 +34,16 @@
{:doc "Query all projects" {:doc "Query all projects"
:spec ::projects-query} :spec ::projects-query}
[{:keys [user] :as params}] [{:keys [user] :as params}]
(let [sql "select pr.*, (let [sql "select distinct on (p.id, p.created_at)
ps.token as share_token p.*,
from projects as pr first_value(pg.id)
inner join project_shares as ps over (partition by p.id order by pg.created_at)
on (ps.project = pr.id) as ref_page_id
where pr.deleted_at is null from projects as p
and pr.user_id = $1 right join pages as pg
order by pr.created_at asc"] on (pg.project_id = p.id)
where p.user_id = $1
order by p.created_at asc"]
(db/query db/pool [sql user]))) (db/query db/pool [sql user])))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;