diff options
author | andrew <andrew@atlantis4.andrewmcdonnell.net> | 2014-04-02 22:18:43 +1030 |
---|---|---|
committer | andrew <andrew@atlantis4.andrewmcdonnell.net> | 2014-04-02 22:18:43 +1030 |
commit | f77539092d17e645ba54ca89b8e28a99506bca6a (patch) | |
tree | 3be7c37d0f21b2a1190bb1ed9ef03dc4d3a21a99 /storage/oqgraph/mysql-test | |
parent | 0fa9865e8b9474b60e78ce553ae2f8563250de93 (diff) | |
parent | b1a1a79a69c0cdb21334002693d05237a02ede98 (diff) | |
download | mariadb-git-f77539092d17e645ba54ca89b8e28a99506bca6a.tar.gz |
Merged latest trunk
Diffstat (limited to 'storage/oqgraph/mysql-test')
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 { }; |