--
-- @author Simon Carstensen (simon@collaboraid.biz)
-- @creation_date 2003-09-10
--
-- $Id: upgrade-4.7d2-4.7d3.sql,v 1.3 2013/03/30 17:40:53 gustafn Exp $
-- add column impl_pretty_name
alter table acs_sc_impls add column impl_pretty_name varchar(200);
update acs_sc_impls set impl_pretty_name = impl_name;
-- added
select define_function_args('acs_sc_impl__new','impl_contract_name,impl_name,impl_pretty_name,impl_owner_name');
--
-- procedure acs_sc_impl__new/4
--
CREATE OR REPLACE FUNCTION acs_sc_impl__new(
p_impl_contract_name varchar,
p_impl_name varchar,
p_impl_pretty_name varchar,
p_impl_owner_name varchar
) RETURNS integer AS $$
DECLARE
v_impl_id integer;
BEGIN
v_impl_id := acs_object__new(
null,
'acs_sc_implementation',
now(),
null,
null,
null
);
insert into acs_sc_impls (
impl_id,
impl_name,
impl_pretty_name,
impl_owner_name,
impl_contract_name
) values (
v_impl_id,
p_impl_name,
p_impl_pretty_name,
p_impl_owner_name,
p_impl_contract_name
);
return v_impl_id;
END;
$$ LANGUAGE plpgsql;
drop view valid_uninstalled_bindings;
create view valid_uninstalled_bindings as
select c.contract_id, c.contract_name, i.impl_id, i.impl_name, i.impl_owner_name, i.impl_pretty_name
from acs_sc_contracts c, acs_sc_impls i
where c.contract_name = i.impl_contract_name
and not exists (select 1
from acs_sc_bindings b
where b.contract_id = c.contract_id
and b.impl_id = i.impl_id)
and not exists (select 1
from acs_sc_operations o
where o.contract_id = c.contract_id
and not exists (select 1
from acs_sc_impl_aliases a
where a.impl_contract_name = c.contract_name
and a.impl_id = i.impl_id
and a.impl_operation_name = o.operation_name));
drop view invalid_uninstalled_bindings;
create view invalid_uninstalled_bindings as
select c.contract_id, c.contract_name, i.impl_id, i.impl_name, i.impl_owner_name, i.impl_pretty_name
from acs_sc_contracts c, acs_sc_impls i
where c.contract_name = i.impl_contract_name
and not exists (select 1
from acs_sc_bindings b
where b.contract_id = c.contract_id
and b.impl_id = i.impl_id)
and exists (select 1
from acs_sc_operations o
where o.contract_id = c.contract_id
and not exists (select 1
from acs_sc_impl_aliases a
where a.impl_contract_name = c.contract_name
and a.impl_id = i.impl_id
and a.impl_operation_name = o.operation_name));
drop view orphan_implementations;
create view orphan_implementations as
select i.impl_id, i.impl_name, i.impl_owner_name, i.impl_contract_name, i.impl_pretty_name
from acs_sc_impls i
where not exists (select 1
from acs_sc_bindings b
where b.impl_id = i.impl_id)
and not exists (select 1
from acs_sc_contracts c
where c.contract_name = i.impl_contract_name);