--
-- content_type__create_type/7
--
create or replace function content_type__create_type(
character varying,
character varying,
character varying,
character varying,
character varying,
character varying,
character varying
) returns int4 as $$
declare
create_type__content_type alias for $1;
create_type__supertype alias for $2; -- default 'content_revision'
create_type__pretty_name alias for $3;
create_type__pretty_plural alias for $4;
create_type__table_name alias for $5;
create_type__id_column alias for $6; -- default 'XXX'
create_type__name_method alias for $7; -- default null
v_temp_p boolean;
v_supertype_table acs_object_types.table_name%TYPE;
begin
if (create_type__supertype <> 'content_revision')
and (create_type__content_type <> 'content_revision') then
select count(*) > 0 into v_temp_p
from acs_object_type_supertype_map
where object_type = create_type__supertype
and ancestor_type = 'content_revision';
if not v_temp_p then
raise EXCEPTION '-20000: supertype % must be a subtype of content_revision', create_type__supertype;
end if;
end if;
select count(*) = 0 into v_temp_p
from pg_class
where relname = lower(create_type__table_name);
PERFORM acs_object_type__create_type (
create_type__content_type,
create_type__pretty_name,
create_type__pretty_plural,
create_type__supertype,
create_type__table_name,
create_type__id_column,
null,
'f',
null,
create_type__name_method,
v_temp_p,
'f'
);
PERFORM content_type__refresh_view(create_type__content_type);
return 0;
end;$$ language plpgsql;