022.sql
-- SWH DB schema upgrade
-- from_version: 21
-- to_version: 22
-- description: Replace name and email in person with bytea
insert into dbversion(version, release, description)
values(22, now(), 'Work In Progress');
ALTER TABLE person
ALTER COLUMN name DROP DEFAULT,
ALTER COLUMN name TYPE bytea using convert_to(name, 'utf-8'),
ALTER COLUMN name SET DEFAULT '\x'::bytea,
ALTER COLUMN email DROP DEFAULT,
ALTER COLUMN email TYPE bytea using convert_to(email, 'utf-8'),
ALTER COLUMN email SET DEFAULT '\x'::bytea;
alter type revision_log_entry
alter attribute author_name type bytea,
alter attribute author_email type bytea,
alter attribute committer_name type bytea,
alter attribute committer_email type bytea;
CREATE OR REPLACE FUNCTION swh_mktemp_release() RETURNS void
LANGUAGE sql
AS $$
create temporary table tmp_release (
like release including defaults,
author_name bytea not null default '',
author_email bytea not null default ''
) on commit drop;
alter table tmp_release drop column author;
$$;
CREATE OR REPLACE FUNCTION swh_mktemp_revision() RETURNS void
LANGUAGE sql
AS $$
create temporary table tmp_revision (
like revision including defaults,
author_name bytea not null default '',
author_email bytea not null default '',
committer_name bytea not null default '',
committer_email bytea not null default ''
) on commit drop;
alter table tmp_revision drop column author;
alter table tmp_revision drop column committer;
$$;