postgresql7.1
select dynamic_type__create_type (
:name,
:supertype,
:pretty_name,
:pretty_plural,
:table_name,
:id_column,
:name_method
);
select dynamic_type__drop_type (
:name,
:drop_children,
:drop_table
);
select dynamic_type__create_attribute (
:object_type,
:name,
:data_type,
:pretty_name,
:pretty_plural,
:sort_order,
:default_value,
:column_spec
);
select a.attribute_name as name,
a.pretty_name,
a.attribute_id,
a.datatype,
a.table_name,
coalesce(a.column_name, a.attribute_name) as column_name,
a.default_value,
a.min_n_values,
a.max_n_values,
a.storage,
a.static_p
from acs_object_type_attributes a,
(select t.object_type, tree_level(t.tree_sortkey) - tree_level(t2.tree_sortkey) as type_level
from acs_object_types t, acs_object_types t2
where t2.object_type = :start_with
and t.tree_sortkey between t2.tree_sortkey and tree_right(t2.tree_sortkey)) t
where a.object_type = :name
and t.object_type = a.ancestor_type $storage_clause
order by type_level, a.sort_order
select a.attribute_name as name,
a.pretty_name,
a.attribute_id,
a.datatype,
a.table_name,
coalesce(a.column_name, a.attribute_name) as column_name,
a.default_value,
a.min_n_values,
a.max_n_values,
a.storage,
a.static_p
from acs_object_type_attributes a, dtype_attributes d,
(select t.object_type, tree_level(t.tree_sortkey) - tree_level(t2.tree_sortkey) as type_level
from acs_object_types t, acs_object_types t2
where t2.object_type = :start_with
and t.tree_sortkey between t2.tree_sortkey and tree_right(t2.tree_sortkey)) t
where a.object_type = :name
and d.attribute_id = a.attribute_id
and t.object_type = a.ancestor_type $storage_clause
order by type_level, a.sort_order
select dynamic_type__drop_attribute (
:object_type,
:name,
:drop_column
);