summaryrefslogtreecommitdiff
path: root/storage/oqgraph/mysql-test
diff options
context:
space:
mode:
authorandrew <andrew@atlantis4.andrewmcdonnell.net>2014-04-02 22:18:43 +1030
committerandrew <andrew@atlantis4.andrewmcdonnell.net>2014-04-02 22:18:43 +1030
commitf77539092d17e645ba54ca89b8e28a99506bca6a (patch)
tree3be7c37d0f21b2a1190bb1ed9ef03dc4d3a21a99 /storage/oqgraph/mysql-test
parent0fa9865e8b9474b60e78ce553ae2f8563250de93 (diff)
parentb1a1a79a69c0cdb21334002693d05237a02ede98 (diff)
downloadmariadb-git-f77539092d17e645ba54ca89b8e28a99506bca6a.tar.gz
Merged latest trunk
Diffstat (limited to 'storage/oqgraph/mysql-test')
-rw-r--r--storage/oqgraph/mysql-test/oqgraph/connections_mdev5748.result32
-rw-r--r--storage/oqgraph/mysql-test/oqgraph/connections_mdev5748.test37
-rw-r--r--storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.opt1
-rw-r--r--storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.result42
-rw-r--r--storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.test50
-rw-r--r--storage/oqgraph/mysql-test/oqgraph/suite.pm3
6 files changed, 165 insertions, 0 deletions
diff --git a/storage/oqgraph/mysql-test/oqgraph/connections_mdev5748.result b/storage/oqgraph/mysql-test/oqgraph/connections_mdev5748.result
new file mode 100644
index 00000000000..3d9c13bd733
--- /dev/null
+++ b/storage/oqgraph/mysql-test/oqgraph/connections_mdev5748.result
@@ -0,0 +1,32 @@
+CREATE TABLE oq_backing (
+origid INT UNSIGNED NOT NULL,
+destid INT UNSIGNED NOT NULL,
+weight DOUBLE NOT NULL,
+PRIMARY KEY (origid, destid),
+KEY (destid)
+);
+CREATE TABLE oq_table (
+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='oq_backing' origid='origid' destid='destid' weight='weight';
+flush tables;
+show fields in oq_table;
+Field Type Null Key Default Extra
+latch varchar(32) YES MUL NULL
+origid bigint(20) unsigned YES NULL
+destid bigint(20) unsigned YES NULL
+weight double YES NULL
+seq bigint(20) unsigned YES NULL
+linkid bigint(20) unsigned YES NULL
+show tables;
+Tables_in_test
+oq_backing
+oq_table
+drop table oq_table, oq_backing;
diff --git a/storage/oqgraph/mysql-test/oqgraph/connections_mdev5748.test b/storage/oqgraph/mysql-test/oqgraph/connections_mdev5748.test
new file mode 100644
index 00000000000..9d7fab722c0
--- /dev/null
+++ b/storage/oqgraph/mysql-test/oqgraph/connections_mdev5748.test
@@ -0,0 +1,37 @@
+#
+# MDEV-5748 Assertion `status_var.memory_used == 0' fails on disconnect after opening an OQGRAPH table
+#
+
+# try to open oqgraph table in one connection and use in another:
+
+--connect (con1,localhost,root,,)
+
+CREATE TABLE oq_backing (
+ origid INT UNSIGNED NOT NULL,
+ destid INT UNSIGNED NOT NULL,
+ weight DOUBLE NOT NULL,
+ PRIMARY KEY (origid, destid),
+ KEY (destid)
+);
+
+CREATE TABLE oq_table (
+ 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='oq_backing' origid='origid' destid='destid' weight='weight';
+
+flush tables;
+show fields in oq_table;
+--disconnect con1
+
+--connection default
+show tables;
+
+drop table oq_table, oq_backing;
+
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..731c6726247
--- /dev/null
+++ b/storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.result
@@ -0,0 +1,42 @@
+DROP TABLE IF EXISTS graph_base;
+DROP TABLE IF EXISTS graph;
+call mtr.add_suppression("graph_base is open on delete");
+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..19cbfe7dbe3
--- /dev/null
+++ b/storage/oqgraph/mysql-test/oqgraph/regression_mdev5744.test
@@ -0,0 +1,50 @@
+# 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
+
+call mtr.add_suppression("graph_base is open on delete");
+
+# 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;
+
diff --git a/storage/oqgraph/mysql-test/oqgraph/suite.pm b/storage/oqgraph/mysql-test/oqgraph/suite.pm
index 172c71c0e4c..118ecfa7c60 100644
--- a/storage/oqgraph/mysql-test/oqgraph/suite.pm
+++ b/storage/oqgraph/mysql-test/oqgraph/suite.pm
@@ -5,6 +5,9 @@ package My::Suite::OQGraph;
return "No OQGraph" unless $ENV{HA_OQGRAPH_SO} or
$::mysqld_variables{'oqgraph'} eq "ON";
+# as long as OQGraph defines MYSQL_SERVER it cannot run in embedded
+return "Not run for embedded server" if $::opt_embedded_server;
+
sub is_default { 1 }
bless { };