Revision 6ef7a9288aaec82eb0c49e4991266b3dbb13e5a6 authored by Jenkins for Software Heritage on 07 August 2020, 10:49:28 UTC, committed by Jenkins for Software Heritage on 07 August 2020, 10:49:28 UTC
1 parent 5e10f66
124.sql
-- SWH DB schema upgrade
-- from_version: 123
-- to_version: 124
-- description: Enable to paginate, filter and count snapshot content
insert into dbversion(version, release, description)
values(124, now(), 'Work In Progress');
DROP FUNCTION swh_snapshot_get_by_id(id public.sha1_git);
CREATE TYPE snapshot_size AS (
target_type public.snapshot_target,
"count" bigint
);
CREATE OR REPLACE FUNCTION swh_snapshot_get_by_id(id public.sha1_git, branches_from bytea = '\x'::bytea, branches_count bigint = NULL::bigint, target_types public.snapshot_target[] = NULL::public.snapshot_target[]) RETURNS SETOF public.snapshot_result
LANGUAGE sql STABLE
AS $$
select
swh_snapshot_get_by_id.id as snapshot_id, name, target, target_type
from snapshot_branches
inner join snapshot_branch on snapshot_branches.branch_id = snapshot_branch.object_id
where snapshot_id = (select object_id from snapshot where snapshot.id = swh_snapshot_get_by_id.id)
and (target_types is null or target_type = any(target_types))
and name >= branches_from
order by name limit branches_count
$$;
CREATE OR REPLACE FUNCTION swh_snapshot_count_branches(id public.sha1_git) RETURNS SETOF public.snapshot_size
LANGUAGE sql STABLE
AS $$
SELECT target_type, count(name)
from swh_snapshot_get_by_id(swh_snapshot_count_branches.id)
group by target_type;
$$;
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...