summaryrefslogtreecommitdiff
path: root/storage/oqgraph/mysql-test
diff options
context:
space:
mode:
authorElena Stepanova <elenst@wheezy-64.home>2014-02-27 14:31:39 +0400
committerElena Stepanova <elenst@wheezy-64.home>2014-02-27 14:31:39 +0400
commit560a526bc4c982e2b62682959c7f47d5a171602c (patch)
tree058f3abeeb79fa975838c7d677d336ac9584c50d /storage/oqgraph/mysql-test
parent5fcb6d4096d45ba5a9fc48c82f45f32f7c5fa5cf (diff)
downloadmariadb-git-560a526bc4c982e2b62682959c7f47d5a171602c.tar.gz
MDEV-5744 OQGRAPH backing table changes not reflected in OQGRAPH table
Disable query cache for OQGRAPH
Diffstat (limited to 'storage/oqgraph/mysql-test')
-rw-r--r--storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.opt1
-rw-r--r--storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.result41
-rw-r--r--storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.test48
3 files changed, 90 insertions, 0 deletions
diff --git a/storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.opt b/storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.opt
new file mode 100644
index 00000000000..a4548161f9b
--- /dev/null
+++ b/storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.opt
@@ -0,0 +1 @@
+--query_cache_type=ON
diff --git a/storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.result b/storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.result
new file mode 100644
index 00000000000..efe520e16a5
--- /dev/null
+++ b/storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.result
@@ -0,0 +1,41 @@
+DROP TABLE IF EXISTS graph_base;
+DROP TABLE IF EXISTS graph;
+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);
+SET @query_cache_size.saved = @@query_cache_size;
+SET GLOBAL query_cache_size = 1024*1024;
+SELECT * FROM graph;
+latch origid destid weight seq linkid
+NULL 1 2 1 NULL NULL
+NULL 2 1 1 NULL NULL
+UPDATE graph_base SET to_id = 20 WHERE from_id = 1;
+SELECT * FROM graph;
+latch origid destid weight seq linkid
+NULL 1 20 1 NULL NULL
+NULL 2 1 1 NULL NULL
+SELECT SQL_NO_CACHE * FROM graph;
+latch origid destid weight seq linkid
+NULL 1 20 1 NULL NULL
+NULL 2 1 1 NULL NULL
+SET GLOBAL query_cache_size = 0;
+SELECT SQL_NO_CACHE * FROM graph;
+latch origid destid weight seq linkid
+NULL 1 20 1 NULL NULL
+NULL 2 1 1 NULL NULL
+DROP TABLE graph_base, graph;
+SET GLOBAL query_cache_size = @query_cache_size.saved;
diff --git a/storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.test b/storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.test
new file mode 100644
index 00000000000..9ba30ee2f76
--- /dev/null
+++ b/storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.test
@@ -0,0 +1,48 @@
+# Regression test for https://mariadb.atlassian.net/browse/MDEV-5744
+#--reproduce bug where changes to backing table data are not reflected
+# in a graph table due to query caching
+
+--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);
+
+SET @query_cache_size.saved = @@query_cache_size;
+SET GLOBAL query_cache_size = 1024*1024;
+
+SELECT * FROM graph;
+UPDATE graph_base SET to_id = 20 WHERE from_id = 1;
+
+SELECT * FROM graph;
+SELECT SQL_NO_CACHE * FROM graph;
+
+SET GLOBAL query_cache_size = 0;
+
+SELECT SQL_NO_CACHE * FROM graph;
+
+DROP TABLE graph_base, graph;
+SET GLOBAL query_cache_size = @query_cache_size.saved;
+