-- -- acs_object__get_attribute/2 -- create or replace function acs_object__get_attribute( integer, character varying ) returns text as $$ declare object_id_in alias for $1; attribute_name_in alias for $2; v_table_name varchar(200); v_column varchar(200); v_key_sql text; v_return text; v_storage text; v_rec record; begin v_storage := acs_object__get_attribute_storage(object_id_in, attribute_name_in); v_column := acs_object__get_attr_storage_column(v_storage); v_table_name := acs_object__get_attr_storage_table(v_storage); v_key_sql := acs_object__get_attr_storage_sql(v_storage); for v_rec in execute 'select ' || quote_ident(v_column) || '::text as column_return from ' || quote_ident(v_table_name) || ' where ' || v_key_sql LOOP v_return := v_rec.column_return; exit; end loop; if not FOUND then return null; end if; return v_return; end;$$ language plpgsql;