0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-02-12 18:18:24 -05:00

Simplify projects and pages related queries on backend.

This commit is contained in:
Andrey Antukh 2017-03-21 09:24:54 +01:00
parent 6ee9d668cd
commit 475de58bc2
No known key found for this signature in database
GPG key ID: 4DFEBCB8316A8B95
2 changed files with 6 additions and 22 deletions

View file

@ -32,7 +32,8 @@ update pages
and deleted_at is null;
-- :name get-pages :? :*
select pg.* from pages as pg
select pg.*
from pages as pg
where pg.user = :user
and pg.deleted_at is null
order by created_at asc;
@ -43,8 +44,7 @@ select pg.* from pages as pg
and pg.deleted_at is null;
-- :name get-pages-for-user-and-project :? :*
select pg.*,
(row_number() OVER (order by created_at asc) -1) as index
select pg.*
from pages as pg
where pg.user = :user
and pg.project = :project
@ -52,8 +52,7 @@ select pg.*,
order by pg.created_at asc;
-- :name get-pages-for-project :? :*
select pg.*,
(row_number() OVER (order by created_at asc) -1) as index
select pg.*
from pages as pg
where pg.project = :project
and pg.deleted_at is null

View file

@ -26,28 +26,13 @@ select p.*
and p.deleted_at is null;
-- :name get-projects :? :*
select distinct
pr.*,
ps.token as share_token,
count(pg.id) over win as total_pages,
first_value(pg.id) over win as page_id,
first_value(pg.data) over win as page_data,
first_value(pg.name) over win as page_name,
first_value(pg.version) over win as page_version,
first_value(pg.created_at) over win as page_created_at,
first_value(pg.metadata) over win as page_metadata,
first_value(pg.modified_at) over win as page_modified_at
select pr.*,
ps.token as share_token
from projects as pr
inner join project_shares as ps
on (ps.project = pr.id)
left join pages as pg
on (pg.project = pr.id and pg.deleted_at is null)
where pr.deleted_at is null
and pr."user" = :user
window win as (partition by pr.id
order by pg.created_at
range between unbounded preceding
and unbounded following)
order by pr.created_at asc;
-- :name get-project-by-share-token :? :*