44 lines
1.3 KiB
SQL
44 lines
1.3 KiB
SQL
do
|
|
$$
|
|
declare
|
|
article_count int = (select count(*) from article);
|
|
begin
|
|
delete from article_in_title;
|
|
delete from title;
|
|
delete from constitution;
|
|
|
|
insert into constitution (id, version_id, created_by_id, title, anonymous)
|
|
select
|
|
uuid_in(md5('constitution'||row_number() over ())::cstring),
|
|
uuid_in(md5('constitution_v'||row_number() over ())::cstring),
|
|
z.id,
|
|
'title' || row_number() over (),
|
|
row_number() over () % 3 = 0
|
|
from citizen z;
|
|
|
|
insert into title (id, created_by_id, name, rank, constitution_id)
|
|
select
|
|
uuid_in(md5('constitution_title'||row_number() over ())::cstring),
|
|
c.created_by_id,
|
|
'name' || row_number() over (),
|
|
row_number() over (),
|
|
c.id
|
|
from constitution c,
|
|
lateral generate_series(1, 5) g;
|
|
|
|
insert into article_in_title (id, created_by_id, rank, title_id, article_id, constitution_id)
|
|
select
|
|
uuid_in(md5('article_in_title'||row_number() over ())::cstring),
|
|
ti.created_by_id,
|
|
row_number() over (),
|
|
ti.id,
|
|
a.id,
|
|
ti.constitution_id
|
|
from (select *, (row_number() over () % (article_count+7)) rn from title, lateral generate_series(1, 3) g) ti
|
|
join (select *, row_number() over () rn from article) a using (rn);
|
|
|
|
raise notice 'constitution fixtures done';
|
|
end;
|
|
$$;
|
|
|