Registrations Fixed (poHroma)
[mirrors/Kyberia-bloodline.git] / wwwroot / backend / mysql / test.sql
CommitLineData
1241a428 1drop procedure if exists k_neurons;
2drop function if exists k_get_node_weigth;
3
4delimiter //
5
6create function k_get_node_weigth (node INT, user INT) returns DOUBLE
7BEGIN
8 declare vector,node2,len,n_owner,offset int;
9 declare final,n_weight,o_weight,s_weight double;
10
11 select node_vector into vector from nodes where node_id = node;
12
13 set final = 1;
14 /* select k from nodes into final where node_id = node;*/
15
16 set len = length(vector);
17 set offset = 1;
18 WHILE offset < len DO
19
20 /* XXX node length is hardcoded */
21 set node2 = substring(node2,offset,8);
22 set offset = offset + 8;
23 /* weigths from user to:
24 - all nodes from node to root node
25 - all node owners from node to root node
26 - all nodes between themselves (safe?)
27 */
28 select node_weight,node_creator into n_weight,n_owner from nodes where node_id=node2;
29 select synapse_weight into s_weight from neurons where src=user and dst=node2;
30 select synapse_weight into o_weight from neurons where src=user and dst=n_owner;
31
32 if o_weight = NULL then set o_weight=1; end if;
33 if s_weight = NULL then set s_weight=1; end if;
34 if n_weight = NULL then set n_weight=1; end if;
35
36 set final = final * s_weight * o_weight * n_weight;
37 END WHILE;
38
39 RETURN final;
40END//
41
42create procedure k_neurons ()
43begin
44 select k,node_id,node_name from nodes where k>0
45 and node_created>now()-interval 20 day order by k_get_node_weigth(node_id,904) desc;
46end//
47
48delimiter ;
This page took 0.162627 seconds and 4 git commands to generate.