FUNCTIONS ========= Function Groups: 1. Tree functions 2. Node Create functions 3. Node Update Delete functions 4. Node Retrival functions 5. Node Metadata functions 6. Node Traversal functions 7. Node sn Sequence functions 8. User access functions 9. I/O functions Schema | Name | Result data type | Argument data types --------+-----------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------- 1. Tree functions --------+-----------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------- tree | get_tree | tree.tree | tree_name varchar tree | get_trees | setof tree.tree | tree | create_tree | integer | arg_tree_name varchar, arg_tree_comment varchar tree | drop_tree | boolean | arg_tree_name varchar tree | rename_tree | boolean | arg_tree_current_name varchar, arg_tree_new_name varchar tree | update_tree_description | boolean | arg_tree_name varchar, arg_desc varchar --------+-----------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------- 2. Node Create functions --------+-----------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------- tree | add_child_node | tree.tree_node | arg_parent_node bigint, arg_node_data bigint tree | add_child_node | tree.tree_node | arg_parent_node bigint, arg_node_data bigint, arg_node_weight double tree | add_named_orphan_node | tree.tree_node | arg_tree_name character varying, arg_node_name character varying, arg_node_data bigint tree | add_named_orphan_node | tree.tree_node | arg_tree_name varchar, arg_node_name varchar, arg_node_data bigint, arg_node_weight double tree | add_orphan_node | tree.tree_node | arg_tree_name varchar, arg_node_data bigint tree | add_orphan_node | tree.tree_node | arg_tree_name varchar, arg_node_data bigint, arg_node_weight double tree | add_orphan_sn_node | tree.tree_node | arg_tree_name varchar, arg_node_sn bigint, arg_node_data bigint tree | add_orphan_sn_node | tree.tree_node | arg_tree_name varchar, arg_node_sn bigint, arg_node_data bigint, arg_node_weight double tree | add_root_node | tree.tree_node | arg_tree_name varchar tree | add_root_node | tree.tree_node | arg_tree_name varchar, arg_node_data bigint tree | add_root_node | tree.tree_node | arg_tree_name varchar, arg_node_data bigint, arg_weight double tree | make_orphan_node | boolean | arg_node bigint --------+-----------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------- 3. Node Update Delete functions --------+-----------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------- tree | set_parentship | boolean | arg_parent_node bigint, arg_child_node bigint tree | set_parentship | boolean | arg_tree_name varchar, arg_parent_node_name varchar, arg_child_node_name varchar tree | set_parentship | boolean | arg_tree_name varchar, arg_parent_node_sn bigint, arg_child_node_sn bigint tree | set_root_node | boolean | arg_node bigint tree | set_root_node | boolean | arg_tree_name varchar, arg_node_name varchar tree | set_root_node | boolean | arg_tree_name varchar, arg_node_sn bigint tree | unset_root_node | boolean | arg_node bigint tree | delete_node | boolean | arg_node_id bigint tree | delete_subtree | boolean | arg_node_id bigint tree | swap_childs_order | boolean | arg_node_id_1 bigint, arg_node_id_2 bigint tree | update_node_data | boolean | arg_node bigint, arg_node_data_id bigint --------+-----------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------- 4. Node Retrival functions --------+-----------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------- tree | get_all_nodes | setof tree.tree_node | tree_name varchar tree | get_anchestor | setof tree.tree_node | node_id bigint, node_id bigint tree | get_childs | setof tree.tree_node | node_id bigint tree | get_internal_nodes | setof tree.tree_node | tree_name varchar tree | get_leaf_nodes | setof tree.tree_node | tree_name varchar tree | get_named_nodes | setof tree.tree_node | tree_name varchar tree | get_node | tree.tree_node | node_id bigint tree | get_node | tree.tree_node | tree_name varchar, node_name varchar tree | get_node | tree.tree_node | tree_name varchar, node_sn bigint tree | get_node_id | bigint | tree_name varchar, node_name varchar tree | get_node_id | bigint | tree_name varchar, node_sn bigint tree | get_nodes | setof tree.tree_node | tree_name varchar tree | get_nodes_for_data | setof tree.tree_node | tree_name varchar, node_data_id bigint tree | get_orphan_nodes | setof tree.tree_node | tree_name varchar tree | get_parent | tree.tree_node | node_id bigint tree | get_path | setof tree.traversal_node | node_id bigint, include_node boolean tree | get_path | setof tree.traversal_node | node_id bigint, include_node boolean, include_root boolean tree | get_root | tree.tree_node | tree_name varchar tree | get_root_id | bigint | tree_name varchar --------+-----------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------- 5. Node Metadata functions --------+-----------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------- tree | get_node_metadata | tree.tree_node_metadata | node_id bigint tree | remove_node_metadata | boolean | arg_node_id bigint tree | remove_node_name | boolean | arg_node_id bigint tree | set_node_description | boolean | arg_node_id bigint, arg_node_description varchar tree | set_node_metadata | boolean | arg_node_id bigint, arg_node_description varchar tree | set_node_name | boolean | arg_node_id bigint, arg_node_name varchar --------+-----------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------- 6. Node Traversal functions --------+-----------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------- tree | traverse_group | setof tree.traversal_group | node_id bigint, arg_max_level integer, get_root_group boolean tree | traverse_group | setof tree.traversal_group | node_id bigint, get_root_group boolean tree | traverse_group | setof tree.traversal_group | tree_name varchar, arg_max_level integer, get_root_group boolean tree | traverse_group | setof tree.traversal_group | tree_name varchar, get_root_group boolean tree | traverse_node | setof tree.traversal_node | anode_id bigint tree | traverse_node | setof tree.traversal_node | node_id bigint, max_level integer tree | traverse_tree | setof tree.traversal_node | tree_name varchar tree | traverse_tree | setof tree.traversal_node | tree_name varchar, max_level integer tree | traverse_tree_level | setof tree.traversal_node | arg_tree_name varchar tree | traverse_tree_level | setof tree.traversal_node | arg_tree_name varchar, arg_max_level integer --------+-----------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------- 7. Node sn Sequence functions --------+-----------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------- tree | get_node_next_sn | bigint | tree_name varchar tree | get_node_sn_sequence | tree.tree_node_sn_sequence | arg_tree_name varchar tree | set_node_next_sn | bigint | tree_name varchar, anode_sn bigint tree | set_node_next_sn | bigint | tree_name varchar, node_sn bigint, is_called_status boolean --------+-----------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------- 8. User access functions --------+-----------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------- tree | add_node_to_role | boolean | arg_node bigint, arg_role varchar tree | add_node_to_role | boolean | arg_tree varchar, arg_node varchar, arg_role varchar tree | add_node_to_role | boolean | arg_tree varchar, arg_node_sn bigint, arg_role varchar tree | add_user_to_role | boolean | arg_tree varchar, arg_user varchar, arg_role varchar tree | drop_role_associations | boolean | arg_role varchar tree | drop_role_node_associations | boolean | arg_role varchar tree | drop_role_user_associations | boolean | arg_role varchar tree | get_users_with_roles | setof tree.user_with_role | arg_tree varchar tree | is_user_in_role | boolean | arg_tree varchar, arg_user varchar, arg_role varchar tree | get_nodes_with_roles | setof tree.tree_node_with_role | arg_tree varchar --------+-----------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------- 9. I/O functions --------+-----------------------------+--------------------------------+------------------------------------------------------------------------------------------------------------- tree | tree_export | setof tree.tree_node_exp | arg_tree_name varchar tree | tree_import_from_table | integer | arg_table_name varchar DATA STRACTURES =============== ------------------+------------------+----------------------------------------- tree.tree_node ------------------+------------------+----------------------------------------- id | bigint | node id (application assigned) node_sn | bigint | node sn (unique per tree) node_name | varchar | node name (unique per tree) node_data_id | bigint | foreign id to user data weight | double | used for child ordering defult value 0.0 internal_weight | bigint | used for child ordering level | integer | level of nde in tree parent_id | bigint | parent node id parent_sn | bigint | parent node id ------------------+------------------+----------------------------------------- ------------------+------------------+----------------------------------------- traversal_node ------------------+------------------+----------------------------------------- id | bigint | same as tree.tree_node node_name | varchar | same as tree.tree_node node_sn | bigint | same as tree.tree_node node_data_id | bigint | same as tree.tree_node weight | double | same as tree.tree_node internal_weight | bigint | same as tree.tree_node level | integer | same as tree.tree_node parent_id | bigint | same as tree.tree_node parent_sn | bigint | same as tree.tree_node traversal_index | integer | traversal order ------------------+------------------+----------------------------------------- ------------------+------------------+----------------------------------------- tree.tree_node_metadata ------------------+------------------+----------------------------------------- id | bigint | node id node_description | varchar | node description ------------------+------------------+----------------------------------------- ------------------+------------------+----------------------------------------- tree.tree ------------------+------------------+----------------------------------------- tree_name | varchar | name of tree (unique) description | varchar | ------------------+------------------+----------------------------------------- ----------------------+--------------+----------------------------------------- tree.traversal_group ----------------------+--------------+----------------------------------------- group_tag | integer | node_sn | bigint | node_name | varchar | node_id | bigint | node_data_id | bigint | weight | double | internal_weight | bigint | level | integer | parent_id | bigint | parent_sn | bigint | node_traversal_index | integer | traversal_index | integer | ----------------------+--------------+-----------------------------------------