mirror of
https://github.com/MariaDB/server.git
synced 2025-09-25 18:39:15 +02:00
97 lines
3 KiB
Text
97 lines
3 KiB
Text
--disable_warnings
|
|
DROP TABLE IF EXISTS graph_base;
|
|
DROP TABLE IF EXISTS graph;
|
|
--enable_warnings
|
|
|
|
# Create the backing store
|
|
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);
|
|
|
|
SELECT count(*) FROM graph;
|
|
SELECT count(*) FROM graph_base;
|
|
|
|
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);
|
|
|
|
SELECT count(*) FROM graph;
|
|
SELECT count(*) FROM graph_base;
|
|
|
|
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 count(*) FROM graph;
|
|
SELECT count(*) FROM graph_base;
|
|
|
|
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);
|
|
INSERT INTO graph_base(from_id, to_id) VALUES (10,11);
|
|
|
|
SELECT count(*) FROM graph;
|
|
SELECT count(*) FROM graph_base;
|
|
|
|
INSERT INTO graph_base(from_id, to_id) VALUES (21,22);
|
|
INSERT INTO graph_base(from_id, to_id) VALUES (4,17);
|
|
INSERT INTO graph_base(from_id, to_id) VALUES (4,16);
|
|
INSERT INTO graph_base(from_id, to_id) VALUES (17,18);
|
|
INSERT INTO graph_base (from_id,to_id) VALUES (4,6);
|
|
|
|
#-- Without this when the line immediately after gets executed
|
|
#-- we get a segfault
|
|
SELECT count(*) FROM graph;
|
|
SELECT count(*) FROM graph_base;
|
|
SELECT * from graph;
|
|
SELECT * from graph where latch='0';
|
|
SELECT * from graph_base;
|
|
|
|
--echo # 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;
|
|
|
|
#-- The following queries would currently return incorrect results
|
|
#-- 6 rows instead of 21
|
|
#-- Maybe manifestation of https://bugs.launchpad.net/oqgraph/+bug/796647
|
|
--echo # This is currently bogus:
|
|
SELECT count(*) FROM graph;
|
|
SELECT count(*) FROM graph_base;
|
|
SELECT * from graph;
|
|
SELECT * from graph where latch='0';
|
|
SELECT * from graph_base;
|
|
|
|
DELETE FROM graph_base;
|
|
|
|
#-- The following line would hang mysqld currently, see bug https://bugs.launchpad.net/oqgraph/+bug/1195735
|
|
#-- SELECT * FROM graph;
|
|
|
|
FLUSH TABLES;
|
|
TRUNCATE TABLE graph_base;
|
|
|
|
DROP TABLE graph_base;
|
|
DROP TABLE graph;
|
|
|
|
|