Commit e9a20826 authored by Monty's avatar Monty

Merge remote-tracking branch 'origin/10.2' into bb-10.2-ext

Conflicts:
	mysql-test/r/cte_nonrecursive.result
	mysql-test/suite/galera/r/galera_bf_abort.result
	mysql-test/suite/galera/r/galera_bf_abort_get_lock.result
	mysql-test/suite/galera/r/galera_bf_abort_sleep.result
	mysql-test/suite/galera/r/galera_enum.result
	mysql-test/suite/galera/r/galera_fk_conflict.result
	mysql-test/suite/galera/r/galera_insert_multi.result
	mysql-test/suite/galera/r/galera_many_indexes.result
	mysql-test/suite/galera/r/galera_mdl_race.result
	mysql-test/suite/galera/r/galera_nopk_bit.result
	mysql-test/suite/galera/r/galera_nopk_blob.result
	mysql-test/suite/galera/r/galera_nopk_large_varchar.result
	mysql-test/suite/galera/r/galera_nopk_unicode.result
	mysql-test/suite/galera/r/galera_pk_bigint_signed.result
	mysql-test/suite/galera/r/galera_pk_bigint_unsigned.result
	mysql-test/suite/galera/r/galera_serializable.result
	mysql-test/suite/galera/r/galera_toi_drop_database.result
	mysql-test/suite/galera/r/galera_toi_lock_exclusive.result
	mysql-test/suite/galera/r/galera_toi_truncate.result
	mysql-test/suite/galera/r/galera_unicode_pk.result
	mysql-test/suite/galera/r/galera_var_auto_inc_control_off.result
	mysql-test/suite/galera/r/galera_wsrep_log_conficts.result
	sql/field.cc
	sql/rpl_gtid.cc
	sql/share/errmsg-utf8.txt
	sql/sql_acl.cc
	sql/sql_parse.cc
	sql/sql_partition_admin.cc
	sql/sql_prepare.cc
	sql/sql_repl.cc
	sql/sql_table.cc
	sql/sql_yacc.yy
parents 1a1bda22 287d1053
MYSQL_VERSION_MAJOR=10 MYSQL_VERSION_MAJOR=10
MYSQL_VERSION_MINOR=2 MYSQL_VERSION_MINOR=2
MYSQL_VERSION_PATCH=12 MYSQL_VERSION_PATCH=13
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
[redundant]
innodb_default_row_format=redundant
[compact]
innodb_default_row_format=compact
[dynamic]
innodb_default_row_format=dynamic
# The goal of including this file is to enable innodb_default_row_format
# combinations (see include/innodb_row_format.combinations)
--source include/have_innodb.inc
# include/wait_innodb_all_purged.inc
#
# SUMMARY
#
# Waits until purged all undo records of innodb, or operation times out.
#
# USAGE
#
# --source include/wait_innodb_all_purged.inc
#
--source include/have_innodb.inc
--source include/have_debug.inc
--disable_query_log
let $wait_counter_init= 300;
if ($wait_timeout)
{
let $wait_counter_init= `SELECT $wait_timeout * 10`;
}
# Reset $wait_timeout so that its value won't be used on subsequent
# calls, and default will be used instead.
let $wait_timeout= 0;
let $wait_counter= $wait_counter_init;
# Keep track of how many times the wait condition is tested
let $wait_condition_reps= 0;
let $prev_trx_age= 0;
while ($wait_counter)
{
--disable_warnings
let $trx_age = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS
WHERE VARIABLE_NAME = 'INNODB_PURGE_TRX_ID_AGE';`;
--enable_warnings
if ($trx_age != $prev_trx_age)
{
let $wait_counter= $wait_counter_init;
let $prev_trx_age= $trx_age;
}
let $success= `SELECT $trx_age < 1`;
inc $wait_condition_reps;
if ($success)
{
let $wait_counter= 0;
}
if (!$success)
{
real_sleep 0.1;
dec $wait_counter;
}
}
if (!$success)
{
echo Timeout in wait_innodb_all_purged.inc for INNODB_PURGE_TRX_ID_AGE = $trx_age;
}
--enable_query_log
DROP TABLE IF EXISTS t1, t2;
CREATE TABLE t1 ( CREATE TABLE t1 (
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
g GEOMETRY NOT NULL, g GEOMETRY NOT NULL,
SPATIAL KEY(g) SPATIAL KEY(g)
) ENGINE=MyISAM; );
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
...@@ -185,7 +184,7 @@ DROP TABLE t1; ...@@ -185,7 +184,7 @@ DROP TABLE t1;
CREATE TABLE t2 ( CREATE TABLE t2 (
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
g GEOMETRY NOT NULL g GEOMETRY NOT NULL
) ENGINE=MyISAM; );
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 10 * 10 - 9), Point(10 * 10, 10 * 10))); INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 10 * 10 - 9), Point(10 * 10, 10 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 9 * 10 - 9), Point(10 * 10, 9 * 10))); INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 9 * 10 - 9), Point(10 * 10, 9 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 8 * 10 - 9), Point(10 * 10, 8 * 10))); INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 8 * 10 - 9), Point(10 * 10, 8 * 10)));
...@@ -710,9 +709,6 @@ SELECT count(*) FROM t2; ...@@ -710,9 +709,6 @@ SELECT count(*) FROM t2;
count(*) count(*)
100 100
DROP TABLE t2; DROP TABLE t2;
drop table if exists t1;
Warnings:
Note 1051 Unknown table 'test.t1'
CREATE TABLE t1 (a geometry NOT NULL, SPATIAL (a)); CREATE TABLE t1 (a geometry NOT NULL, SPATIAL (a));
INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
...@@ -754,7 +750,7 @@ CREATE TABLE t1 ( ...@@ -754,7 +750,7 @@ CREATE TABLE t1 (
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
g GEOMETRY NOT NULL, g GEOMETRY NOT NULL,
SPATIAL KEY(g) SPATIAL KEY(g)
) ENGINE=MyISAM; );
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(1 2, 2 3)')),(GeomFromText('LineString(1 2, 2 4)')); INSERT INTO t1 (g) VALUES (GeomFromText('LineString(1 2, 2 3)')),(GeomFromText('LineString(1 2, 2 4)'));
drop table t1; drop table t1;
CREATE TABLE t1 ( CREATE TABLE t1 (
...@@ -762,7 +758,7 @@ line GEOMETRY NOT NULL, ...@@ -762,7 +758,7 @@ line GEOMETRY NOT NULL,
kind ENUM('po', 'pp', 'rr', 'dr', 'rd', 'ts', 'cl') NOT NULL DEFAULT 'po', kind ENUM('po', 'pp', 'rr', 'dr', 'rd', 'ts', 'cl') NOT NULL DEFAULT 'po',
name VARCHAR(32), name VARCHAR(32),
SPATIAL KEY (line) SPATIAL KEY (line)
) engine=myisam; );
ALTER TABLE t1 DISABLE KEYS; ALTER TABLE t1 DISABLE KEYS;
INSERT INTO t1 (name, kind, line) VALUES INSERT INTO t1 (name, kind, line) VALUES
("Aadaouane", "pp", GeomFromText("POINT(32.816667 35.983333)")), ("Aadaouane", "pp", GeomFromText("POINT(32.816667 35.983333)")),
...@@ -803,7 +799,7 @@ CREATE TABLE t2 (geom GEOMETRY NOT NULL, SPATIAL KEY gk(geom)); ...@@ -803,7 +799,7 @@ CREATE TABLE t2 (geom GEOMETRY NOT NULL, SPATIAL KEY gk(geom));
INSERT IGNORE INTO t2 SELECT GeomFromText(st) FROM t1; INSERT IGNORE INTO t2 SELECT GeomFromText(st) FROM t1;
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
drop table t1, t2; drop table t1, t2;
CREATE TABLE t1 (`geometry` geometry NOT NULL default '',SPATIAL KEY `gndx` (`geometry`)) ENGINE=MyISAM DEFAULT CHARSET=latin1; CREATE TABLE t1 (`geometry` geometry NOT NULL default '',SPATIAL KEY `gndx` (`geometry`)) DEFAULT CHARSET=latin1;
INSERT INTO t1 (geometry) VALUES INSERT INTO t1 (geometry) VALUES
(PolygonFromText('POLYGON((-18.6086111000 -66.9327777000, -18.6055555000 (PolygonFromText('POLYGON((-18.6086111000 -66.9327777000, -18.6055555000
-66.8158332999, -18.7186111000 -66.8102777000, -18.7211111000 -66.9269443999, -66.8158332999, -18.7186111000 -66.8102777000, -18.7211111000 -66.9269443999,
...@@ -819,7 +815,7 @@ drop table t1; ...@@ -819,7 +815,7 @@ drop table t1;
CREATE TABLE t1 ( CREATE TABLE t1 (
c1 geometry NOT NULL default '', c1 geometry NOT NULL default '',
SPATIAL KEY i1 (c1) SPATIAL KEY i1 (c1)
) ENGINE=MyISAM DEFAULT CHARSET=latin1; ) DEFAULT CHARSET=latin1;
INSERT INTO t1 (c1) VALUES ( INSERT INTO t1 (c1) VALUES (
PolygonFromText('POLYGON((-18.6086111000 -66.9327777000, PolygonFromText('POLYGON((-18.6086111000 -66.9327777000,
-18.6055555000 -66.8158332999, -18.6055555000 -66.8158332999,
...@@ -833,7 +829,7 @@ DROP TABLE t1; ...@@ -833,7 +829,7 @@ DROP TABLE t1;
CREATE TABLE t1 ( CREATE TABLE t1 (
c1 geometry NOT NULL default '', c1 geometry NOT NULL default '',
SPATIAL KEY i1 (c1) SPATIAL KEY i1 (c1)
) ENGINE=MyISAM DEFAULT CHARSET=latin1; ) DEFAULT CHARSET=latin1;
INSERT INTO t1 (c1) VALUES ( INSERT INTO t1 (c1) VALUES (
PolygonFromText('POLYGON((-18.6086111000 -66.9327777000, PolygonFromText('POLYGON((-18.6086111000 -66.9327777000,
-18.6055555000 -66.8158332999, -18.6055555000 -66.8158332999,
...@@ -874,7 +870,7 @@ c3 varchar(10) collate utf8_bin default NULL, ...@@ -874,7 +870,7 @@ c3 varchar(10) collate utf8_bin default NULL,
spatial_point point NOT NULL, spatial_point point NOT NULL,
PRIMARY KEY(id), PRIMARY KEY(id),
SPATIAL KEY (spatial_point) SPATIAL KEY (spatial_point)
)ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin; ) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
INSERT INTO t1 (c2, c1, c3, spatial_point) VALUES INSERT INTO t1 (c2, c1, c3, spatial_point) VALUES
('y', 's', 'j', GeomFromText('POINT(167 74)')), ('y', 's', 'j', GeomFromText('POINT(167 74)')),
('r', 'n', 'd', GeomFromText('POINT(215 118)')), ('r', 'n', 'd', GeomFromText('POINT(215 118)')),
...@@ -1548,7 +1544,7 @@ End of 5.0 tests. ...@@ -1548,7 +1544,7 @@ End of 5.0 tests.
# and invalid spatial data # and invalid spatial data
# #
CREATE TABLE t1(a POINT NOT NULL, b GEOMETRY NOT NULL, CREATE TABLE t1(a POINT NOT NULL, b GEOMETRY NOT NULL,
SPATIAL KEY(a), SPATIAL KEY(b)) ENGINE=MyISAM; SPATIAL KEY(a), SPATIAL KEY(b));
INSERT INTO t1 VALUES(GEOMFROMTEXT("point (0 0)"), GEOMFROMTEXT("point (1 1)")); INSERT INTO t1 VALUES(GEOMFROMTEXT("point (0 0)"), GEOMFROMTEXT("point (1 1)"));
INSERT IGNORE INTO t1 SET a=GEOMFROMTEXT("point (-6 0)"), b=GEOMFROMTEXT("error"); INSERT IGNORE INTO t1 SET a=GEOMFROMTEXT("point (-6 0)"), b=GEOMFROMTEXT("error");
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
...@@ -1559,7 +1555,7 @@ ASTEXT(a) ASTEXT(b) ...@@ -1559,7 +1555,7 @@ ASTEXT(a) ASTEXT(b)
POINT(0 0) POINT(1 1) POINT(0 0) POINT(1 1)
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t1(a INT NOT NULL, b GEOMETRY NOT NULL, CREATE TABLE t1(a INT NOT NULL, b GEOMETRY NOT NULL,
KEY(a), SPATIAL KEY(b)) ENGINE=MyISAM; KEY(a), SPATIAL KEY(b));
INSERT INTO t1 VALUES(0, GEOMFROMTEXT("point (1 1)")); INSERT INTO t1 VALUES(0, GEOMFROMTEXT("point (1 1)"));
INSERT IGNORE INTO t1 SET a=0, b=GEOMFROMTEXT("error"); INSERT IGNORE INTO t1 SET a=0, b=GEOMFROMTEXT("error");
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
...@@ -1573,7 +1569,7 @@ End of 5.1 tests ...@@ -1573,7 +1569,7 @@ End of 5.1 tests
CREATE TABLE t1 ( CREATE TABLE t1 (
l LINESTRING NOT NULL, l LINESTRING NOT NULL,
SPATIAL KEY(l) SPATIAL KEY(l)
) ENGINE = myisam; );
INSERT INTO t1 VALUES(GeomFromText('LINESTRING(0 0, 1 1)')); INSERT INTO t1 VALUES(GeomFromText('LINESTRING(0 0, 1 1)'));
INSERT INTO t1 VALUES(GeomFromText('LINESTRING(1 1, 2 2)')); INSERT INTO t1 VALUES(GeomFromText('LINESTRING(1 1, 2 2)'));
INSERT INTO t1 VALUES(GeomFromText('LINESTRING(2 2, 3 3)')); INSERT INTO t1 VALUES(GeomFromText('LINESTRING(2 2, 3 3)'));
...@@ -1596,7 +1592,7 @@ DROP TABLE t1; ...@@ -1596,7 +1592,7 @@ DROP TABLE t1;
# #
# MDEV-8239 Reverse spatial operations OP(const, field) do not get optimized # MDEV-8239 Reverse spatial operations OP(const, field) do not get optimized
# #
CREATE TABLE t1 (a GEOMETRY NOT NULL, SPATIAL KEY(a)) ENGINE=MyISAM; CREATE TABLE t1 (a GEOMETRY NOT NULL, SPATIAL KEY(a));
INSERT INTO t1 VALUES (Point(1,2)),(Point(1,3)); INSERT INTO t1 VALUES (Point(1,2)),(Point(1,3));
EXPLAIN SELECT * FROM t1 WHERE MBRINTERSECTS(a,Point(1,2)); EXPLAIN SELECT * FROM t1 WHERE MBRINTERSECTS(a,Point(1,2));
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
...@@ -1614,7 +1610,7 @@ DROP TABLE t1; ...@@ -1614,7 +1610,7 @@ DROP TABLE t1;
# #
# MDEV-8610 "WHERE CONTAINS(indexed_geometry_column,1)" causes full table scan # MDEV-8610 "WHERE CONTAINS(indexed_geometry_column,1)" causes full table scan
# #
CREATE TABLE t1 (a GEOMETRY NOT NULL, SPATIAL KEY(a)) ENGINE=MyISAM; CREATE TABLE t1 (a GEOMETRY NOT NULL, SPATIAL KEY(a));
INSERT INTO t1 VALUES (Point(1,1)),(Point(2,2)),(Point(3,3)); INSERT INTO t1 VALUES (Point(1,1)),(Point(2,2)),(Point(3,3));
EXPLAIN SELECT * FROM t1 WHERE CONTAINS(a,1); EXPLAIN SELECT * FROM t1 WHERE CONTAINS(a,1);
ERROR HY000: Illegal parameter data type int for operation 'st_contains' ERROR HY000: Illegal parameter data type int for operation 'st_contains'
......
...@@ -8,13 +8,14 @@ if (`select count(*) = 0 from information_schema.plugins ...@@ -8,13 +8,14 @@ if (`select count(*) = 0 from information_schema.plugins
set global innodb_encrypt_tables=ON; set global innodb_encrypt_tables=ON;
show variables like 'innodb_encrypt%'; show variables like 'innodb_encrypt%';
let $wait_condition= select count(*) = 3 from information_schema.innodb_tablespaces_encryption where current_key_version=1; --let $tables_count= `select count(*) + 1 from information_schema.tables where engine = 'InnoDB'`
let $wait_condition= select count(*) = $tables_count from information_schema.innodb_tablespaces_encryption where current_key_version=1;
--source include/wait_condition.inc --source include/wait_condition.inc
select count(*) from information_schema.innodb_tablespaces_encryption where current_key_version <> 1; select count(*) from information_schema.innodb_tablespaces_encryption where current_key_version <> 1;
set global debug_key_management_version=10; set global debug_key_management_version=10;
let $wait_condition= select count(*) = 3 from information_schema.innodb_tablespaces_encryption where current_key_version=10; let $wait_condition= select count(*) = $tables_count from information_schema.innodb_tablespaces_encryption where current_key_version=10;
--source include/wait_condition.inc --source include/wait_condition.inc
select count(*) from information_schema.innodb_tablespaces_encryption where current_key_version <> 10; select count(*) from information_schema.innodb_tablespaces_encryption where current_key_version <> 10;
......
...@@ -63,7 +63,8 @@ SET GLOBAL innodb_encrypt_tables = off; ...@@ -63,7 +63,8 @@ SET GLOBAL innodb_encrypt_tables = off;
--echo # Wait max 10 min for key encryption threads to decrypt all spaces --echo # Wait max 10 min for key encryption threads to decrypt all spaces
--let $wait_timeout= 600 --let $wait_timeout= 600
--let $wait_condition=SELECT COUNT(*) = 5 FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 AND CURRENT_KEY_VERSION = 0; --let $tables_count= `select count(*) from information_schema.tables where engine = 'InnoDB'`
--let $wait_condition=SELECT COUNT(*) = $tables_count FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0 AND CURRENT_KEY_VERSION = 0;
--source include/wait_condition.inc --source include/wait_condition.inc
SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0; SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0;
......
...@@ -14,9 +14,11 @@ SHOW VARIABLES LIKE 'innodb_encrypt%'; ...@@ -14,9 +14,11 @@ SHOW VARIABLES LIKE 'innodb_encrypt%';
SET GLOBAL innodb_encrypt_tables = ON; SET GLOBAL innodb_encrypt_tables = ON;
--let $tables_count= `select count(*) + 1 from information_schema.tables where engine = 'InnoDB'`
--echo # Wait max 10 min for key encryption threads to encrypt all spaces --echo # Wait max 10 min for key encryption threads to encrypt all spaces
--let $wait_timeout= 600 --let $wait_timeout= 600
--let $wait_condition=SELECT COUNT(*) >= 3 FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0; --let $wait_condition=SELECT COUNT(*) >= $tables_count FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0;
--source include/wait_condition.inc --source include/wait_condition.inc
SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0; SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0;
...@@ -59,7 +61,7 @@ SET GLOBAL innodb_encryption_threads=@start_global_value; ...@@ -59,7 +61,7 @@ SET GLOBAL innodb_encryption_threads=@start_global_value;
--echo # Wait max 10 min for key encryption threads to encrypt all spaces --echo # Wait max 10 min for key encryption threads to encrypt all spaces
--let $wait_timeout= 600 --let $wait_timeout= 600
--let $wait_condition=SELECT COUNT(*) >=3 FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0; --let $wait_condition=SELECT COUNT(*) >= $tables_count FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION <> 0;
--source include/wait_condition.inc --source include/wait_condition.inc
SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0; SELECT NAME FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0;
......
...@@ -9,7 +9,7 @@ INSERT INTO t1 VALUES (1,'node_1'); ...@@ -9,7 +9,7 @@ INSERT INTO t1 VALUES (1,'node_1');
connection node_2a; connection node_2a;
connection node_2; connection node_2;
INSERT INTO t1 VALUES (2, 'node_2'); INSERT INTO t1 VALUES (2, 'node_2');
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
wsrep_local_aborts_increment wsrep_local_aborts_increment
1 1
DROP TABLE t1; DROP TABLE t1;
...@@ -10,7 +10,7 @@ SELECT GET_LOCK("foo", 1000);; ...@@ -10,7 +10,7 @@ SELECT GET_LOCK("foo", 1000);;
connection node_1; connection node_1;
INSERT INTO t1 VALUES (1); INSERT INTO t1 VALUES (1);
connection node_2; connection node_2;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
wsrep_local_aborts_increment wsrep_local_aborts_increment
1 1
DROP TABLE t1; DROP TABLE t1;
...@@ -6,7 +6,7 @@ SELECT SLEEP(1000);; ...@@ -6,7 +6,7 @@ SELECT SLEEP(1000);;
connection node_1; connection node_1;
INSERT INTO t1 VALUES (1); INSERT INTO t1 VALUES (1);
connection node_2; connection node_2;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
wsrep_local_aborts_increment wsrep_local_aborts_increment
1 1
DROP TABLE t1; DROP TABLE t1;
...@@ -38,7 +38,7 @@ connection node_1; ...@@ -38,7 +38,7 @@ connection node_1;
COMMIT; COMMIT;
connection node_2; connection node_2;
COMMIT; COMMIT;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
connection node_1; connection node_1;
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 'three'; SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 'three';
COUNT(*) = 1 COUNT(*) = 1
......
...@@ -22,6 +22,6 @@ connection node_1; ...@@ -22,6 +22,6 @@ connection node_1;
COMMIT; COMMIT;
connection node_2; connection node_2;
COMMIT; COMMIT;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
DROP TABLE child; DROP TABLE child;
DROP TABLE parent; DROP TABLE parent;
...@@ -51,7 +51,7 @@ connection node_1; ...@@ -51,7 +51,7 @@ connection node_1;
COMMIT; COMMIT;
connection node_2; connection node_2;
COMMIT; COMMIT;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
ROLLBACK; ROLLBACK;
INSERT INTO t1 VALUES (1), (2); INSERT INTO t1 VALUES (1), (2);
ERROR 23000: Duplicate entry '1' for key 'PRIMARY' ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
......
...@@ -129,5 +129,5 @@ connection node_1; ...@@ -129,5 +129,5 @@ connection node_1;
COMMIT; COMMIT;
connection node_2; connection node_2;
COMMIT; COMMIT;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
DROP TABLE t1; DROP TABLE t1;
...@@ -28,7 +28,7 @@ SET DEBUG_SYNC = "now SIGNAL signal.wsrep_before_mdl_wait"; ...@@ -28,7 +28,7 @@ SET DEBUG_SYNC = "now SIGNAL signal.wsrep_before_mdl_wait";
SET DEBUG_SYNC = "now SIGNAL signal.wsrep_after_BF_victim_lock"; SET DEBUG_SYNC = "now SIGNAL signal.wsrep_after_BF_victim_lock";
UNLOCK TABLES; UNLOCK TABLES;
connection node_1; connection node_1;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'a'; SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'a';
COUNT(*) = 1 COUNT(*) = 1
1 1
......
...@@ -28,6 +28,6 @@ connection node_1; ...@@ -28,6 +28,6 @@ connection node_1;
COMMIT; COMMIT;
connection node_2; connection node_2;
COMMIT; COMMIT;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
DROP TABLE t1; DROP TABLE t1;
DROP TABLE t2; DROP TABLE t2;
...@@ -28,6 +28,6 @@ connection node_1; ...@@ -28,6 +28,6 @@ connection node_1;
COMMIT; COMMIT;
connection node_2; connection node_2;
COMMIT; COMMIT;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
DROP TABLE t1; DROP TABLE t1;
DROP TABLE t2; DROP TABLE t2;
...@@ -31,6 +31,6 @@ connection node_1; ...@@ -31,6 +31,6 @@ connection node_1;
COMMIT; COMMIT;
connection node_2; connection node_2;
COMMIT; COMMIT;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
DROP TABLE t1; DROP TABLE t1;
DROP TABLE t2; DROP TABLE t2;
...@@ -19,7 +19,7 @@ connection node_1; ...@@ -19,7 +19,7 @@ connection node_1;
COMMIT; COMMIT;
connection node_2; connection node_2;
COMMIT; COMMIT;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
SELECT f1 = 'текст2' FROM t1; SELECT f1 = 'текст2' FROM t1;
f1 = 'текст2' f1 = 'текст2'
1 1
......
...@@ -27,6 +27,6 @@ COMMIT; ...@@ -27,6 +27,6 @@ COMMIT;
SET AUTOCOMMIT=ON; SET AUTOCOMMIT=ON;
connection node_2; connection node_2;
COMMIT; COMMIT;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
SET AUTOCOMMIT=ON; SET AUTOCOMMIT=ON;
DROP TABLE t1; DROP TABLE t1;
...@@ -24,6 +24,6 @@ COMMIT; ...@@ -24,6 +24,6 @@ COMMIT;
SET AUTOCOMMIT=ON; SET AUTOCOMMIT=ON;
connection node_2; connection node_2;
COMMIT; COMMIT;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
SET AUTOCOMMIT=ON; SET AUTOCOMMIT=ON;
DROP TABLE t1; DROP TABLE t1;
...@@ -9,7 +9,7 @@ connection node_2; ...@@ -9,7 +9,7 @@ connection node_2;
INSERT INTO t1 VALUES (1,1); INSERT INTO t1 VALUES (1,1);
connection node_1; connection node_1;
SELECT * FROM t1; SELECT * FROM t1;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
ROLLBACK; ROLLBACK;
DELETE FROM t1; DELETE FROM t1;
connection node_1; connection node_1;
...@@ -22,7 +22,7 @@ connection node_2; ...@@ -22,7 +22,7 @@ connection node_2;
UPDATE t1 SET f2 = 2; UPDATE t1 SET f2 = 2;
connection node_1; connection node_1;
UPDATE t1 SET f2 = 3; UPDATE t1 SET f2 = 3;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
ROLLBACK; ROLLBACK;
DELETE FROM t1; DELETE FROM t1;
connection node_1; connection node_1;
...@@ -33,5 +33,5 @@ connection node_2; ...@@ -33,5 +33,5 @@ connection node_2;
INSERT INTO t1 VALUES (1,2); INSERT INTO t1 VALUES (1,2);
connection node_1; connection node_1;
COMMIT; COMMIT;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
DROP TABLE t1; DROP TABLE t1;
...@@ -14,9 +14,9 @@ INSERT INTO t2 (f1) SELECT 1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4, te ...@@ -14,9 +14,9 @@ INSERT INTO t2 (f1) SELECT 1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4, te
connection node_2; connection node_2;
DROP DATABASE database1;; DROP DATABASE database1;;
connection node_1; connection node_1;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
connection node_1a; connection node_1a;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
connection node_2; connection node_2;
connection node_1; connection node_1;
SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'database1'; SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'database1';
......
...@@ -8,7 +8,7 @@ connection node_2a; ...@@ -8,7 +8,7 @@ connection node_2a;
ALTER TABLE t1 ADD COLUMN f2 INTEGER, LOCK=EXCLUSIVE; ALTER TABLE t1 ADD COLUMN f2 INTEGER, LOCK=EXCLUSIVE;
connection node_2; connection node_2;
COMMIT; COMMIT;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
connection node_1; connection node_1;
INSERT INTO t1 VALUES (2, 2); INSERT INTO t1 VALUES (2, 2);
SELECT COUNT(*) = 2 FROM t1; SELECT COUNT(*) = 2 FROM t1;
......
...@@ -9,7 +9,7 @@ connection node_1; ...@@ -9,7 +9,7 @@ connection node_1;
TRUNCATE TABLE t1;; TRUNCATE TABLE t1;;
connection node_1; connection node_1;
connection node_2; connection node_2;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
connection node_2; connection node_2;
SELECT COUNT(*) = 0 FROM t1; SELECT COUNT(*) = 0 FROM t1;
COUNT(*) = 0 COUNT(*) = 0
......
...@@ -18,7 +18,7 @@ connection node_1; ...@@ -18,7 +18,7 @@ connection node_1;
COMMIT; COMMIT;
connection node_2; connection node_2;
COMMIT; COMMIT;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
SELECT f1 = 'текст2' FROM t1; SELECT f1 = 'текст2' FROM t1;
f1 = 'текст2' f1 = 'текст2'
1 1
...@@ -35,6 +35,6 @@ connection node_2; ...@@ -35,6 +35,6 @@ connection node_2;
COMMIT; COMMIT;
connection node_1; connection node_1;
COMMIT; COMMIT;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
COMMIT; COMMIT;
DROP TABLE t1; DROP TABLE t1;
...@@ -59,7 +59,7 @@ connection node_1a; ...@@ -59,7 +59,7 @@ connection node_1a;
COMMIT; COMMIT;
connection node_2a; connection node_2a;
COMMIT; COMMIT;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
connection node_1a; connection node_1a;
SELECT * FROM t1; SELECT * FROM t1;
f1 node f1 node
......
...@@ -20,6 +20,6 @@ connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2; ...@@ -20,6 +20,6 @@ connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2;
connection node_2a; connection node_2a;
connection node_2; connection node_2;
COMMIT; COMMIT;
ERROR 40001: wsrep aborted transaction ERROR 40001: Deadlock: wsrep aborted transaction
include/assert_grep.inc [cluster conflict due to high priority abort for threads] include/assert_grep.inc [cluster conflict due to high priority abort for threads]
DROP TABLE t1; DROP TABLE t1;
...@@ -11,16 +11,8 @@ ...@@ -11,16 +11,8 @@
############################################################################## ##############################################################################
gis_split_inf : MDEV-14057 InnoDB GIS tests fail gis_split_inf : MDEV-14057 InnoDB GIS tests fail
row_format : MDEV-14057 InnoDB GIS tests fail
rtree_estimate : MDEV-14057 InnoDB GIS tests fail
rtree_multi_pk : MDEV-14057 InnoDB GIS tests fail rtree_multi_pk : MDEV-14057 InnoDB GIS tests fail
rtree_recovery : MDEV-14058 InnoDB Assertion failure !leaf on rem0rec.cc line 566 on test innodb_gis.rtree_recovery
tree_search : MDEV-14057 InnoDB GIS tests fail
rtree_concurrent_srch: MDEV-14059 InnoDB assertion failure offset >= ((38U + 36 + 2 * 10) + 5) at page0page.h line 318
point_big : MDEV-14057 InnoDB GIS tests fail point_big : MDEV-14057 InnoDB GIS tests fail
geometry : MDEV-14057 InnoDB GIS tests fail geometry : MDEV-14057 InnoDB GIS tests fail
bug17057168 : MDEV-14057 InnoDB GIS tests fail
bug16236208 : MDEV-14057 InnoDB GIS tests fail bug16236208 : MDEV-14057 InnoDB GIS tests fail
bug16266012 : MDEV-14057 InnoDB GIS tests fail bug16266012 : MDEV-14057 InnoDB GIS tests fail
rtree_search : MDEV-14057 InnoDB GIS tests fail
rtree_old : MDEV-14057 InnoDB GIS tests fail
...@@ -12,10 +12,8 @@ INSERT INTO t1 (location) SELECT POINT(tmp1.id, tmp2.id) FROM tmp tmp1, ...@@ -12,10 +12,8 @@ INSERT INTO t1 (location) SELECT POINT(tmp1.id, tmp2.id) FROM tmp tmp1,
tmp tmp2 ORDER BY tmp1.id, tmp2.id; tmp tmp2 ORDER BY tmp1.id, tmp2.id;
EXPLAIN SELECT id, ST_AsText(location) FROM t1 WHERE location = POINT(1, EXPLAIN SELECT id, ST_AsText(location) FROM t1 WHERE location = POINT(1,
2); 2);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ref location location 28 const 1 100.00 Using where 1 SIMPLE t1 ref location location 28 const 1 Using where
Warnings:
Note 1003 /* select#1 */ select `geotest`.`t1`.`id` AS `id`,st_astext(`geotest`.`t1`.`location`) AS `ST_AsText(location)` from `geotest`.`t1` where (`geotest`.`t1`.`location` = <cache>(point(1,2)))
SELECT id, ST_AsText(location) FROM t1 WHERE location = POINT(1, 2); SELECT id, ST_AsText(location) FROM t1 WHERE location = POINT(1, 2);
id ST_AsText(location) id ST_AsText(location)
163 POINT(1 2) 163 POINT(1 2)
......
This diff is collapsed.
This diff is collapsed.
SET GLOBAL innodb_file_per_table=1; SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency;
SET GLOBAL innodb_purge_rseg_truncate_frequency = 1;
create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb ROW_FORMAT=COMPRESSED; create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb ROW_FORMAT=COMPRESSED;
insert into t1 values(1, Point(1,1)); insert into t1 values(1, Point(1,1));
insert into t1 values(2, Point(2,2)); insert into t1 values(2, Point(2,2));
...@@ -39,14 +40,15 @@ set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))'); ...@@ -39,14 +40,15 @@ set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))');
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
0 0
SET @saved_dbug = @@SESSION.debug_dbug;
SET DEBUG='+d,page_copy_rec_list_start_compress_fail'; SET DEBUG='+d,page_copy_rec_list_start_compress_fail';
Warnings: Warnings:
Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
delete from t1; delete from t1;
SET DEBUG='-d,page_copy_rec_list_start_compress_fail';
Warnings:
Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
0 0
SET debug_dbug = @saved_dbug;
InnoDB 0 transactions not purged
drop table t1; drop table t1;
SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency;
...@@ -9,16 +9,12 @@ set i = i + 1; ...@@ -9,16 +9,12 @@ set i = i + 1;
end while; end while;
end| end|
CALL insert_t1(70000); CALL insert_t1(70000);
select count(*) from t1;
count(*)
70000
check table t1; check table t1;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 check status OK test.t1 check status OK
truncate table t1; select count(*) from t1;
call mtr.add_suppression("InnoDB: A copy of page \[page id: space=[0-9]+, page number=[0-9]+\] in the doublewrite buffer slot [0-9]+ is not within space bounds"); count(*)
START TRANSACTION; 70000
CALL insert_t1(5000); delete from t1;
COMMIT;
drop procedure insert_t1; drop procedure insert_t1;
drop table t1; drop table t1;
...@@ -14,22 +14,25 @@ insert into t1 select * from t1; ...@@ -14,22 +14,25 @@ insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
SET SESSION debug="+d,rtr_pcur_move_to_next_return"; connect a,localhost,root,,;
SET debug_dbug='+d,rtr_pcur_move_to_next_return';
set session transaction isolation level serializable; set session transaction isolation level serializable;
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
SET DEBUG_SYNC = 'RESET'; SET DEBUG_SYNC = 'RESET';
SET DEBUG_SYNC = 'row_search_for_mysql_before_return SIGNAL started WAIT_FOR go_ahead'; SET DEBUG_SYNC = 'row_search_for_mysql_before_return SIGNAL started WAIT_FOR go_ahead';
select count(*) from t1 where MBRWithin(t1.c2, @g1);; select count(*) from t1 where MBRWithin(t1.c2, @g1);;
# Establish session con1 (user=root) connect con1,localhost,root,,;
set session transaction isolation level serializable; set session transaction isolation level serializable;
SET DEBUG_SYNC = 'now WAIT_FOR started'; SET DEBUG_SYNC = 'now WAIT_FOR started';
insert into t1 select * from t1; insert into t1 select * from t1;
SET DEBUG_SYNC = 'now SIGNAL go_ahead'; SET DEBUG_SYNC = 'now SIGNAL go_ahead';
connection a;
count(*) count(*)
576 576
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
1152 1152
connection default;
insert into t1 select * from t1; insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
...@@ -53,6 +56,7 @@ insert into t1 select * from t1; ...@@ -53,6 +56,7 @@ insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
connection a;
set session transaction isolation level serializable; set session transaction isolation level serializable;
select @@tx_isolation; select @@tx_isolation;
@@tx_isolation @@tx_isolation
...@@ -62,6 +66,7 @@ set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100) ...@@ -62,6 +66,7 @@ set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100)
select count(*) from t1 where MBRwithin(t1.c2, @g1); select count(*) from t1 where MBRwithin(t1.c2, @g1);
count(*) count(*)
0 0
connect b,localhost,root,,;
set session transaction isolation level serializable; set session transaction isolation level serializable;
set session innodb_lock_wait_timeout = 1; set session innodb_lock_wait_timeout = 1;
select @@tx_isolation; select @@tx_isolation;
...@@ -70,16 +75,20 @@ SERIALIZABLE ...@@ -70,16 +75,20 @@ SERIALIZABLE
insert into t1 select * from t1; insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
connection a;
commit; commit;
connection default;
select count(*) from t1; select count(*) from t1;
count(*) count(*)
896 896
insert into t1 values (105, Point(105, 105)); insert into t1 values (105, Point(105, 105));
connection a;
start transaction; start transaction;
set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))'); set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))');
select count(*) from t1 where MBRwithin(t1.c2, @g1); select count(*) from t1 where MBRwithin(t1.c2, @g1);
count(*) count(*)
1 1
connection b;
select @@innodb_lock_wait_timeout; select @@innodb_lock_wait_timeout;
@@innodb_lock_wait_timeout @@innodb_lock_wait_timeout
1 1
...@@ -91,10 +100,12 @@ ERROR HY000: Lock wait timeout exceeded; try restarting transaction ...@@ -91,10 +100,12 @@ ERROR HY000: Lock wait timeout exceeded; try restarting transaction
select count(*) from t1; select count(*) from t1;
count(*) count(*)
897 897
connection a;
select sleep(2); select sleep(2);
sleep(2) sleep(2)
0 0
commit; commit;
connection default;
truncate t1; truncate t1;
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)')); INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)'));
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)')); INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)'));
...@@ -107,6 +118,7 @@ insert into t1 select * from t1; ...@@ -107,6 +118,7 @@ insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
connection a;
set session transaction isolation level serializable; set session transaction isolation level serializable;
select @@tx_isolation; select @@tx_isolation;
@@tx_isolation @@tx_isolation
...@@ -116,6 +128,7 @@ set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100) ...@@ -116,6 +128,7 @@ set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100)
select count(*) from t1 where MBRwithin(t1.c2, @g1); select count(*) from t1 where MBRwithin(t1.c2, @g1);
count(*) count(*)
0 0
connection b;
set session transaction isolation level serializable; set session transaction isolation level serializable;
set session innodb_lock_wait_timeout = 1; set session innodb_lock_wait_timeout = 1;
select @@tx_isolation; select @@tx_isolation;
...@@ -125,11 +138,14 @@ insert into t1 select * from t1; ...@@ -125,11 +138,14 @@ insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
connection a;
commit; commit;
connection default;
select count(*) from t1; select count(*) from t1;
count(*) count(*)
1792 1792
insert into t1 values (105, Point(105, 105)); insert into t1 values (105, Point(105, 105));
connection a;
start transaction; start transaction;
set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))'); set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))');
select count(*) from t1 where MBRwithin(t1.c2, @g1); select count(*) from t1 where MBRwithin(t1.c2, @g1);
...@@ -138,6 +154,7 @@ count(*) ...@@ -138,6 +154,7 @@ count(*)
select count(*) from t1 where MBRIntersects(t1.c2, @g1); select count(*) from t1 where MBRIntersects(t1.c2, @g1);
count(*) count(*)
1793 1793
connection b;
select @@innodb_lock_wait_timeout; select @@innodb_lock_wait_timeout;
@@innodb_lock_wait_timeout @@innodb_lock_wait_timeout
1 1
...@@ -149,10 +166,12 @@ ERROR HY000: Lock wait timeout exceeded; try restarting transaction ...@@ -149,10 +166,12 @@ ERROR HY000: Lock wait timeout exceeded; try restarting transaction
select count(*) from t1; select count(*) from t1;
count(*) count(*)
1793 1793
connection a;
select sleep(2); select sleep(2);
sleep(2) sleep(2)
0 0
commit; commit;
connection default;
truncate t1; truncate t1;
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)')); INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)'));
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)')); INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)'));
...@@ -163,13 +182,16 @@ INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)')); ...@@ -163,13 +182,16 @@ INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)'));
set @g1 = ST_GeomFromText('Polygon((3 3, 3 5, 5 5, 5 3, 3 3))'); set @g1 = ST_GeomFromText('Polygon((3 3, 3 5, 5 5, 5 3, 3 3))');
start transaction; start transaction;
delete from t1 where MBRWithin(t1.c2, @g1); delete from t1 where MBRWithin(t1.c2, @g1);
connection a;
set session innodb_lock_wait_timeout = 1; set session innodb_lock_wait_timeout = 1;
select @@innodb_lock_wait_timeout; select @@innodb_lock_wait_timeout;
@@innodb_lock_wait_timeout @@innodb_lock_wait_timeout
1 1
insert into t1 values(4, Point(4,4)); insert into t1 values(4, Point(4,4));
ERROR HY000: Lock wait timeout exceeded; try restarting transaction ERROR HY000: Lock wait timeout exceeded; try restarting transaction
connection default;
rollback; rollback;
connection default;
truncate t1; truncate t1;
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)')); INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)'));
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)')); INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(3 3, 160 160)'));
...@@ -182,13 +204,16 @@ start transaction; ...@@ -182,13 +204,16 @@ start transaction;
select count(*) from t1 where MBRWithin(t1.c2, @g1) for update; select count(*) from t1 where MBRWithin(t1.c2, @g1) for update;
count(*) count(*)
0 0
connection a;
set session innodb_lock_wait_timeout = 1; set session innodb_lock_wait_timeout = 1;
select @@innodb_lock_wait_timeout; select @@innodb_lock_wait_timeout;
@@innodb_lock_wait_timeout @@innodb_lock_wait_timeout
1 1
insert into t1 values(4, Point(4,4)); insert into t1 values(4, Point(4,4));
ERROR HY000: Lock wait timeout exceeded; try restarting transaction ERROR HY000: Lock wait timeout exceeded; try restarting transaction
connection default;
rollback; rollback;
connection default;
truncate t1; truncate t1;
create procedure insert_t1(IN start int, IN total int) create procedure insert_t1(IN start int, IN total int)
begin begin
...@@ -200,6 +225,7 @@ set i = i + 1; ...@@ -200,6 +225,7 @@ set i = i + 1;
end while; end while;
end| end|
CALL insert_t1(0, 1000); CALL insert_t1(0, 1000);
connection a;
set session transaction isolation level serializable; set session transaction isolation level serializable;
select @@tx_isolation; select @@tx_isolation;
@@tx_isolation @@tx_isolation
...@@ -208,17 +234,21 @@ start transaction; ...@@ -208,17 +234,21 @@ start transaction;
set @g1 = ST_GeomFromText('Polygon((800 800, 800 1000, 1000 1000, 1000 800, 800 800))'); set @g1 = ST_GeomFromText('Polygon((800 800, 800 1000, 1000 1000, 1000 800, 800 800))');
select count(*) from t1 where MBRwithin(t1.c2, @g1); select count(*) from t1 where MBRwithin(t1.c2, @g1);
count(*) count(*)
199 201
connection b;
CALL insert_t1(1001, 2000); CALL insert_t1(1001, 2000);
set session transaction isolation level serializable; set session transaction isolation level serializable;
set session innodb_lock_wait_timeout = 1; set session innodb_lock_wait_timeout = 1;
insert into t1 values (1200, Point(950, 950)); insert into t1 values (1200, Point(950, 950));
ERROR HY000: Lock wait timeout exceeded; try restarting transaction ERROR HY000: Lock wait timeout exceeded; try restarting transaction
connection a;
select sleep(2); select sleep(2);
sleep(2) sleep(2)
0 0
commit; commit;
SET SESSION debug="-d,rtr_pcur_move_to_next_return"; disconnect a;
disconnect b;
connection default;
drop table t1; drop table t1;
drop procedure insert_t1; drop procedure insert_t1;
create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb;
...@@ -229,14 +259,19 @@ INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(5 5, 180 180)')); ...@@ -229,14 +259,19 @@ INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(5 5, 180 180)'));
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(6 6, 190 190)')); INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(6 6, 190 190)'));
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(7 7, 200 200)')); INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(7 7, 200 200)'));
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)')); INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)'));
connect a,localhost,root,,;
SET SESSION debug="+d,rtr_pcur_move_to_next_return"; SET SESSION debug="+d,rtr_pcur_move_to_next_return";
Warnings:
Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
set transaction isolation level serializable; set transaction isolation level serializable;
start transaction; start transaction;
set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))'); set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))');
select count(*) from t1 where MBRwithin(t1.c2, @g1); select count(*) from t1 where MBRwithin(t1.c2, @g1);
count(*) count(*)
0 0
connect b,localhost,root,,;
delete from t1 where c1 = 1; delete from t1 where c1 = 1;
connection a;
commit; commit;
set transaction isolation level serializable; set transaction isolation level serializable;
start transaction; start transaction;
...@@ -244,10 +279,13 @@ set @g1 = ST_GeomFromText('Polygon((0 0, 0 300, 300 300, 300 0, 0 0))'); ...@@ -244,10 +279,13 @@ set @g1 = ST_GeomFromText('Polygon((0 0, 0 300, 300 300, 300 0, 0 0))');
select count(*) from t1 where MBRwithin(t1.c2, @g1); select count(*) from t1 where MBRwithin(t1.c2, @g1);
count(*) count(*)
2 2
connection b;
set session innodb_lock_wait_timeout = 1; set session innodb_lock_wait_timeout = 1;
delete from t1 where c1 = 2; delete from t1 where c1 = 2;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction ERROR HY000: Lock wait timeout exceeded; try restarting transaction
connection a;
commit; commit;
connection default;
drop table t1; drop table t1;
SET DEBUG_SYNC= 'RESET'; SET DEBUG_SYNC= 'RESET';
create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb;
...@@ -273,18 +311,22 @@ insert into t1 select * from t1; ...@@ -273,18 +311,22 @@ insert into t1 select * from t1;
select count(*) from t1; select count(*) from t1;
count(*) count(*)
4608 4608
connection b;
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
set transaction isolation level read uncommitted; set transaction isolation level read uncommitted;
SET DEBUG_SYNC= 'row_search_for_mysql_before_return SIGNAL siga WAIT_FOR sigb'; SET DEBUG_SYNC= 'row_search_for_mysql_before_return SIGNAL siga WAIT_FOR sigb';
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
connection default;
SET DEBUG_SYNC= 'now WAIT_FOR siga'; SET DEBUG_SYNC= 'now WAIT_FOR siga';
rollback; rollback;
SET DEBUG_SYNC= 'now SIGNAL sigb'; SET DEBUG_SYNC= 'now SIGNAL sigb';
connection b;
count(*) count(*)
1 1
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
0 0
connection default;
DROP TABLE t1; DROP TABLE t1;
SET DEBUG_SYNC = 'RESET'; SET DEBUG_SYNC = 'RESET';
create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb;
...@@ -298,15 +340,21 @@ end while; ...@@ -298,15 +340,21 @@ end while;
end| end|
start transaction; start transaction;
CALL insert_t1(100); CALL insert_t1(100);
connection a;
set @g1 = ST_GeomFromText('Polygon((0 0,0 1000,1000 1000,1000 0,0 0))'); set @g1 = ST_GeomFromText('Polygon((0 0,0 1000,1000 1000,1000 0,0 0))');
SET DEBUG_SYNC= 'rtr_pcur_move_to_next_return SIGNAL siga WAIT_FOR sigb'; SET DEBUG_SYNC= 'rtr_pcur_move_to_next_return SIGNAL siga WAIT_FOR sigb';
select count(*) from t1 where MBRWithin(t1.c2, @g1);; select count(*) from t1 where MBRWithin(t1.c2, @g1);;
connection default;
SET DEBUG_SYNC= 'now WAIT_FOR siga'; SET DEBUG_SYNC= 'now WAIT_FOR siga';
rollback; rollback;
SET DEBUG_SYNC= 'now SIGNAL sigb'; SET DEBUG_SYNC= 'now SIGNAL sigb';
connection a;
count(*) count(*)
0 0
connection default;
drop procedure insert_t1; drop procedure insert_t1;
DROP TABLE t1; DROP TABLE t1;
SET SESSION debug="-d,rtr_pcur_move_to_next_return"; disconnect a;
disconnect b;
connection default;
SET DEBUG_SYNC = 'RESET'; SET DEBUG_SYNC = 'RESET';
...@@ -6,10 +6,8 @@ SET @g1 = ST_GeomFromText('POINT(10 10)'); ...@@ -6,10 +6,8 @@ SET @g1 = ST_GeomFromText('POINT(10 10)');
SET @g2 = ST_GeomFromText('POLYGON((5 5, 20 5, 20 21, 5 21, 5 5))'); SET @g2 = ST_GeomFromText('POLYGON((5 5, 20 5, 20 21, 5 21, 5 5))');
SET @g3 = ST_GeomFromText('POLYGON((1.79769e+308 1.79769e+308, 20 5, -1.79769e+308 -1.79769e+308, 1.79769e+308 1.79769e+308))'); SET @g3 = ST_GeomFromText('POLYGON((1.79769e+308 1.79769e+308, 20 5, -1.79769e+308 -1.79769e+308, 1.79769e+308 1.79769e+308))');
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g1); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g1);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL g NULL NULL NULL 1 100.00 Using where 1 SIMPLE t1 ALL g NULL NULL NULL 1 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrcontains(`test`.`t1`.`g`,(@`g1`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
ST_AsText(g) ST_AsText(g)
INSERT INTO t1 VALUES(@g1); INSERT INTO t1 VALUES(@g1);
...@@ -24,135 +22,105 @@ ANALYZE TABLE t1; ...@@ -24,135 +22,105 @@ ANALYZE TABLE t1;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 analyze status OK test.t1 analyze status OK
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g1); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g1);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where 1 SIMPLE t1 range g g 34 NULL 1 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrcontains(`test`.`t1`.`g`,(@`g1`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g1); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g1);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL range g g 34 NULL 2 100.00 Using where 1 SIMPLE t1 range g g 34 NULL 2 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrdisjoint(`test`.`t1`.`g`,(@`g1`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g1); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g1);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where 1 SIMPLE t1 range g g 34 NULL 1 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrequals(`test`.`t1`.`g`,(@`g1`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g1); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g1);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where 1 SIMPLE t1 range g g 34 NULL 1 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrintersects(`test`.`t1`.`g`,(@`g1`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where 1 SIMPLE t1 range g g 34 NULL 1 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrwithin(`test`.`t1`.`g`,(@`g1`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g2); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g2);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where 1 SIMPLE t1 range g g 34 NULL 1 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrcontains(`test`.`t1`.`g`,(@`g2`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((5 5,20 5,20 21,5 21,5 5))
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g2); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g2);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where 1 SIMPLE t1 range g g 34 NULL 1 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrdisjoint(`test`.`t1`.`g`,(@`g2`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((5 5,20 5,20 21,5 21,5 5))
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g2); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g2);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where 1 SIMPLE t1 range g g 34 NULL 1 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrequals(`test`.`t1`.`g`,(@`g2`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((5 5,20 5,20 21,5 21,5 5))
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g2); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g2);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL range g g 34 NULL 2 100.00 Using where 1 SIMPLE t1 range g g 34 NULL 2 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrintersects(`test`.`t1`.`g`,(@`g2`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((5 5,20 5,20 21,5 21,5 5))
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL range g g 34 NULL 2 100.00 Using where 1 SIMPLE t1 range g g 34 NULL 2 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrwithin(`test`.`t1`.`g`,(@`g2`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((5 5,20 5,20 21,5 21,5 5))
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g3); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g3);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 Using where 1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrcontains(`test`.`t1`.`g`,(@`g3`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((5 5,20 5,20 21,5 21,5 5))
POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308)) POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308))
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g3); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g3);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 Using where 1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrdisjoint(`test`.`t1`.`g`,(@`g3`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((5 5,20 5,20 21,5 21,5 5))
POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308)) POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308))
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g3); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g3);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 Using where 1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrequals(`test`.`t1`.`g`,(@`g3`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((5 5,20 5,20 21,5 21,5 5))
POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308)) POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308))
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g3); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g3);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 Using where 1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrintersects(`test`.`t1`.`g`,(@`g3`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((5 5,20 5,20 21,5 21,5 5))
POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308)) POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308))
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 Using where 1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrwithin(`test`.`t1`.`g`,(@`g3`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
......
This diff is collapsed.
SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency;
SET GLOBAL innodb_purge_rseg_truncate_frequency = 1;
create table t ( create table t (
a point not null,b point not null,c point, b point not null,d point not null, spatial key (d),spatial key (b)
d point not null,e point,f point,
spatial key (d),spatial key (b)
) engine=innodb; ) engine=innodb;
create procedure p(i int)
begin
declare n int default 0;
declare continue handler for sqlexception begin end;
delete from t;
repeat
set @p=point(1,1);
insert into t values(@p,@p,@p,@p,@p,@p);
insert into t values(@p,@p,@p,@p,@p,@p);
insert into t select @p,@p,@p,@p,@p,@p
from t a,t b,t c,t d,t e,t f,t g,t h,t i,t j;
delete from t;
set n:=n+1;
until n >= i end repeat;
end|
call p(200);
InnoDB 0 transactions not purged InnoDB 0 transactions not purged
drop procedure p;
drop table t; drop table t;
SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency;
# restart
create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb; create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb;
create procedure insert_t1(IN total int) create procedure insert_t1(IN total int)
begin begin
...@@ -33,10 +32,9 @@ Table Op Msg_type Msg_text ...@@ -33,10 +32,9 @@ Table Op Msg_type Msg_text
test.t1 check status OK test.t1 check status OK
select count(*) from t1; select count(*) from t1;
count(*) count(*)
18 17
select c1, ST_astext(c2) from t1; select c1, ST_astext(c2) from t1;
c1 ST_astext(c2) c1 ST_astext(c2)
350 POINT(10350 10350)
351 POINT(10351 10351) 351 POINT(10351 10351)
352 POINT(10352 10352) 352 POINT(10352 10352)
353 POINT(10353 10353) 353 POINT(10353 10353)
......
...@@ -14,19 +14,19 @@ count(*) ...@@ -14,19 +14,19 @@ count(*)
set @g1 = ST_GeomFromText('Polygon((0 0,0 1000,1000 1000,1000 0,0 0))'); set @g1 = ST_GeomFromText('Polygon((0 0,0 1000,1000 1000,1000 0,0 0))');
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
999 1000
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
99 100
set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))'); set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))');
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
789 791
set @g1 = ST_GeomFromText('Polygon((100 100,100 800,800 800,800 100,100 100))'); set @g1 = ST_GeomFromText('Polygon((100 100,100 800,800 800,800 100,100 100))');
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
699 701
set @g1 = ST_GeomFromText('Point(1 1)'); set @g1 = ST_GeomFromText('Point(1 1)');
select count(*) from t1 where MBRequals(t1.c2, @g1); select count(*) from t1 where MBRequals(t1.c2, @g1);
count(*) count(*)
......
...@@ -14,9 +14,10 @@ insert into t1 select * from t1; ...@@ -14,9 +14,10 @@ insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
SET SESSION debug="+d, rtr_page_need_second_split"; SET @saved_dbug = @@SESSION.debug_dbug;
SET debug_dbug = '+d, rtr_page_need_second_split';
insert into t1 select * from t1; insert into t1 select * from t1;
SET SESSION debug="-d, rtr_page_need_second_split"; SET debug_dbug = @saved_dbug;
delete from t1; delete from t1;
insert into t1 values(1, Point(1,1)); insert into t1 values(1, Point(1,1));
insert into t1 values(2, Point(2,2)); insert into t1 values(2, Point(2,2));
...@@ -62,6 +63,8 @@ count(*) ...@@ -62,6 +63,8 @@ count(*)
0 0
drop index c2 on t1; drop index c2 on t1;
create spatial index idx2 on t1(c2); create spatial index idx2 on t1(c2);
affected rows: 0
info: Records: 0 Duplicates: 0 Warnings: 0
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
...@@ -73,7 +76,10 @@ set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); ...@@ -73,7 +76,10 @@ set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
73728 73728
# restart: --innodb-read-only set @g1 = ST_GeomFromText('Polygon((2 2,2 800,800 800,800 2,2 2))');
select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*)
65536
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
...@@ -81,6 +87,5 @@ count(*) ...@@ -81,6 +87,5 @@ count(*)
set @g1 = ST_GeomFromText('Polygon((2 2,2 800,800 800,800 2,2 2))'); set @g1 = ST_GeomFromText('Polygon((2 2,2 800,800 800,800 2,2 2))');
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
57344 65536
# restart
drop table t1; drop table t1;
--source include/have_innodb.inc --source include/have_innodb.inc
--source include/have_debug.inc
create table t1(a geometrycollection not null,spatial key(a))engine=innodb; create table t1(a geometrycollection not null,spatial key(a))engine=innodb;
...@@ -21,9 +19,6 @@ insert into t1(a) values( geometrycollection(linestring(point(85,-29), point( ...@@ -21,9 +19,6 @@ insert into t1(a) values( geometrycollection(linestring(point(85,-29), point(
insert into t1(a) values( geometrycollection(polygon(linestring(point(-9,0), point(-17,-15), point(-9,0)), linestring(point(-11,1), point(18,12), point(15,3), point(7,0), point(-11,1)), linestring(point(19,5), point(19,5)), linestring(point(17,-11), point(8,4), point(17,-11)), linestring(point(14914539334033432000000000000000000000.000000,127247994336690690000000000000000000000.000000), point(-14,-7), point(13,-2))), point(-4,-7), polygon(linestring(point(-18,9), point(11,-1), point(-18,9)), linestring(point(9,-3), point(9,-3)), linestring(point(-7,-9), point(9,-11), point(11,14), point(1.663324e+308,1.572127e+308)), linestring(point(-15,4), point(18,12), point(7,2), point(-15,4)), linestring(point(-15,-18), point(-20,-15), point(1152921504606846972,34359738370))), polygon(linestring(point(-5,-19), point(-11,11), point(10,5), point(-7,13), point(-5,-19)), linestring(point(-8,-6), point(-4,16), point(-8,-6)), linestring(point(-6,-10), point(3,-12), point(-6,-10)), linestring(point(-16,1), point(20,-12), point(-16,1)), linestring(point(-8,5), point(-20,-4), point(4,1), point(-6,-6), point(-8,5)), linestring(point(-8,-11), point(-5,-14), point(-8,-11)), linestring(point(3,-16), point(-15,-13), point(1.166708e+308,1.901147e+307), point(-8,6), point(3,-16))), point(0,-5)) ) ; insert into t1(a) values( geometrycollection(polygon(linestring(point(-9,0), point(-17,-15), point(-9,0)), linestring(point(-11,1), point(18,12), point(15,3), point(7,0), point(-11,1)), linestring(point(19,5), point(19,5)), linestring(point(17,-11), point(8,4), point(17,-11)), linestring(point(14914539334033432000000000000000000000.000000,127247994336690690000000000000000000000.000000), point(-14,-7), point(13,-2))), point(-4,-7), polygon(linestring(point(-18,9), point(11,-1), point(-18,9)), linestring(point(9,-3), point(9,-3)), linestring(point(-7,-9), point(9,-11), point(11,14), point(1.663324e+308,1.572127e+308)), linestring(point(-15,4), point(18,12), point(7,2), point(-15,4)), linestring(point(-15,-18), point(-20,-15), point(1152921504606846972,34359738370))), polygon(linestring(point(-5,-19), point(-11,11), point(10,5), point(-7,13), point(-5,-19)), linestring(point(-8,-6), point(-4,16), point(-8,-6)), linestring(point(-6,-10), point(3,-12), point(-6,-10)), linestring(point(-16,1), point(20,-12), point(-16,1)), linestring(point(-8,5), point(-20,-4), point(4,1), point(-6,-6), point(-8,5)), linestring(point(-8,-11), point(-5,-14), point(-8,-11)), linestring(point(3,-16), point(-15,-13), point(1.166708e+308,1.901147e+307), point(-8,6), point(3,-16))), point(0,-5)) ) ;
insert into t1(a) values( geometrycollection(linestring(point(-33,99), point(99,-87), point(38,-79), point(33,-39), point(-91,-8), point(46,-87))) ) ; insert into t1(a) values( geometrycollection(linestring(point(-33,99), point(99,-87), point(38,-79), point(33,-39), point(-91,-8), point(46,-87))) ) ;
insert into t1 select * from t1;
insert into t1 select * from t1;
insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
......
-- source include/innodb_page_size.inc
-- source include/innodb_row_format.inc
-- source ../../../t/gis-rtree.test
--source include/not_embedded.inc
--source include/have_innodb.inc
--source include/innodb_page_size_small.inc
# Test the redundant format
LET $file_per_table='off';
LET $file_format='Antelope';
LET $row_format=REDUNDANT;
--source include/innodb_gis_row_format_basic.inc
# Test the compressed format
LET $file_per_table='on';
LET $file_format='Barracuda';
LET $row_format=COMPRESSED;
--source include/innodb_gis_row_format_basic.inc
# Test the dynamic format
LET $file_per_table='on';
LET $file_format='Barracuda';
LET $row_format=DYNAMIC;
--source include/innodb_gis_row_format_basic.inc
# Test the compact format
LET $file_per_table='off';
LET $file_format='Antelope';
LET $row_format=COMPACT;
--source include/innodb_gis_row_format_basic.inc
...@@ -4,17 +4,15 @@ ...@@ -4,17 +4,15 @@
# Not supported in embedded # Not supported in embedded
--source include/not_embedded.inc --source include/not_embedded.inc
--source include/have_innodb.inc --source include/innodb_page_size_small.inc
--source include/have_innodb_zip.inc
--source include/have_debug.inc --source include/have_debug.inc
--source include/big_test.inc --source include/big_test.inc
# Valgrind takes too much time on PB2 even in the --big-test runs. # Valgrind takes too much time on PB2 even in the --big-test runs.
--source include/not_valgrind.inc --source include/not_valgrind.inc
# Create table with R-tree index. SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency;
SET GLOBAL innodb_file_per_table=1; SET GLOBAL innodb_purge_rseg_truncate_frequency = 1;
#Create table with R-tree index.
create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb ROW_FORMAT=COMPRESSED; create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb ROW_FORMAT=COMPRESSED;
# Insert enough values to let R-tree split. # Insert enough values to let R-tree split.
...@@ -53,12 +51,14 @@ select count(*) from t1 where MBRWithin(t1.c2, @g1); ...@@ -53,12 +51,14 @@ select count(*) from t1 where MBRWithin(t1.c2, @g1);
set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))'); set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))');
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
SET @saved_dbug = @@SESSION.debug_dbug;
SET DEBUG='+d,page_copy_rec_list_start_compress_fail'; SET DEBUG='+d,page_copy_rec_list_start_compress_fail';
delete from t1; delete from t1;
SET DEBUG='-d,page_copy_rec_list_start_compress_fail';
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
SET debug_dbug = @saved_dbug;
--source ../../innodb/include/wait_all_purged.inc
# Clean up. # Clean up.
drop table t1; drop table t1;
SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency;
...@@ -4,8 +4,7 @@ ...@@ -4,8 +4,7 @@
# Restarting is not supported in embedded # Restarting is not supported in embedded
--source include/not_embedded.inc --source include/not_embedded.inc
--source include/have_innodb.inc --source include/innodb_page_size_small.inc
--source include/have_innodb_zip.inc
--source include/big_test.inc --source include/big_test.inc
# Valgrind takes too much time on PB2 even in the --big-test runs. # Valgrind takes too much time on PB2 even in the --big-test runs.
--source include/not_valgrind.inc --source include/not_valgrind.inc
...@@ -29,31 +28,14 @@ delimiter ;| ...@@ -29,31 +28,14 @@ delimiter ;|
# Test level 3 rtree. # Test level 3 rtree.
CALL insert_t1(70000); CALL insert_t1(70000);
select count(*) from t1;
# Check table.
check table t1;
truncate table t1;
# Test crash recovery.
#
#
call mtr.add_suppression("InnoDB: A copy of page \[page id: space=[0-9]+, page number=[0-9]+\] in the doublewrite buffer slot [0-9]+ is not within space bounds");
# Test rtree enlarge recovery.
START TRANSACTION;
CALL insert_t1(5000);
#select count(*) from t1;
# Check table.
#check table t1;
COMMIT;
--let $shutdown_timeout=0 --let $shutdown_timeout=0
--source include/restart_mysqld.inc --source include/restart_mysqld.inc
check table t1;
select count(*) from t1;
delete from t1;
# Clean up. # Clean up.
drop procedure insert_t1; drop procedure insert_t1;
drop table t1; drop table t1;
# WL#6745 InnoDB R-tree support # WL#6745 InnoDB R-tree support
# This test case will test R-tree split. # This test case will test R-tree split.
# Not supported in embedded
--source include/not_embedded.inc
--source include/have_innodb.inc --source include/have_innodb.inc
--source include/have_debug.inc --source include/have_debug.inc
--source include/have_debug_sync.inc --source include/have_debug_sync.inc
...@@ -32,8 +29,7 @@ insert into t1 select * from t1; ...@@ -32,8 +29,7 @@ insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
connect (a,localhost,root,,); connect (a,localhost,root,,);
connection a; SET debug_dbug='+d,rtr_pcur_move_to_next_return';
SET SESSION debug="+d,rtr_pcur_move_to_next_return";
set session transaction isolation level serializable; set session transaction isolation level serializable;
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
...@@ -41,9 +37,7 @@ SET DEBUG_SYNC = 'RESET'; ...@@ -41,9 +37,7 @@ SET DEBUG_SYNC = 'RESET';
SET DEBUG_SYNC = 'row_search_for_mysql_before_return SIGNAL started WAIT_FOR go_ahead'; SET DEBUG_SYNC = 'row_search_for_mysql_before_return SIGNAL started WAIT_FOR go_ahead';
--send select count(*) from t1 where MBRWithin(t1.c2, @g1); --send select count(*) from t1 where MBRWithin(t1.c2, @g1);
--echo # Establish session con1 (user=root)
connect (con1,localhost,root,,); connect (con1,localhost,root,,);
connection con1;
set session transaction isolation level serializable; set session transaction isolation level serializable;
SET DEBUG_SYNC = 'now WAIT_FOR started'; SET DEBUG_SYNC = 'now WAIT_FOR started';
...@@ -92,7 +86,6 @@ select count(*) from t1 where MBRwithin(t1.c2, @g1); ...@@ -92,7 +86,6 @@ select count(*) from t1 where MBRwithin(t1.c2, @g1);
# The split will replicate locks across pages # The split will replicate locks across pages
connect (b,localhost,root,,); connect (b,localhost,root,,);
connection b;
set session transaction isolation level serializable; set session transaction isolation level serializable;
set session innodb_lock_wait_timeout = 1; set session innodb_lock_wait_timeout = 1;
...@@ -292,15 +285,8 @@ insert into t1 values (1200, Point(950, 950)); ...@@ -292,15 +285,8 @@ insert into t1 values (1200, Point(950, 950));
connection a; connection a;
select sleep(2); select sleep(2);
commit; commit;
connection a;
SET SESSION debug="-d,rtr_pcur_move_to_next_return";
disconnect a; disconnect a;
--source include/wait_until_disconnected.inc
connection b;
disconnect b; disconnect b;
--source include/wait_until_disconnected.inc
# Clean up. # Clean up.
connection default; connection default;
...@@ -321,7 +307,6 @@ INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(7 7, 200 200)')); ...@@ -321,7 +307,6 @@ INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(7 7, 200 200)'));
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)')); INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(8 8, 210 210)'));
connect (a,localhost,root,,); connect (a,localhost,root,,);
connection a;
SET SESSION debug="+d,rtr_pcur_move_to_next_return"; SET SESSION debug="+d,rtr_pcur_move_to_next_return";
set transaction isolation level serializable; set transaction isolation level serializable;
...@@ -330,7 +315,6 @@ set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100) ...@@ -330,7 +315,6 @@ set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100)
select count(*) from t1 where MBRwithin(t1.c2, @g1); select count(*) from t1 where MBRwithin(t1.c2, @g1);
connect (b,localhost,root,,); connect (b,localhost,root,,);
connection b;
# This should be successful # This should be successful
delete from t1 where c1 = 1; delete from t1 where c1 = 1;
...@@ -432,20 +416,14 @@ rollback; ...@@ -432,20 +416,14 @@ rollback;
SET DEBUG_SYNC= 'now SIGNAL sigb'; SET DEBUG_SYNC= 'now SIGNAL sigb';
connection a; connection a;
--reap; reap;
connection default; connection default;
drop procedure insert_t1; drop procedure insert_t1;
DROP TABLE t1; DROP TABLE t1;
connection a;
SET SESSION debug="-d,rtr_pcur_move_to_next_return";
disconnect a; disconnect a;
--source include/wait_until_disconnected.inc
connection b;
disconnect b; disconnect b;
--source include/wait_until_disconnected.inc
connection default; connection default;
SET DEBUG_SYNC = 'RESET'; SET DEBUG_SYNC = 'RESET';
This diff is collapsed.
# This test case will test R-tree purge. # This test case will test R-tree purge.
# Not supported in embedded --source include/innodb_page_size.inc
--source include/not_embedded.inc
--source include/have_innodb.inc
--source include/have_innodb_zip.inc
--source include/have_debug.inc
--source include/big_test.inc
# Valgrind takes too much time on PB2 even in the --big-test runs. # Valgrind takes too much time on PB2 even in the --big-test runs.
--source include/not_valgrind.inc --source include/not_valgrind.inc
# Temporarily disable it for 4k page size. Since it'll take too long SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency;
# time. SET GLOBAL innodb_purge_rseg_truncate_frequency = 1;
--disable_warnings
if (`SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE LOWER(variable_name) = 'innodb_page_size' AND variable_value = 4096`)
{
--skip Test requires InnoDB with not 4k Page size.
}
--enable_warnings
create table t ( create table t (
a point not null,b point not null,c point, b point not null,d point not null, spatial key (d),spatial key (b)
d point not null,e point,f point,
spatial key (d),spatial key (b)
) engine=innodb; ) engine=innodb;
delimiter |; --disable_query_log
create procedure p(i int) set @p=point(1,1);
begin let $n=200;
declare n int default 0; while ($n) {
declare continue handler for sqlexception begin end; begin;
delete from t; insert into t values(@p,@p),(@p,@p);
repeat insert into t select @p,@p
set @p=point(1,1); from t a,t b,t c,t d,t e,t f,t g;
insert into t values(@p,@p,@p,@p,@p,@p); delete from t;
insert into t values(@p,@p,@p,@p,@p,@p); commit;
insert into t select @p,@p,@p,@p,@p,@p dec $n;
from t a,t b,t c,t d,t e,t f,t g,t h,t i,t j; }
delete from t; --enable_query_log
set n:=n+1;
until n >= i end repeat;
end|
delimiter ;|
call p(200);
--source include/wait_all_purged.inc --source ../../innodb/include/wait_all_purged.inc
# Clean up. # Clean up.
drop procedure p;
drop table t; drop table t;
SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency;
This diff is collapsed.
...@@ -18,7 +18,6 @@ ...@@ -18,7 +18,6 @@
#include <my_global.h> #include <my_global.h>
#include "sql_priv.h" #include "sql_priv.h"
#include "mysqld_error.h"
#ifndef MYSQL_CLIENT #ifndef MYSQL_CLIENT
#include "unireg.h" #include "unireg.h"
...@@ -44,6 +43,8 @@ ...@@ -44,6 +43,8 @@
#include <strfunc.h> #include <strfunc.h>
#include "compat56.h" #include "compat56.h"
#include "wsrep_mysqld.h" #include "wsrep_mysqld.h"
#else
#include "mysqld_error.h"
#endif /* MYSQL_CLIENT */ #endif /* MYSQL_CLIENT */
#include <my_bitmap.h> #include <my_bitmap.h>
...@@ -1935,9 +1936,9 @@ Log_event* Log_event::read_log_event(IO_CACHE* file, mysql_mutex_t* log_lock, ...@@ -1935,9 +1936,9 @@ Log_event* Log_event::read_log_event(IO_CACHE* file, mysql_mutex_t* log_lock,
#endif #endif
if (event.length() >= OLD_HEADER_LEN) if (event.length() >= OLD_HEADER_LEN)
sql_print_error("Error in Log_event::read_log_event(): '%s'," sql_print_error("Error in Log_event::read_log_event(): '%s',"
" data_len: %lu, event_type: %d", error, " data_len: %lu, event_type: %u", error,
uint4korr(&event[EVENT_LEN_OFFSET]), (ulong) uint4korr(&event[EVENT_LEN_OFFSET]),
(uchar)event[EVENT_TYPE_OFFSET]); (uint) (uchar)event[EVENT_TYPE_OFFSET]);
else else
sql_print_error("Error in Log_event::read_log_event(): '%s'", error); sql_print_error("Error in Log_event::read_log_event(): '%s'", error);
/* /*
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
#include "sql_array.h" #include "sql_array.h"
#include "rpl_rli.h" #include "rpl_rli.h"
#include <lf.h> #include <lf.h>
#include <mysqld_error.h> #include "unireg.h"
#include <mysql/plugin.h> #include <mysql/plugin.h>
#include <mysql/service_thd_wait.h> #include <mysql/service_thd_wait.h>
#include <mysql/psi/mysql_stage.h> #include <mysql/psi/mysql_stage.h>
......
This diff is collapsed.
This diff is collapsed.
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
#include <sql_common.h> #include <sql_common.h>
#include <errmsg.h> #include <errmsg.h>
#include <ssl_compat.h> #include <ssl_compat.h>
#include <mysqld_error.h> #include "unireg.h"
#include <mysys_err.h> #include <mysys_err.h>
#include "rpl_handler.h" #include "rpl_handler.h"
#include <signal.h> #include <signal.h>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment