attribute::delete (public)
attribute::delete attribute_id
Defined in packages/acs-subsite/tcl/attribute-procs.tcl
Delete the specified attribute id and all its values. This is irreversible. Returns 1 if the attribute was actually deleted. 0 otherwise.
- Parameters:
- attribute_id (required)
- Author:
- Michael Bryzek <mbryzek@arsdigita.com>
- Created:
- 12/2000
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- acs_subsite_attributes
Source code: # 1. Drop the attribute with its column # 2. Return if { ![db_0or1row select_attr_info { select a.object_type, a.attribute_name, case when a.storage = 'type_specific' then t.table_name else a.table_name end as table_name, coalesce(a.column_name, a.attribute_name) as column_name from acs_attributes a, acs_object_types t where a.attribute_id = :attribute_id and t.object_type = a.object_type }] } { # Attribute doesn't exist return 0 } if { $table_name eq "" || $column_name eq "" } { # We have to have both a nonempty table name and column name error "We do not have enough information to automatically remove this attribute. Namely, we are missing either the table name or the column name" } set drop_table_column_p [expr {[db_column_exists $table_name $column_name] ? "t" : "f"}] db_exec_plsql drop_attribute {} return 1Generic XQL file: packages/acs-subsite/tcl/attribute-procs.xql
PostgreSQL XQL file: <fullquery name="attribute::delete.drop_attribute"> <querytext> select acs_attribute__drop_attribute(:object_type, :attribute_name, :drop_table_column_p) </querytext> </fullquery>packages/acs-subsite/tcl/attribute-procs-postgresql.xql
Oracle XQL file: <fullquery name="attribute::delete.drop_attribute"> <querytext> begin acs_attribute.drop_attribute(:object_type, :attribute_name, :drop_table_column_p); end; </querytext> </fullquery>packages/acs-subsite/tcl/attribute-procs-oracle.xql