1
DECLARE
2
return_string varchar;
3
f_id ALIAS FOR $1;
4
atts_view gffatts%ROWTYPE;
5
feature_row feature%ROWTYPE;
6
name varchar;
7
uniquename varchar;
8
parent varchar;
9
escape_loc int;
10
BEGIN
11
--Get name from feature.name
12
--Get ID from feature.uniquename
13
14
SELECT INTO feature_row * FROM feature WHERE feature_id = f_id;
15
name = feature_row.name;
16
return_string = 'ID=' || feature_row.uniquename;
17
IF name IS NOT NULL AND name != ''
18
THEN
19
return_string = return_string ||';' || 'Name=' || name;
20
END IF;
21
22
--Get Parent from feature_relationship
23
SELECT INTO feature_row * FROM feature f, feature_relationship fr
24
WHERE fr.subject_id = f_id AND fr.object_id = f.feature_id;
25
IF FOUND
26
THEN
27
return_string = return_string||';'||'Parent='||feature_row.uniquename;
28
END IF;
29
30
FOR atts_view IN SELECT * FROM gff3atts WHERE feature_id = f_id LOOP
31
escape_loc = position(';' in atts_view.attribute);
32
IF escape_loc > 0 THEN
33
atts_view.attribute = replace(atts_view.attribute, ';', '%3B');
34
END IF;
35
return_string = return_string || ';'
36
|| atts_view.type || '='
37
|| atts_view.attribute;
38
END LOOP;
39
40
RETURN return_string;
41
END;