added script for fixing vectors
[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;
1241a428 3delimiter //
1241a428 4create function k_get_node_weigth (node INT, user INT) returns DOUBLE
5BEGIN
9ed37a87 6 declare vector,node2,len,n_owner,offset int; /* vector type*/
1241a428 7 declare final,n_weight,o_weight,s_weight double;
8
9 select node_vector into vector from nodes where node_id = node;
1241a428 10 set final = 1;
11 /* select k from nodes into final where node_id = node;*/
12
13 set len = length(vector);
14 set offset = 1;
15 WHILE offset < len DO
1241a428 16 /* XXX node length is hardcoded */
c7049b26 17 set node2 = substring(vector,offset,8);
1241a428 18 set offset = offset + 8;
19 /* weigths from user to:
20 - all nodes from node to root node
21 - all node owners from node to root node
22 - all nodes between themselves (safe?)
23 */
24 select node_weight,node_creator into n_weight,n_owner from nodes where node_id=node2;
25 select synapse_weight into s_weight from neurons where src=user and dst=node2;
26 select synapse_weight into o_weight from neurons where src=user and dst=n_owner;
27
c7049b26 28 if o_weight = NULL or o_weight=0 then set o_weight=1; end if;
29 if s_weight = NULL or s_weight=0 then set s_weight=1; end if;
30 if n_weight = NULL or n_weight=0 then set n_weight=1; end if;
1241a428 31
32 set final = final * s_weight * o_weight * n_weight;
33 END WHILE;
1241a428 34 RETURN final;
35END//
1241a428 36create procedure k_neurons ()
37begin
c7049b26 38-- select k_get_node_weigth(node_id,904) from nodes where k>0
39-- and node_created>now()-interval 20 day;
40 select k,node_id,node_name,k_get_node_weigth(node_id,904) from nodes where k>0
41 and node_created>now()-interval 20 day;
1241a428 42
c7049b26 43-- select * from tmp_table order by k_weight desc;
9ed37a87 44end//
45
46create function get_fix_vector (node INT) returns varchar(80)
47BEGIN
48 declare np,mynode int;
49
50 set mynode=node;
51 REPEAT
52 select node_parent into np from nodes where node_id = mynode;
53 /* XXX padding */
54 vector=concat(node_parent,vector);
55 set mynode=node_parent;
56 UNTIL node_parent != NULL and node_parent > 0
57 END REPEAT;
58
59 return vector;
60
61END//
62
63create procedure fix_all_vectors ()
64begin
65
c7049b26 66end//
1241a428 67delimiter ;
9ed37a87 68
This page took 0.213594 seconds and 4 git commands to generate.