drop procedure if exists k_neurons;
drop function if exists k_get_node_weigth;
-
delimiter //
-
create function k_get_node_weigth (node INT, user INT) returns DOUBLE
BEGIN
- declare vector,node2,len,n_owner,offset int;
+ declare vector,node2,len,n_owner,offset int; /* vector type*/
declare final,n_weight,o_weight,s_weight double;
select node_vector into vector from nodes where node_id = node;
-
set final = 1;
/* select k from nodes into final where node_id = node;*/
set len = length(vector);
set offset = 1;
WHILE offset < len DO
-
/* XXX node length is hardcoded */
- set node2 = substring(node2,offset,8);
+ set node2 = substring(vector,offset,8);
set offset = offset + 8;
/* weigths from user to:
- all nodes from node to root node
select synapse_weight into s_weight from neurons where src=user and dst=node2;
select synapse_weight into o_weight from neurons where src=user and dst=n_owner;
- if o_weight = NULL then set o_weight=1; end if;
- if s_weight = NULL then set s_weight=1; end if;
- if n_weight = NULL then set n_weight=1; end if;
+ if o_weight = NULL or o_weight=0 then set o_weight=1; end if;
+ if s_weight = NULL or s_weight=0 then set s_weight=1; end if;
+ if n_weight = NULL or n_weight=0 then set n_weight=1; end if;
set final = final * s_weight * o_weight * n_weight;
END WHILE;
-
RETURN final;
END//
-
create procedure k_neurons ()
begin
- select k,node_id,node_name from nodes where k>0
- and node_created>now()-interval 20 day order by k_get_node_weigth(node_id,904) desc;
+-- select k_get_node_weigth(node_id,904) from nodes where k>0
+-- and node_created>now()-interval 20 day;
+ select k,node_id,node_name,k_get_node_weigth(node_id,904) from nodes where k>0
+ and node_created>now()-interval 20 day;
+
+-- select * from tmp_table order by k_weight desc;
end//
+create function get_fix_vector (node INT) returns varchar(80)
+BEGIN
+ declare np,mynode int;
+
+ set mynode=node;
+ REPEAT
+ select node_parent into np from nodes where node_id = mynode;
+ /* XXX padding */
+ vector=concat(node_parent,vector);
+ set mynode=node_parent;
+ UNTIL node_parent != NULL and node_parent > 0
+ END REPEAT;
+
+ return vector;
+
+END//
+
+create procedure fix_all_vectors ()
+begin
+
+end//
delimiter ;
+