Commit 62cb9fbe authored by Andrew McDonnell's avatar Andrew McDonnell

Updated tests for 1213120

parent fc984d3d
DROP TABLE IF EXISTS graph_base;
DROP TABLE IF EXISTS graph;
DROP TABLE IF EXISTS graph2;
CREATE TABLE graph_base (
from_id INT UNSIGNED NOT NULL,
to_id INT UNSIGNED NOT NULL,
PRIMARY KEY (from_id,to_id),
INDEX (to_id)
) ENGINE=MyISAM;
CREATE TABLE graph (
latch VARCHAR(32) NULL,
origid BIGINT UNSIGNED NULL,
destid BIGINT UNSIGNED NULL,
weight DOUBLE NULL,
seq BIGINT UNSIGNED NULL,
linkid BIGINT UNSIGNED NULL,
KEY (latch, origid, destid) USING HASH,
KEY (latch, destid, origid) USING HASH
) ENGINE=OQGRAPH DATA_TABLE='graph_base' ORIGID='from_id', DESTID='to_id';
INSERT INTO graph_base(from_id, to_id) VALUES (1,2), (2,1);
INSERT INTO graph_base(from_id, to_id) VALUES (1,3), (3,1);
INSERT INTO graph_base(from_id, to_id) VALUES (3,4), (4,3);
INSERT INTO graph_base(from_id, to_id) VALUES (5,6), (6,5);
INSERT INTO graph_base(from_id, to_id) VALUES (5,7);
INSERT INTO graph_base(from_id, to_id) VALUES (9,9);
INSERT INTO graph_base(from_id, to_id) VALUES (10,11);
INSERT INTO graph_base(from_id, to_id) VALUES (11,12);
INSERT INTO graph_base(from_id, to_id) VALUES (12,10);
# Return all edges
SELECT * FROM graph;
latch origid destid weight seq linkid
NULL 1 2 1 NULL NULL
NULL 2 1 1 NULL NULL
NULL 1 3 1 NULL NULL
NULL 3 1 1 NULL NULL
NULL 3 4 1 NULL NULL
NULL 4 3 1 NULL NULL
NULL 5 6 1 NULL NULL
NULL 6 5 1 NULL NULL
NULL 5 7 1 NULL NULL
NULL 9 9 1 NULL NULL
NULL 10 11 1 NULL NULL
NULL 11 12 1 NULL NULL
NULL 12 10 1 NULL NULL
# Currently count should be 13
SELECT count(*) FROM graph;
count(*)
13
SELECT count(*) FROM graph_base;
count(*)
13
# Return all edges when latch is NULL - this is different to latch='' and same as no where clause
SELECT * FROM graph where latch is NULL;
latch origid destid weight seq linkid
NULL 1 2 1 NULL NULL
NULL 2 1 1 NULL NULL
NULL 1 3 1 NULL NULL
NULL 3 1 1 NULL NULL
NULL 3 4 1 NULL NULL
NULL 4 3 1 NULL NULL
NULL 5 6 1 NULL NULL
NULL 6 5 1 NULL NULL
NULL 5 7 1 NULL NULL
NULL 9 9 1 NULL NULL
NULL 10 11 1 NULL NULL
NULL 11 12 1 NULL NULL
NULL 12 10 1 NULL NULL
# Return all vertices, and subsets of vertices
SELECT * FROM graph where latch='';
latch origid destid weight seq linkid
NULL NULL NULL NULL 1
NULL NULL NULL NULL 2
NULL NULL NULL NULL 3
NULL NULL NULL NULL 4
NULL NULL NULL NULL 5
NULL NULL NULL NULL 6
NULL NULL NULL NULL 7
NULL NULL NULL NULL 9
NULL NULL NULL NULL 10
NULL NULL NULL NULL 11
NULL NULL NULL NULL 12
SELECT * FROM graph where latch='0';
latch origid destid weight seq linkid
0 NULL NULL NULL NULL 1
0 NULL NULL NULL NULL 2
0 NULL NULL NULL NULL 3
0 NULL NULL NULL NULL 4
0 NULL NULL NULL NULL 5
0 NULL NULL NULL NULL 6
0 NULL NULL NULL NULL 7
0 NULL NULL NULL NULL 9
0 NULL NULL NULL NULL 10
0 NULL NULL NULL NULL 11
0 NULL NULL NULL NULL 12
# Currently count should be 11
SELECT count(*) FROM graph where latch='';
count(*)
11
SELECT * FROM graph where latch='' and linkid = 2;
latch origid destid weight seq linkid
NULL NULL NULL NULL 2
SELECT * FROM graph where latch='' and (linkid > 2 and linkid < 6);
latch origid destid weight seq linkid
NULL NULL NULL NULL 3
NULL NULL NULL NULL 4
NULL NULL NULL NULL 5
SELECT * FROM graph where latch='' and linkid = NULL;
latch origid destid weight seq linkid
SELECT * FROM graph where latch='' and linkid = 666;
latch origid destid weight seq linkid
SELECT origid as `from`, linkid as `to` FROM graph where latch='' and origid = 1;
from to
1 3
1 2
SELECT origid as `from`, linkid as `to` FROM graph where latch='' and origid = 2;
from to
2 1
SELECT origid as `from`, linkid as `to` FROM graph where latch='' and origid = 4;
from to
4 3
SELECT origid as `from`, linkid as `to` FROM graph where latch='' and origid = 9;
from to
9 9
SELECT origid as `from`, linkid as `to` FROM graph where latch='' and origid = 10;
from to
10 11
SELECT origid as `from`, linkid as `to` FROM graph where latch='' and origid = NULL;
from to
SELECT origid as `from`, linkid as `to` FROM graph where latch='' and origid = 666;
from to
SELECT linkid as `from`, destid as `to` FROM graph where latch='' and destid = 1;
from to
3 1
2 1
SELECT linkid as `from`, destid as `to` FROM graph where latch='' and destid = 2;
from to
1 2
SELECT linkid as `from`, destid as `to` FROM graph where latch='' and destid = 4;
from to
3 4
SELECT linkid as `from`, destid as `to` FROM graph where latch='' and destid = 9;
from to
9 9
SELECT linkid as `from`, destid as `to` FROM graph where latch='' and destid = 10;
from to
12 10
SELECT linkid as `from`, destid as `to` FROM graph where latch='' and destid = NULL;
from to
SELECT linkid as `from`, destid as `to` FROM graph where latch='' and destid = 666;
from to
SELECT * FROM graph where latch='0';
latch origid destid weight seq linkid
0 NULL NULL NULL NULL 1
0 NULL NULL NULL NULL 2
0 NULL NULL NULL NULL 3
0 NULL NULL NULL NULL 4
0 NULL NULL NULL NULL 5
0 NULL NULL NULL NULL 6
0 NULL NULL NULL NULL 7
0 NULL NULL NULL NULL 9
0 NULL NULL NULL NULL 10
0 NULL NULL NULL NULL 11
0 NULL NULL NULL NULL 12
SELECT count(*) FROM graph where latch='0';
count(*)
11
SELECT * FROM graph where latch='0' and linkid = 2;
latch origid destid weight seq linkid
0 NULL NULL NULL NULL 2
SELECT * FROM graph where latch='0' and (linkid > 2 and linkid < 6);
latch origid destid weight seq linkid
0 NULL NULL NULL NULL 3
0 NULL NULL NULL NULL 4
0 NULL NULL NULL NULL 5
SELECT origid as `from`, linkid as `to` FROM graph where latch='0' and origid = 1;
from to
1 3
1 2
SELECT origid as `from`, linkid as `to` FROM graph where latch='0' and origid = 2;
from to
2 1
SELECT origid as `from`, linkid as `to` FROM graph where latch='0' and origid = 4;
from to
4 3
SELECT origid as `from`, linkid as `to` FROM graph where latch='0' and origid = 9;
from to
9 9
SELECT origid as `from`, linkid as `to` FROM graph where latch='0' and origid = 10;
from to
10 11
SELECT linkid as `from`, destid as `to` FROM graph where latch='0' and destid = 1;
from to
3 1
2 1
SELECT linkid as `from`, destid as `to` FROM graph where latch='0' and destid = 2;
from to
1 2
SELECT linkid as `from`, destid as `to` FROM graph where latch='0' and destid = 4;
from to
3 4
SELECT linkid as `from`, destid as `to` FROM graph where latch='0' and destid = 9;
from to
9 9
SELECT linkid as `from`, destid as `to` FROM graph where latch='0' and destid = 10;
from to
12 10
# Breadth-first search tests
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 1;
latch origid destid weight seq linkid
breadth_first 1 NULL 2 4 4
breadth_first 1 NULL 1 3 3
breadth_first 1 NULL 1 2 2
breadth_first 1 NULL 0 1 1
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 2;
latch origid destid weight seq linkid
breadth_first 2 NULL 3 4 4
breadth_first 2 NULL 2 3 3
breadth_first 2 NULL 1 2 1
breadth_first 2 NULL 0 1 2
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 3;
latch origid destid weight seq linkid
breadth_first 3 NULL 2 4 2
breadth_first 3 NULL 1 3 4
breadth_first 3 NULL 1 2 1
breadth_first 3 NULL 0 1 3
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 4;
latch origid destid weight seq linkid
breadth_first 4 NULL 3 4 2
breadth_first 4 NULL 2 3 1
breadth_first 4 NULL 1 2 3
breadth_first 4 NULL 0 1 4
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 5;
latch origid destid weight seq linkid
breadth_first 5 NULL 1 3 7
breadth_first 5 NULL 1 2 6
breadth_first 5 NULL 0 1 5
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 6;
latch origid destid weight seq linkid
breadth_first 6 NULL 2 3 7
breadth_first 6 NULL 1 2 5
breadth_first 6 NULL 0 1 6
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 7;
latch origid destid weight seq linkid
breadth_first 7 NULL 0 1 7
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 8;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 9;
latch origid destid weight seq linkid
breadth_first 9 NULL 0 1 9
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 10;
latch origid destid weight seq linkid
breadth_first 10 NULL 2 3 12
breadth_first 10 NULL 1 2 11
breadth_first 10 NULL 0 1 10
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 11;
latch origid destid weight seq linkid
breadth_first 11 NULL 2 3 10
breadth_first 11 NULL 1 2 12
breadth_first 11 NULL 0 1 11
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 12;
latch origid destid weight seq linkid
breadth_first 12 NULL 2 3 11
breadth_first 12 NULL 1 2 10
breadth_first 12 NULL 0 1 12
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 666;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 1 AND weight = 1;
latch origid destid weight seq linkid
breadth_first 1 NULL 1 3 3
breadth_first 1 NULL 1 2 2
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 2 AND weight = 1;
latch origid destid weight seq linkid
breadth_first 2 NULL 1 2 1
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 3 AND weight = 1;
latch origid destid weight seq linkid
breadth_first 3 NULL 1 3 4
breadth_first 3 NULL 1 2 1
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 4 AND weight = 1;
latch origid destid weight seq linkid
breadth_first 4 NULL 1 2 3
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 5 AND weight = 1;
latch origid destid weight seq linkid
breadth_first 5 NULL 1 3 7
breadth_first 5 NULL 1 2 6
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 6 AND weight = 1;
latch origid destid weight seq linkid
breadth_first 6 NULL 1 2 5
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 7 AND weight = 1;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 8 AND weight = 1;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 9 AND weight = 1;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 10 AND weight = 1;
latch origid destid weight seq linkid
breadth_first 10 NULL 1 2 11
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 11 AND weight = 1;
latch origid destid weight seq linkid
breadth_first 11 NULL 1 2 12
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 12 AND weight = 1;
latch origid destid weight seq linkid
breadth_first 12 NULL 1 2 10
SELECT count(*) FROM graph WHERE latch = 'breadth_first' AND origid = 1 AND weight = 1;
count(*)
2
SELECT count(*) FROM graph WHERE latch = 'breadth_first' AND origid = 2 AND weight = 1;
count(*)
1
SELECT count(*) FROM graph WHERE latch = 'breadth_first' AND origid = 3 AND weight = 1;
count(*)
2
SELECT count(*) FROM graph WHERE latch = 'breadth_first' AND origid = 4 AND weight = 1;
count(*)
1
SELECT count(*) FROM graph WHERE latch = 'breadth_first' AND origid = 5 AND weight = 1;
count(*)
2
SELECT count(*) FROM graph WHERE latch = 'breadth_first' AND origid = 6 AND weight = 1;
count(*)
1
SELECT count(*) FROM graph WHERE latch = 'breadth_first' AND origid = 7 AND weight = 1;
count(*)
0
SELECT count(*) FROM graph WHERE latch = 'breadth_first' AND origid = 8 AND weight = 1;
count(*)
0
SELECT count(*) FROM graph WHERE latch = 'breadth_first' AND origid = 9 AND weight = 1;
count(*)
0
SELECT count(*) FROM graph WHERE latch = 'breadth_first' AND origid = 10 AND weight = 1;
count(*)
1
SELECT count(*) FROM graph WHERE latch = 'breadth_first' AND origid = 11 AND weight = 1;
count(*)
1
SELECT count(*) FROM graph WHERE latch = 'breadth_first' AND origid = 12 AND weight = 1;
count(*)
1
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 1 AND weight = 2;
latch origid destid weight seq linkid
breadth_first 1 NULL 2 4 4
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 2 AND weight = 2;
latch origid destid weight seq linkid
breadth_first 2 NULL 2 3 3
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 3 AND weight = 2;
latch origid destid weight seq linkid
breadth_first 3 NULL 2 4 2
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 4 AND weight = 2;
latch origid destid weight seq linkid
breadth_first 4 NULL 2 3 1
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 5 AND weight = 2;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 6 AND weight = 2;
latch origid destid weight seq linkid
breadth_first 6 NULL 2 3 7
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 7 AND weight = 2;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 8 AND weight = 2;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 9 AND weight = 2;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 10 AND weight = 2;
latch origid destid weight seq linkid
breadth_first 10 NULL 2 3 12
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 11 AND weight = 2;
latch origid destid weight seq linkid
breadth_first 11 NULL 2 3 10
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 12 AND weight = 2;
latch origid destid weight seq linkid
breadth_first 12 NULL 2 3 11
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 1 AND weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 2 AND weight = 3;
latch origid destid weight seq linkid
breadth_first 2 NULL 3 4 4
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 3 AND weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 4 AND weight = 3;
latch origid destid weight seq linkid
breadth_first 4 NULL 3 4 2
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 5 AND weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 6 AND weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 7 AND weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 8 AND weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 9 AND weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 10 AND weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 11 AND weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 12 AND weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 1 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
breadth_first 1 NULL 2 4 4
breadth_first 1 NULL 1 3 3
breadth_first 1 NULL 1 2 2
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 2 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
breadth_first 2 NULL 2 3 3
breadth_first 2 NULL 1 2 1
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 3 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
breadth_first 3 NULL 2 4 2
breadth_first 3 NULL 1 3 4
breadth_first 3 NULL 1 2 1
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 4 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
breadth_first 4 NULL 2 3 1
breadth_first 4 NULL 1 2 3
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 5 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
breadth_first 5 NULL 1 3 7
breadth_first 5 NULL 1 2 6
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 6 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
breadth_first 6 NULL 2 3 7
breadth_first 6 NULL 1 2 5
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 7 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 8 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 9 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 10 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
breadth_first 10 NULL 2 3 12
breadth_first 10 NULL 1 2 11
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 11 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
breadth_first 11 NULL 2 3 10
breadth_first 11 NULL 1 2 12
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = 12 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
breadth_first 12 NULL 2 3 11
breadth_first 12 NULL 1 2 10
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 1;
latch origid destid weight seq linkid
breadth_first NULL 1 2 4 4
breadth_first NULL 1 1 3 3
breadth_first NULL 1 1 2 2
breadth_first NULL 1 0 1 1
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 2;
latch origid destid weight seq linkid
breadth_first NULL 2 3 4 4
breadth_first NULL 2 2 3 3
breadth_first NULL 2 1 2 1
breadth_first NULL 2 0 1 2
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 3;
latch origid destid weight seq linkid
breadth_first NULL 3 2 4 2
breadth_first NULL 3 1 3 4
breadth_first NULL 3 1 2 1
breadth_first NULL 3 0 1 3
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 4;
latch origid destid weight seq linkid
breadth_first NULL 4 3 4 2
breadth_first NULL 4 2 3 1
breadth_first NULL 4 1 2 3
breadth_first NULL 4 0 1 4
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 5;
latch origid destid weight seq linkid
breadth_first NULL 5 1 3 7
breadth_first NULL 5 1 2 6
breadth_first NULL 5 0 1 5
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 6;
latch origid destid weight seq linkid
breadth_first NULL 6 2 3 7
breadth_first NULL 6 1 2 5
breadth_first NULL 6 0 1 6
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 7;
latch origid destid weight seq linkid
breadth_first NULL 7 0 1 7
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 8;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 9;
latch origid destid weight seq linkid
breadth_first NULL 9 0 1 9
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 10;
latch origid destid weight seq linkid
breadth_first NULL 10 2 3 12
breadth_first NULL 10 1 2 11
breadth_first NULL 10 0 1 10
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 11;
latch origid destid weight seq linkid
breadth_first NULL 11 2 3 10
breadth_first NULL 11 1 2 12
breadth_first NULL 11 0 1 11
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 12;
latch origid destid weight seq linkid
breadth_first NULL 12 2 3 11
breadth_first NULL 12 1 2 10
breadth_first NULL 12 0 1 12
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 1 and weight = 1;
latch origid destid weight seq linkid
breadth_first NULL 1 1 3 3
breadth_first NULL 1 1 2 2
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 2 and weight = 1;
latch origid destid weight seq linkid
breadth_first NULL 2 1 2 1
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 3 and weight = 1;
latch origid destid weight seq linkid
breadth_first NULL 3 1 3 4
breadth_first NULL 3 1 2 1
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 4 and weight = 1;
latch origid destid weight seq linkid
breadth_first NULL 4 1 2 3
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 5 and weight = 1;
latch origid destid weight seq linkid
breadth_first NULL 5 1 3 7
breadth_first NULL 5 1 2 6
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 6 and weight = 1;
latch origid destid weight seq linkid
breadth_first NULL 6 1 2 5
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 7 and weight = 1;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 8 and weight = 1;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 9 and weight = 1;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 10 and weight = 1;
latch origid destid weight seq linkid
breadth_first NULL 10 1 2 11
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 11 and weight = 1;
latch origid destid weight seq linkid
breadth_first NULL 11 1 2 12
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 12 and weight = 1;
latch origid destid weight seq linkid
breadth_first NULL 12 1 2 10
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 1 and weight = 2;
latch origid destid weight seq linkid
breadth_first NULL 1 2 4 4
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 2 and weight = 2;
latch origid destid weight seq linkid
breadth_first NULL 2 2 3 3
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 3 and weight = 2;
latch origid destid weight seq linkid
breadth_first NULL 3 2 4 2
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 4 and weight = 2;
latch origid destid weight seq linkid
breadth_first NULL 4 2 3 1
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 5 and weight = 2;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 6 and weight = 2;
latch origid destid weight seq linkid
breadth_first NULL 6 2 3 7
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 7 and weight = 2;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 8 and weight = 2;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 9 and weight = 2;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 10 and weight = 2;
latch origid destid weight seq linkid
breadth_first NULL 10 2 3 12
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 11 and weight = 2;
latch origid destid weight seq linkid
breadth_first NULL 11 2 3 10
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 12 and weight = 2;
latch origid destid weight seq linkid
breadth_first NULL 12 2 3 11
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 1 and weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 2 and weight = 3;
latch origid destid weight seq linkid
breadth_first NULL 2 3 4 4
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 3 and weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 4 and weight = 3;
latch origid destid weight seq linkid
breadth_first NULL 4 3 4 2
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 5 and weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 6 and weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 7 and weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 8 and weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 9 and weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 10 and weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 11 and weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = 12 and weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND origid = NULL;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND destid = NULL;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first' AND weight = 1;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = 'breadth_first';
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 1;
latch origid destid weight seq linkid
2 1 NULL 2 4 4
2 1 NULL 1 3 3
2 1 NULL 1 2 2
2 1 NULL 0 1 1
SELECT * FROM graph WHERE latch = '2' AND origid = 2;
latch origid destid weight seq linkid
2 2 NULL 3 4 4
2 2 NULL 2 3 3
2 2 NULL 1 2 1
2 2 NULL 0 1 2
SELECT * FROM graph WHERE latch = '2' AND origid = 3;
latch origid destid weight seq linkid
2 3 NULL 2 4 2
2 3 NULL 1 3 4
2 3 NULL 1 2 1
2 3 NULL 0 1 3
SELECT * FROM graph WHERE latch = '2' AND origid = 4;
latch origid destid weight seq linkid
2 4 NULL 3 4 2
2 4 NULL 2 3 1
2 4 NULL 1 2 3
2 4 NULL 0 1 4
SELECT * FROM graph WHERE latch = '2' AND origid = 5;
latch origid destid weight seq linkid
2 5 NULL 1 3 7
2 5 NULL 1 2 6
2 5 NULL 0 1 5
SELECT * FROM graph WHERE latch = '2' AND origid = 6;
latch origid destid weight seq linkid
2 6 NULL 2 3 7
2 6 NULL 1 2 5
2 6 NULL 0 1 6
SELECT * FROM graph WHERE latch = '2' AND origid = 7;
latch origid destid weight seq linkid
2 7 NULL 0 1 7
SELECT * FROM graph WHERE latch = '2' AND origid = 8;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 9;
latch origid destid weight seq linkid
2 9 NULL 0 1 9
SELECT * FROM graph WHERE latch = '2' AND origid = 10;
latch origid destid weight seq linkid
2 10 NULL 2 3 12
2 10 NULL 1 2 11
2 10 NULL 0 1 10
SELECT * FROM graph WHERE latch = '2' AND origid = 11;
latch origid destid weight seq linkid
2 11 NULL 2 3 10
2 11 NULL 1 2 12
2 11 NULL 0 1 11
SELECT * FROM graph WHERE latch = '2' AND origid = 12;
latch origid destid weight seq linkid
2 12 NULL 2 3 11
2 12 NULL 1 2 10
2 12 NULL 0 1 12
SELECT * FROM graph WHERE latch = '2' AND origid = 666;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 1 AND weight = 1;
latch origid destid weight seq linkid
2 1 NULL 1 3 3
2 1 NULL 1 2 2
SELECT * FROM graph WHERE latch = '2' AND origid = 2 AND weight = 1;
latch origid destid weight seq linkid
2 2 NULL 1 2 1
SELECT * FROM graph WHERE latch = '2' AND origid = 3 AND weight = 1;
latch origid destid weight seq linkid
2 3 NULL 1 3 4
2 3 NULL 1 2 1
SELECT * FROM graph WHERE latch = '2' AND origid = 4 AND weight = 1;
latch origid destid weight seq linkid
2 4 NULL 1 2 3
SELECT * FROM graph WHERE latch = '2' AND origid = 5 AND weight = 1;
latch origid destid weight seq linkid
2 5 NULL 1 3 7
2 5 NULL 1 2 6
SELECT * FROM graph WHERE latch = '2' AND origid = 6 AND weight = 1;
latch origid destid weight seq linkid
2 6 NULL 1 2 5
SELECT * FROM graph WHERE latch = '2' AND origid = 7 AND weight = 1;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 8 AND weight = 1;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 9 AND weight = 1;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 10 AND weight = 1;
latch origid destid weight seq linkid
2 10 NULL 1 2 11
SELECT * FROM graph WHERE latch = '2' AND origid = 11 AND weight = 1;
latch origid destid weight seq linkid
2 11 NULL 1 2 12
SELECT * FROM graph WHERE latch = '2' AND origid = 12 AND weight = 1;
latch origid destid weight seq linkid
2 12 NULL 1 2 10
SELECT count(*) FROM graph WHERE latch = '2' AND origid = 1 AND weight = 1;
count(*)
2
SELECT count(*) FROM graph WHERE latch = '2' AND origid = 2 AND weight = 1;
count(*)
1
SELECT count(*) FROM graph WHERE latch = '2' AND origid = 3 AND weight = 1;
count(*)
2
SELECT count(*) FROM graph WHERE latch = '2' AND origid = 4 AND weight = 1;
count(*)
1
SELECT count(*) FROM graph WHERE latch = '2' AND origid = 5 AND weight = 1;
count(*)
2
SELECT count(*) FROM graph WHERE latch = '2' AND origid = 6 AND weight = 1;
count(*)
1
SELECT count(*) FROM graph WHERE latch = '2' AND origid = 7 AND weight = 1;
count(*)
0
SELECT count(*) FROM graph WHERE latch = '2' AND origid = 8 AND weight = 1;
count(*)
0
SELECT count(*) FROM graph WHERE latch = '2' AND origid = 9 AND weight = 1;
count(*)
0
SELECT count(*) FROM graph WHERE latch = '2' AND origid = 10 AND weight = 1;
count(*)
1
SELECT count(*) FROM graph WHERE latch = '2' AND origid = 11 AND weight = 1;
count(*)
1
SELECT count(*) FROM graph WHERE latch = '2' AND origid = 12 AND weight = 1;
count(*)
1
SELECT * FROM graph WHERE latch = '2' AND origid = 1 AND weight = 2;
latch origid destid weight seq linkid
2 1 NULL 2 4 4
SELECT * FROM graph WHERE latch = '2' AND origid = 2 AND weight = 2;
latch origid destid weight seq linkid
2 2 NULL 2 3 3
SELECT * FROM graph WHERE latch = '2' AND origid = 3 AND weight = 2;
latch origid destid weight seq linkid
2 3 NULL 2 4 2
SELECT * FROM graph WHERE latch = '2' AND origid = 4 AND weight = 2;
latch origid destid weight seq linkid
2 4 NULL 2 3 1
SELECT * FROM graph WHERE latch = '2' AND origid = 5 AND weight = 2;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 6 AND weight = 2;
latch origid destid weight seq linkid
2 6 NULL 2 3 7
SELECT * FROM graph WHERE latch = '2' AND origid = 7 AND weight = 2;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 8 AND weight = 2;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 9 AND weight = 2;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 10 AND weight = 2;
latch origid destid weight seq linkid
2 10 NULL 2 3 12
SELECT * FROM graph WHERE latch = '2' AND origid = 11 AND weight = 2;
latch origid destid weight seq linkid
2 11 NULL 2 3 10
SELECT * FROM graph WHERE latch = '2' AND origid = 12 AND weight = 2;
latch origid destid weight seq linkid
2 12 NULL 2 3 11
SELECT * FROM graph WHERE latch = '2' AND origid = 1 AND weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 2 AND weight = 3;
latch origid destid weight seq linkid
2 2 NULL 3 4 4
SELECT * FROM graph WHERE latch = '2' AND origid = 3 AND weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 4 AND weight = 3;
latch origid destid weight seq linkid
2 4 NULL 3 4 2
SELECT * FROM graph WHERE latch = '2' AND origid = 5 AND weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 6 AND weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 7 AND weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 8 AND weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 9 AND weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 10 AND weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 11 AND weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 12 AND weight = 3;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 1 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
2 1 NULL 2 4 4
2 1 NULL 1 3 3
2 1 NULL 1 2 2
SELECT * FROM graph WHERE latch = '2' AND origid = 2 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
2 2 NULL 2 3 3
2 2 NULL 1 2 1
SELECT * FROM graph WHERE latch = '2' AND origid = 3 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
2 3 NULL 2 4 2
2 3 NULL 1 3 4
2 3 NULL 1 2 1
SELECT * FROM graph WHERE latch = '2' AND origid = 4 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
2 4 NULL 2 3 1
2 4 NULL 1 2 3
SELECT * FROM graph WHERE latch = '2' AND origid = 5 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
2 5 NULL 1 3 7
2 5 NULL 1 2 6
SELECT * FROM graph WHERE latch = '2' AND origid = 6 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
2 6 NULL 2 3 7
2 6 NULL 1 2 5
SELECT * FROM graph WHERE latch = '2' AND origid = 7 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 8 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 9 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND origid = 10 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
2 10 NULL 2 3 12
2 10 NULL 1 2 11
SELECT * FROM graph WHERE latch = '2' AND origid = 11 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
2 11 NULL 2 3 10
2 11 NULL 1 2 12
SELECT * FROM graph WHERE latch = '2' AND origid = 12 AND (weight = 1 or weight = 2);
latch origid destid weight seq linkid
2 12 NULL 2 3 11
2 12 NULL 1 2 10
SELECT * FROM graph WHERE latch = '2' AND destid = 1;
latch origid destid weight seq linkid
2 NULL 1 2 4 4
2 NULL 1 1 3 3
2 NULL 1 1 2 2
2 NULL 1 0 1 1
SELECT * FROM graph WHERE latch = '2' AND destid = 12;
latch origid destid weight seq linkid
2 NULL 12 2 3 11
2 NULL 12 1 2 10
2 NULL 12 0 1 12
SELECT * FROM graph WHERE latch = '2' AND destid = 1 and weight = 1;
latch origid destid weight seq linkid
2 NULL 1 1 3 3
2 NULL 1 1 2 2
SELECT * FROM graph WHERE latch = '2' AND origid = NULL;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND destid = NULL;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2' AND weight = 1;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch = '2';
latch origid destid weight seq linkid
# Dijkstras algorithm tests
SELECT * FROM graph WHERE latch='dijkstras' AND origid=1 AND destid=1;
latch origid destid weight seq linkid
dijkstras 1 1 NULL 0 1
SELECT * FROM graph WHERE latch='dijkstras' AND origid=1 AND destid=2;
latch origid destid weight seq linkid
dijkstras 1 2 NULL 0 1
dijkstras 1 2 1 1 2
SELECT * FROM graph WHERE latch='dijkstras' AND origid=2 AND destid=1;
latch origid destid weight seq linkid
dijkstras 2 1 NULL 0 2
dijkstras 2 1 1 1 1
SELECT * FROM graph WHERE latch='dijkstras' AND origid=1 AND destid=4;
latch origid destid weight seq linkid
dijkstras 1 4 NULL 0 1
dijkstras 1 4 1 1 3
dijkstras 1 4 1 2 4
SELECT * FROM graph WHERE latch='dijkstras' AND origid=4 AND destid=1;
latch origid destid weight seq linkid
dijkstras 4 1 NULL 0 4
dijkstras 4 1 1 1 3
dijkstras 4 1 1 2 1
SELECT * FROM graph WHERE latch='dijkstras' AND origid=1 AND destid=5;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch='dijkstras' AND origid=1 AND destid=666;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch='dijkstras' AND origid=5 AND destid=7;
latch origid destid weight seq linkid
dijkstras 5 7 NULL 0 5
dijkstras 5 7 1 1 7
SELECT * FROM graph WHERE latch='dijkstras' AND origid=7 AND destid=5;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch='dijkstras' AND origid=10 AND destid=11;
latch origid destid weight seq linkid
dijkstras 10 11 NULL 0 10
dijkstras 10 11 1 1 11
SELECT * FROM graph WHERE latch='dijkstras' AND origid=10 AND destid=12;
latch origid destid weight seq linkid
dijkstras 10 12 NULL 0 10
dijkstras 10 12 1 1 11
dijkstras 10 12 1 2 12
SELECT * FROM graph WHERE latch='dijkstras' AND origid=11 AND destid=10;
latch origid destid weight seq linkid
dijkstras 11 10 NULL 0 11
dijkstras 11 10 1 1 12
dijkstras 11 10 1 2 10
SELECT * FROM graph WHERE latch='dijkstras' AND origid=11 AND destid=12;
latch origid destid weight seq linkid
dijkstras 11 12 NULL 0 11
dijkstras 11 12 1 1 12
SELECT * FROM graph WHERE latch='dijkstras' AND origid=12 AND destid=10;
latch origid destid weight seq linkid
dijkstras 12 10 NULL 0 12
dijkstras 12 10 1 1 10
SELECT * FROM graph WHERE latch='dijkstras' AND origid=12 AND destid=11;
latch origid destid weight seq linkid
dijkstras 12 11 NULL 0 12
dijkstras 12 11 1 1 10
dijkstras 12 11 1 2 11
SELECT * FROM graph WHERE latch='dijkstras' AND origid=1;
latch origid destid weight seq linkid
dijkstras 1 NULL 2 4 4
dijkstras 1 NULL 1 3 3
dijkstras 1 NULL 1 2 2
dijkstras 1 NULL 0 1 1
SELECT * FROM graph WHERE latch='dijkstras' AND origid=2;
latch origid destid weight seq linkid
dijkstras 2 NULL 3 4 4
dijkstras 2 NULL 2 3 3
dijkstras 2 NULL 1 2 1
dijkstras 2 NULL 0 1 2
SELECT * FROM graph WHERE latch='dijkstras' AND origid=3;
latch origid destid weight seq linkid
dijkstras 3 NULL 2 4 2
dijkstras 3 NULL 1 3 4
dijkstras 3 NULL 1 2 1
dijkstras 3 NULL 0 1 3
SELECT * FROM graph WHERE latch='dijkstras' AND origid=4;
latch origid destid weight seq linkid
dijkstras 4 NULL 3 4 2
dijkstras 4 NULL 2 3 1
dijkstras 4 NULL 1 2 3
dijkstras 4 NULL 0 1 4
SELECT * FROM graph WHERE latch='dijkstras' AND origid=5;
latch origid destid weight seq linkid
dijkstras 5 NULL 1 3 7
dijkstras 5 NULL 1 2 6
dijkstras 5 NULL 0 1 5
SELECT * FROM graph WHERE latch='dijkstras' AND origid=6;
latch origid destid weight seq linkid
dijkstras 6 NULL 2 3 7
dijkstras 6 NULL 1 2 5
dijkstras 6 NULL 0 1 6
SELECT * FROM graph WHERE latch='dijkstras' AND origid=7;
latch origid destid weight seq linkid
dijkstras 7 NULL 0 1 7
SELECT * FROM graph WHERE latch='dijkstras' AND origid=8;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch='dijkstras' AND origid=9;
latch origid destid weight seq linkid
dijkstras 9 NULL 0 1 9
SELECT * FROM graph WHERE latch='dijkstras' AND origid=10;
latch origid destid weight seq linkid
dijkstras 10 NULL 2 3 12
dijkstras 10 NULL 1 2 11
dijkstras 10 NULL 0 1 10
SELECT * FROM graph WHERE latch='dijkstras' AND origid=11;
latch origid destid weight seq linkid
dijkstras 11 NULL 2 3 10
dijkstras 11 NULL 1 2 12
dijkstras 11 NULL 0 1 11
SELECT * FROM graph WHERE latch='dijkstras' AND origid=12;
latch origid destid weight seq linkid
dijkstras 12 NULL 2 3 11
dijkstras 12 NULL 1 2 10
dijkstras 12 NULL 0 1 12
SELECT * FROM graph WHERE latch='dijkstras' AND origid=666;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch='dijkstras' AND destid=1;
latch origid destid weight seq linkid
dijkstras NULL 1 2 4 4
dijkstras NULL 1 1 3 3
dijkstras NULL 1 1 2 2
dijkstras NULL 1 0 1 1
SELECT * FROM graph WHERE latch='dijkstras' AND destid=2;
latch origid destid weight seq linkid
dijkstras NULL 2 3 4 4
dijkstras NULL 2 2 3 3
dijkstras NULL 2 1 2 1
dijkstras NULL 2 0 1 2
SELECT * FROM graph WHERE latch='dijkstras' AND destid=3;
latch origid destid weight seq linkid
dijkstras NULL 3 2 4 2
dijkstras NULL 3 1 3 4
dijkstras NULL 3 1 2 1
dijkstras NULL 3 0 1 3
SELECT * FROM graph WHERE latch='dijkstras' AND destid=4;
latch origid destid weight seq linkid
dijkstras NULL 4 3 4 2
dijkstras NULL 4 2 3 1
dijkstras NULL 4 1 2 3
dijkstras NULL 4 0 1 4
SELECT * FROM graph WHERE latch='dijkstras' AND destid=5;
latch origid destid weight seq linkid
dijkstras NULL 5 1 3 7
dijkstras NULL 5 1 2 6
dijkstras NULL 5 0 1 5
SELECT * FROM graph WHERE latch='dijkstras' AND destid=6;
latch origid destid weight seq linkid
dijkstras NULL 6 2 3 7
dijkstras NULL 6 1 2 5
dijkstras NULL 6 0 1 6
SELECT * FROM graph WHERE latch='dijkstras' AND destid=7;
latch origid destid weight seq linkid
dijkstras NULL 7 0 1 7
SELECT * FROM graph WHERE latch='dijkstras' AND destid=8;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch='dijkstras' AND destid=9;
latch origid destid weight seq linkid
dijkstras NULL 9 0 1 9
SELECT * FROM graph WHERE latch='dijkstras' AND destid=10;
latch origid destid weight seq linkid
dijkstras NULL 10 2 3 12
dijkstras NULL 10 1 2 11
dijkstras NULL 10 0 1 10
SELECT * FROM graph WHERE latch='dijkstras' AND destid=11;
latch origid destid weight seq linkid
dijkstras NULL 11 2 3 10
dijkstras NULL 11 1 2 12
dijkstras NULL 11 0 1 11
SELECT * FROM graph WHERE latch='dijkstras' AND destid=12;
latch origid destid weight seq linkid
dijkstras NULL 12 2 3 11
dijkstras NULL 12 1 2 10
dijkstras NULL 12 0 1 12
# legacy string number
SELECT * FROM graph WHERE latch='1' AND origid=1 AND destid=1;
latch origid destid weight seq linkid
1 1 1 NULL 0 1
SELECT * FROM graph WHERE latch='1' AND origid=1 AND destid=2;
latch origid destid weight seq linkid
1 1 2 NULL 0 1
1 1 2 1 1 2
SELECT * FROM graph WHERE latch='1' AND origid=2 AND destid=1;
latch origid destid weight seq linkid
1 2 1 NULL 0 2
1 2 1 1 1 1
SELECT * FROM graph WHERE latch='1' AND origid=1 AND destid=4;
latch origid destid weight seq linkid
1 1 4 NULL 0 1
1 1 4 1 1 3
1 1 4 1 2 4
SELECT * FROM graph WHERE latch='1' AND origid=4 AND destid=1;
latch origid destid weight seq linkid
1 4 1 NULL 0 4
1 4 1 1 1 3
1 4 1 1 2 1
SELECT * FROM graph WHERE latch='1' AND origid=1 AND destid=5;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch='1' AND origid=1 AND destid=666;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch='1' AND origid=5 AND destid=7;
latch origid destid weight seq linkid
1 5 7 NULL 0 5
1 5 7 1 1 7
SELECT * FROM graph WHERE latch='1' AND origid=7 AND destid=5;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch='1' AND origid=10 AND destid=11;
latch origid destid weight seq linkid
1 10 11 NULL 0 10
1 10 11 1 1 11
SELECT * FROM graph WHERE latch='1' AND origid=10 AND destid=12;
latch origid destid weight seq linkid
1 10 12 NULL 0 10
1 10 12 1 1 11
1 10 12 1 2 12
SELECT * FROM graph WHERE latch='1' AND origid=11 AND destid=10;
latch origid destid weight seq linkid
1 11 10 NULL 0 11
1 11 10 1 1 12
1 11 10 1 2 10
SELECT * FROM graph WHERE latch='1' AND origid=11 AND destid=12;
latch origid destid weight seq linkid
1 11 12 NULL 0 11
1 11 12 1 1 12
SELECT * FROM graph WHERE latch='1' AND origid=12 AND destid=10;
latch origid destid weight seq linkid
1 12 10 NULL 0 12
1 12 10 1 1 10
SELECT * FROM graph WHERE latch='1' AND origid=12 AND destid=11;
latch origid destid weight seq linkid
1 12 11 NULL 0 12
1 12 11 1 1 10
1 12 11 1 2 11
SELECT * FROM graph WHERE latch='1' AND origid=1;
latch origid destid weight seq linkid
1 1 NULL 2 4 4
1 1 NULL 1 3 3
1 1 NULL 1 2 2
1 1 NULL 0 1 1
SELECT * FROM graph WHERE latch='1' AND origid=2;
latch origid destid weight seq linkid
1 2 NULL 3 4 4
1 2 NULL 2 3 3
1 2 NULL 1 2 1
1 2 NULL 0 1 2
SELECT * FROM graph WHERE latch='1' AND origid=3;
latch origid destid weight seq linkid
1 3 NULL 2 4 2
1 3 NULL 1 3 4
1 3 NULL 1 2 1
1 3 NULL 0 1 3
SELECT * FROM graph WHERE latch='1' AND origid=4;
latch origid destid weight seq linkid
1 4 NULL 3 4 2
1 4 NULL 2 3 1
1 4 NULL 1 2 3
1 4 NULL 0 1 4
SELECT * FROM graph WHERE latch='1' AND origid=5;
latch origid destid weight seq linkid
1 5 NULL 1 3 7
1 5 NULL 1 2 6
1 5 NULL 0 1 5
SELECT * FROM graph WHERE latch='1' AND origid=6;
latch origid destid weight seq linkid
1 6 NULL 2 3 7
1 6 NULL 1 2 5
1 6 NULL 0 1 6
SELECT * FROM graph WHERE latch='1' AND origid=7;
latch origid destid weight seq linkid
1 7 NULL 0 1 7
SELECT * FROM graph WHERE latch='1' AND origid=8;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch='1' AND origid=9;
latch origid destid weight seq linkid
1 9 NULL 0 1 9
SELECT * FROM graph WHERE latch='1' AND origid=10;
latch origid destid weight seq linkid
1 10 NULL 2 3 12
1 10 NULL 1 2 11
1 10 NULL 0 1 10
SELECT * FROM graph WHERE latch='1' AND origid=11;
latch origid destid weight seq linkid
1 11 NULL 2 3 10
1 11 NULL 1 2 12
1 11 NULL 0 1 11
SELECT * FROM graph WHERE latch='1' AND origid=12;
latch origid destid weight seq linkid
1 12 NULL 2 3 11
1 12 NULL 1 2 10
1 12 NULL 0 1 12
SELECT * FROM graph WHERE latch='1' AND origid=666;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch='1' AND destid=1;
latch origid destid weight seq linkid
1 NULL 1 2 4 4
1 NULL 1 1 3 3
1 NULL 1 1 2 2
1 NULL 1 0 1 1
SELECT * FROM graph WHERE latch='1' AND destid=2;
latch origid destid weight seq linkid
1 NULL 2 3 4 4
1 NULL 2 2 3 3
1 NULL 2 1 2 1
1 NULL 2 0 1 2
SELECT * FROM graph WHERE latch='1' AND destid=3;
latch origid destid weight seq linkid
1 NULL 3 2 4 2
1 NULL 3 1 3 4
1 NULL 3 1 2 1
1 NULL 3 0 1 3
SELECT * FROM graph WHERE latch='1' AND destid=4;
latch origid destid weight seq linkid
1 NULL 4 3 4 2
1 NULL 4 2 3 1
1 NULL 4 1 2 3
1 NULL 4 0 1 4
SELECT * FROM graph WHERE latch='1' AND destid=5;
latch origid destid weight seq linkid
1 NULL 5 1 3 7
1 NULL 5 1 2 6
1 NULL 5 0 1 5
SELECT * FROM graph WHERE latch='1' AND destid=6;
latch origid destid weight seq linkid
1 NULL 6 2 3 7
1 NULL 6 1 2 5
1 NULL 6 0 1 6
SELECT * FROM graph WHERE latch='1' AND destid=7;
latch origid destid weight seq linkid
1 NULL 7 0 1 7
SELECT * FROM graph WHERE latch='1' AND destid=8;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch='1' AND destid=9;
latch origid destid weight seq linkid
1 NULL 9 0 1 9
SELECT * FROM graph WHERE latch='1' AND destid=10;
latch origid destid weight seq linkid
1 NULL 10 2 3 12
1 NULL 10 1 2 11
1 NULL 10 0 1 10
SELECT * FROM graph WHERE latch='1' AND destid=11;
latch origid destid weight seq linkid
1 NULL 11 2 3 10
1 NULL 11 1 2 12
1 NULL 11 0 1 11
SELECT * FROM graph WHERE latch='1' AND destid=12;
latch origid destid weight seq linkid
1 NULL 12 2 3 11
1 NULL 12 1 2 10
1 NULL 12 0 1 12
SELECT count(*) FROM graph;
count(*)
13
SELECT count(*) FROM graph_base;
count(*)
13
INSERT INTO graph_base(from_id, to_id) VALUES (11,13);
INSERT INTO graph_base(from_id, to_id) VALUES (10,14);
INSERT INTO graph_base(from_id, to_id) VALUES (14,13);
SELECT * FROM graph WHERE latch='dijkstras' AND origid=10 AND destid=13;
latch origid destid weight seq linkid
dijkstras 10 13 NULL 0 10
dijkstras 10 13 1 1 11
dijkstras 10 13 1 2 13
DELETE FROM graph_base where from_id=10 and to_id=11;
INSERT INTO graph_base(from_id, to_id) VALUES (10,15);
INSERT INTO graph_base(from_id, to_id) VALUES (15,13);
SELECT * FROM graph WHERE latch='dijkstras' AND origid=10 AND destid=13;
latch origid destid weight seq linkid
dijkstras 10 13 NULL 0 10
dijkstras 10 13 1 1 14
dijkstras 10 13 1 2 13
INSERT INTO graph_base(from_id, to_id) VALUES (10,11);
SELECT * FROM graph WHERE latch='dijkstras' AND origid=10 AND destid=13;
latch origid destid weight seq linkid
dijkstras 10 13 NULL 0 10
dijkstras 10 13 1 1 11
dijkstras 10 13 1 2 13
SELECT count(*) FROM graph;
count(*)
18
SELECT count(*) FROM graph_base;
count(*)
18
SELECT * FROM graph WHERE latch='dijkstras' AND origid=1;
latch origid destid weight seq linkid
dijkstras 1 NULL 2 4 4
dijkstras 1 NULL 1 3 3
dijkstras 1 NULL 1 2 2
dijkstras 1 NULL 0 1 1
INSERT INTO graph_base(from_id, to_id) VALUES (21,22);
SELECT * FROM graph WHERE latch='dijkstras' AND origid=21;
latch origid destid weight seq linkid
dijkstras 21 NULL 1 2 22
dijkstras 21 NULL 0 1 21
SELECT * FROM graph WHERE latch='dijkstras' AND origid=22;
latch origid destid weight seq linkid
dijkstras 22 NULL 0 1 22
INSERT INTO graph_base(from_id, to_id) VALUES (4,17);
SELECT * FROM graph WHERE latch='dijkstras' AND origid=1;
latch origid destid weight seq linkid
dijkstras 1 NULL 3 5 17
dijkstras 1 NULL 2 4 4
dijkstras 1 NULL 1 3 3
dijkstras 1 NULL 1 2 2
dijkstras 1 NULL 0 1 1
INSERT INTO graph_base(from_id, to_id) VALUES (4,16);
SELECT * FROM graph WHERE latch='dijkstras' AND origid=1;
latch origid destid weight seq linkid
dijkstras 1 NULL 3 6 17
dijkstras 1 NULL 3 5 16
dijkstras 1 NULL 2 4 4
dijkstras 1 NULL 1 3 3
dijkstras 1 NULL 1 2 2
dijkstras 1 NULL 0 1 1
INSERT INTO graph_base(from_id, to_id) VALUES (17,18);
SELECT * FROM graph WHERE latch='dijkstras' AND origid=1;
latch origid destid weight seq linkid
dijkstras 1 NULL 4 7 18
dijkstras 1 NULL 3 6 17
dijkstras 1 NULL 3 5 16
dijkstras 1 NULL 2 4 4
dijkstras 1 NULL 1 3 3
dijkstras 1 NULL 1 2 2
dijkstras 1 NULL 0 1 1
SELECT * FROM graph WHERE latch='dijkstras' AND destid=1;
latch origid destid weight seq linkid
dijkstras NULL 1 4 7 18
dijkstras NULL 1 3 6 17
dijkstras NULL 1 3 5 16
dijkstras NULL 1 2 4 4
dijkstras NULL 1 1 3 3
dijkstras NULL 1 1 2 2
dijkstras NULL 1 0 1 1
# Now we add a connection from 4->6
INSERT INTO graph_base (from_id,to_id) VALUES (4,6);
SELECT * FROM graph;
latch origid destid weight seq linkid
NULL 1 2 1 NULL NULL
NULL 2 1 1 NULL NULL
NULL 1 3 1 NULL NULL
NULL 3 1 1 NULL NULL
NULL 3 4 1 NULL NULL
NULL 4 3 1 NULL NULL
NULL 5 6 1 NULL NULL
NULL 6 5 1 NULL NULL
NULL 5 7 1 NULL NULL
NULL 9 9 1 NULL NULL
NULL 10 15 1 NULL NULL
NULL 11 12 1 NULL NULL
NULL 12 10 1 NULL NULL
NULL 11 13 1 NULL NULL
NULL 10 14 1 NULL NULL
NULL 14 13 1 NULL NULL
NULL 15 13 1 NULL NULL
NULL 10 11 1 NULL NULL
NULL 21 22 1 NULL NULL
NULL 4 17 1 NULL NULL
NULL 4 16 1 NULL NULL
NULL 17 18 1 NULL NULL
NULL 4 6 1 NULL NULL
SELECT count(*) FROM graph;
count(*)
23
SELECT count(*) FROM graph_base;
count(*)
23
# And delete all references to node 5
DELETE FROM graph_base WHERE from_id=5;
DELETE FROM graph_base WHERE from_id=3 AND to_id=5;
# which means there is a path in one direction only 1>3>4>6
SELECT * FROM graph WHERE latch='dijkstras' AND origid=1 AND destid=6;
latch origid destid weight seq linkid
dijkstras 1 6 NULL 0 1
dijkstras 1 6 1 1 3
dijkstras 1 6 1 2 4
dijkstras 1 6 1 3 6
# but not 6>4>3>1 (so no result)
SELECT * FROM graph WHERE latch='dijkstras' AND origid=6 AND destid=1;
latch origid destid weight seq linkid
SELECT * FROM graph WHERE latch='1' AND origid=1 AND destid=6;
latch origid destid weight seq linkid
1 1 6 NULL 0 1
1 1 6 1 1 3
1 1 6 1 2 4
1 1 6 1 3 6
SELECT * FROM graph WHERE latch='1' AND origid=6 AND destid=1;
latch origid destid weight seq linkid
DELETE FROM graph_base;
FLUSH TABLES;
TRUNCATE TABLE graph_base;
DROP TABLE graph_base;
DROP TABLE graph;
......@@ -546,73 +546,3 @@ TRUNCATE TABLE graph_base;
DROP TABLE graph_base;
DROP TABLE graph;
#-- Reminder - the basic spec is at http://openquery.com/graph/doc
#-- Query edges stored in graph engine (latch=NULL)
#-- SELECT * FROM foo;
#-- Results:
#-- vertex id for origin of edge in origid column.
#-- vertex id for destination of edge in destid column.
#-- weight of edge in weight column.
#-- Essentially this returns the values (origid,destid pairs with optional weight) you put in, in this mode OQGRAPH looks very close to a real table. But it also does nothing special, it's just store/retrieve for those columns. The other columns will be returned as NULL.
#--
#-- Query vertices stored in graph engine (latch=0)
#-- SELECT * FROM foo WHERE latch = 0;
#-- Results:
#-- vertex id in linkid column
#--
#-- Query out-edges for vertex (latch=0 AND origid=N)
#-- SELECT * FROM foo WHERE latch = 0 AND origid = 2;
#-- Results:
#-- vertex id in linkid column
#-- edge weight in weight column
#--
#-- Query in-edges for vertex (latch=0 AND destid=N)
#-- SELECT * FROM foo WHERE latch = 0 AND destid = 6;
#-- Results:
#-- vertex id in linkid column
#-- edge weight in weight column
#--
#-- Dijkstra's shortest path algorithm (latch=1)
#-- Find shortest path:
#-- SELECT * FROM foo WHERE latch = 1 AND origid = 1 AND destid = 6;
#-- Results:
#-- latch, origid, destid are same as input.
#-- vertex id of the current step in linkid column.
#-- weight of traversed edge in weight column.
#-- step counter in seq column, so you can sort and use the result (starting at step 0).
#-- Example: SELECT GROUP_CONCAT(linkid ORDER BY seq) ...
#--
#-- Find reachable vertices:
#-- SELECT * FROM foo WHERE latch = 1 AND origid = 1;
#-- Results:
#-- latch, origid, destid are same as input.
#-- vertex id in linkid column.
#-- aggregate of weights in weight column.
#--
#-- Find originating vertices:
#-- SELECT * FROM foo WHERE latch = 1 AND destid = 6;
#-- Results:
#-- latch, origid, destid are same as input.
#-- vertex id in linkid column.
#-- aggregate of weights in weight column.
#--
#-- Breadth-first search (latch=2, assumes that each vertex is weight 1)
#-- Find shortest path:
#-- SELECT * FROM foo WHERE latch = 2 AND origid = 1 AND destid = 6;
#-- Results:
#-- vertex id in linkid column.
#-- weight column = 1 for each hop.
#--
#-- Find reachable vertices:
#-- SELECT * FROM foo WHERE latch = 2 AND origid = 1;
#-- Results:
#-- vertex id in linkid column.
#-- computed number of hops in weight column.
#--
#-- Find originating vertices:
#-- SELECT * FROM foo WHERE latch = 2 AND destid = 6;
#-- Results:
#-- vertex id in linkid column.
#-- computed number of hops in weight column.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment