summaryrefslogtreecommitdiff
path: root/mysql-test/suite/oqgraph
diff options
context:
space:
mode:
authorAndrew McDonnell <bugs@andrewmcdonnell.net>2013-08-16 23:56:19 +0930
committerAndrew McDonnell <bugs@andrewmcdonnell.net>2013-08-16 23:56:19 +0930
commit007ff24cd4fd162eb4bb01c81022db85b4d23d22 (patch)
tree40131ba09603211f8d7c35d190e949fd0e91bc61 /mysql-test/suite/oqgraph
parentda87bf53c79ef07cd19c34c2820ce37abf627c12 (diff)
downloadmariadb-git-007ff24cd4fd162eb4bb01c81022db85b4d23d22.tar.gz
Another variant of 796647
Diffstat (limited to 'mysql-test/suite/oqgraph')
-rw-r--r--mysql-test/suite/oqgraph/regression_796647c.test79
1 files changed, 79 insertions, 0 deletions
diff --git a/mysql-test/suite/oqgraph/regression_796647c.test b/mysql-test/suite/oqgraph/regression_796647c.test
new file mode 100644
index 00000000000..c45083ade32
--- /dev/null
+++ b/mysql-test/suite/oqgraph/regression_796647c.test
@@ -0,0 +1,79 @@
+--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);
+
+SELECT count(*) FROM graph;
+SELECT count(*) FROM graph_base;
+
+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 (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,6);
+
+#-- Without this when the line immediately after gets executed
+#-- we get a segfault
+SELECT count(*) FROM graph;
+SELECT count(*) 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;
+
+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;
+
+