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
This commit is contained in:
Monty 2018-01-05 16:52:40 +02:00
commit e9a2082634
76 changed files with 2059 additions and 5591 deletions

View File

@ -1,3 +1,3 @@
MYSQL_VERSION_MAJOR=10 MYSQL_VERSION_MAJOR=10
MYSQL_VERSION_MINOR=2 MYSQL_VERSION_MINOR=2
MYSQL_VERSION_PATCH=12 MYSQL_VERSION_PATCH=13

View File

@ -1,420 +0,0 @@
--source include/have_innodb.inc
--source include/not_embedded.inc
eval SET GLOBAL innodb_file_per_table=$file_per_table;
eval SET GLOBAL innodb_file_format=$file_format;
#
# This test is the same as innodb_gis_rollback
#
eval CREATE TABLE t1 (
id bigint(12) unsigned NOT NULL auto_increment,
c2 varchar(15) collate utf8_bin DEFAULT NULL,
c1 varchar(15) collate utf8_bin DEFAULT NULL,
c3 varchar(10) collate utf8_bin DEFAULT NULL,
spatial_point point NOT NULL,
PRIMARY KEY(id),
SPATIAL KEY (spatial_point)
) ROW_FORMAT=$row_format ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES
('y', 's', 'j', ST_GeomFromText('POINT(167 74)')),
('r', 'n', 'd', ST_GeomFromText('POINT(215 118)')),
('g', 'n', 'e', ST_GeomFromText('POINT(203 98)')),
('h', 'd', 'd', ST_GeomFromText('POINT(54 193)')),
('r', 'x', 'y', ST_GeomFromText('POINT(47 69)')),
('t', 'q', 'r', ST_GeomFromText('POINT(109 42)')),
('a', 'z', 'd', ST_GeomFromText('POINT(0 154)')),
('x', 'v', 'o', ST_GeomFromText('POINT(174 131)')),
('b', 'r', 'a', ST_GeomFromText('POINT(114 253)')),
('x', 'z', 'i', ST_GeomFromText('POINT(163 21)')),
('w', 'p', 'i', ST_GeomFromText('POINT(42 102)')),
('g', 'j', 'j', ST_GeomFromText('POINT(170 133)')),
('m', 'g', 'n', ST_GeomFromText('POINT(28 22)')),
('b', 'z', 'h', ST_GeomFromText('POINT(174 28)')),
('q', 'k', 'f', ST_GeomFromText('POINT(233 73)')),
('w', 'w', 'a', ST_GeomFromText('POINT(124 200)')),
('t', 'j', 'w', ST_GeomFromText('POINT(252 101)')),
('d', 'r', 'd', ST_GeomFromText('POINT(98 18)')),
('w', 'o', 'y', ST_GeomFromText('POINT(165 31)')),
('y', 'h', 't', ST_GeomFromText('POINT(14 220)')),
('d', 'p', 'u', ST_GeomFromText('POINT(223 196)')),
('g', 'y', 'g', ST_GeomFromText('POINT(207 96)')),
('x', 'm', 'n', ST_GeomFromText('POINT(214 3)')),
('g', 'v', 'e', ST_GeomFromText('POINT(140 205)')),
('g', 'm', 'm', ST_GeomFromText('POINT(10 236)')),
('i', 'r', 'j', ST_GeomFromText('POINT(137 228)')),
('w', 's', 'p', ST_GeomFromText('POINT(115 6)')),
('o', 'n', 'k', ST_GeomFromText('POINT(158 129)')),
('j', 'h', 'l', ST_GeomFromText('POINT(129 72)')),
('f', 'x', 'l', ST_GeomFromText('POINT(139 207)')),
('u', 'd', 'n', ST_GeomFromText('POINT(125 109)')),
('b', 'a', 'z', ST_GeomFromText('POINT(30 32)')),
('m', 'h', 'o', ST_GeomFromText('POINT(251 251)')),
('f', 'r', 'd', ST_GeomFromText('POINT(243 211)')),
('b', 'd', 'r', ST_GeomFromText('POINT(232 80)')),
('g', 'k', 'v', ST_GeomFromText('POINT(15 100)')),
('i', 'f', 'c', ST_GeomFromText('POINT(109 66)')),
('r', 't', 'j', ST_GeomFromText('POINT(178 6)')),
('y', 'n', 'f', ST_GeomFromText('POINT(233 211)')),
('f', 'y', 'm', ST_GeomFromText('POINT(99 16)')),
('z', 'q', 'l', ST_GeomFromText('POINT(39 49)')),
('j', 'c', 'r', ST_GeomFromText('POINT(75 187)')),
('c', 'y', 'y', ST_GeomFromText('POINT(246 253)')),
('w', 'u', 'd', ST_GeomFromText('POINT(56 190)')),
('n', 'q', 'm', ST_GeomFromText('POINT(73 149)')),
('d', 'y', 'a', ST_GeomFromText('POINT(134 6)')),
('z', 's', 'w', ST_GeomFromText('POINT(216 225)')),
('d', 'u', 'k', ST_GeomFromText('POINT(132 70)')),
('f', 'v', 't', ST_GeomFromText('POINT(187 141)')),
('r', 'r', 'a', ST_GeomFromText('POINT(152 39)')),
('y', 'p', 'o', ST_GeomFromText('POINT(45 27)')),
('p', 'n', 'm', ST_GeomFromText('POINT(228 148)')),
('e', 'g', 'e', ST_GeomFromText('POINT(88 81)')),
('m', 'a', 'h', ST_GeomFromText('POINT(35 29)')),
('m', 'h', 'f', ST_GeomFromText('POINT(30 71)')),
('h', 'k', 'i', ST_GeomFromText('POINT(244 78)')),
('z', 'v', 'd', ST_GeomFromText('POINT(241 38)')),
('q', 'l', 'j', ST_GeomFromText('POINT(13 71)')),
('s', 'p', 'g', ST_GeomFromText('POINT(108 38)')),
('q', 's', 'j', ST_GeomFromText('POINT(92 101)')),
('l', 'h', 'g', ST_GeomFromText('POINT(120 78)')),
('w', 't', 'b', ST_GeomFromText('POINT(193 109)')),
('b', 's', 's', ST_GeomFromText('POINT(223 211)')),
('w', 'w', 'y', ST_GeomFromText('POINT(122 42)')),
('q', 'c', 'c', ST_GeomFromText('POINT(104 102)')),
('w', 'g', 'n', ST_GeomFromText('POINT(213 120)')),
('p', 'q', 'a', ST_GeomFromText('POINT(247 148)')),
('c', 'z', 'e', ST_GeomFromText('POINT(18 106)')),
('z', 'u', 'n', ST_GeomFromText('POINT(70 133)')),
('j', 'n', 'x', ST_GeomFromText('POINT(232 13)')),
('e', 'h', 'f', ST_GeomFromText('POINT(22 135)')),
('w', 'l', 'f', ST_GeomFromText('POINT(9 180)')),
('a', 'v', 'q', ST_GeomFromText('POINT(163 228)')),
('i', 'z', 'o', ST_GeomFromText('POINT(180 100)')),
('e', 'c', 'l', ST_GeomFromText('POINT(182 231)')),
('c', 'k', 'o', ST_GeomFromText('POINT(19 60)')),
('q', 'f', 'p', ST_GeomFromText('POINT(79 95)')),
('m', 'd', 'r', ST_GeomFromText('POINT(3 127)')),
('m', 'e', 't', ST_GeomFromText('POINT(136 154)')),
('w', 'w', 'w', ST_GeomFromText('POINT(102 15)')),
('l', 'n', 'q', ST_GeomFromText('POINT(71 196)')),
('p', 'k', 'c', ST_GeomFromText('POINT(47 139)')),
('j', 'o', 'r', ST_GeomFromText('POINT(177 128)')),
('j', 'q', 'a', ST_GeomFromText('POINT(170 6)')),
('b', 'a', 'o', ST_GeomFromText('POINT(63 211)')),
('g', 's', 'o', ST_GeomFromText('POINT(144 251)')),
('w', 'u', 'w', ST_GeomFromText('POINT(221 214)')),
('g', 'a', 'm', ST_GeomFromText('POINT(14 102)')),
('u', 'q', 'z', ST_GeomFromText('POINT(86 200)')),
('k', 'a', 'm', ST_GeomFromText('POINT(144 222)')),
('j', 'u', 'r', ST_GeomFromText('POINT(216 142)')),
('q', 'k', 'v', ST_GeomFromText('POINT(121 236)')),
('p', 'o', 'r', ST_GeomFromText('POINT(108 102)')),
('b', 'd', 'x', ST_GeomFromText('POINT(127 198)')),
('k', 's', 'a', ST_GeomFromText('POINT(2 150)')),
('f', 'm', 'f', ST_GeomFromText('POINT(160 191)')),
('q', 'y', 'x', ST_GeomFromText('POINT(98 111)')),
('o', 'f', 'm', ST_GeomFromText('POINT(232 218)')),
('c', 'w', 'j', ST_GeomFromText('POINT(156 165)')),
('s', 'q', 'v', ST_GeomFromText('POINT(98 161)'));
INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES
('f', 'y', 'p', ST_GeomFromText('POINT(109 235)')),
('b', 'e', 'v', ST_GeomFromText('POINT(20 48)')),
('i', 'u', 'f', ST_GeomFromText('POINT(15 55)')),
('o', 'r', 'z', ST_GeomFromText('POINT(105 64)')),
('a', 'p', 'a', ST_GeomFromText('POINT(142 236)')),
('g', 'i', 'k', ST_GeomFromText('POINT(10 49)')),
('x', 'z', 'x', ST_GeomFromText('POINT(192 200)')),
('c', 'v', 'r', ST_GeomFromText('POINT(94 168)')),
('y', 'z', 'e', ST_GeomFromText('POINT(141 51)')),
('h', 'm', 'd', ST_GeomFromText('POINT(35 251)')),
('v', 'm', 'q', ST_GeomFromText('POINT(44 90)')),
('j', 'l', 'z', ST_GeomFromText('POINT(67 237)')),
('i', 'v', 'a', ST_GeomFromText('POINT(75 14)')),
('b', 'q', 't', ST_GeomFromText('POINT(153 33)')),
('e', 'm', 'a', ST_GeomFromText('POINT(247 49)')),
('l', 'y', 'g', ST_GeomFromText('POINT(56 203)')),
('v', 'o', 'r', ST_GeomFromText('POINT(90 54)')),
('r', 'n', 'd', ST_GeomFromText('POINT(135 83)')),
('j', 't', 'u', ST_GeomFromText('POINT(174 239)')),
('u', 'n', 'g', ST_GeomFromText('POINT(104 191)')),
('p', 'q', 'y', ST_GeomFromText('POINT(63 171)')),
('o', 'q', 'p', ST_GeomFromText('POINT(192 103)')),
('f', 'x', 'e', ST_GeomFromText('POINT(244 30)')),
('n', 'x', 'c', ST_GeomFromText('POINT(92 103)')),
('r', 'q', 'z', ST_GeomFromText('POINT(166 20)')),
('s', 'a', 'j', ST_GeomFromText('POINT(137 205)')),
('z', 't', 't', ST_GeomFromText('POINT(99 134)')),
('o', 'm', 'j', ST_GeomFromText('POINT(217 3)')),
('n', 'h', 'j', ST_GeomFromText('POINT(211 17)')),
('v', 'v', 'a', ST_GeomFromText('POINT(41 137)')),
('q', 'o', 'j', ST_GeomFromText('POINT(5 92)')),
('z', 'y', 'e', ST_GeomFromText('POINT(175 212)')),
('j', 'z', 'h', ST_GeomFromText('POINT(224 194)')),
('a', 'g', 'm', ST_GeomFromText('POINT(31 119)')),
('p', 'c', 'f', ST_GeomFromText('POINT(17 221)')),
('t', 'h', 'k', ST_GeomFromText('POINT(26 203)')),
('u', 'w', 'p', ST_GeomFromText('POINT(47 185)')),
('z', 'a', 'c', ST_GeomFromText('POINT(61 133)')),
('u', 'k', 'a', ST_GeomFromText('POINT(210 115)')),
('k', 'f', 'h', ST_GeomFromText('POINT(125 113)')),
('t', 'v', 'y', ST_GeomFromText('POINT(12 239)')),
('u', 'v', 'd', ST_GeomFromText('POINT(90 24)')),
('m', 'y', 'w', ST_GeomFromText('POINT(25 243)')),
('d', 'n', 'g', ST_GeomFromText('POINT(122 92)')),
('z', 'm', 'f', ST_GeomFromText('POINT(235 110)')),
('q', 'd', 'f', ST_GeomFromText('POINT(233 217)')),
('a', 'v', 'u', ST_GeomFromText('POINT(69 59)')),
('x', 'k', 'p', ST_GeomFromText('POINT(240 14)')),
('i', 'v', 'r', ST_GeomFromText('POINT(154 42)')),
('w', 'h', 'l', ST_GeomFromText('POINT(178 156)')),
('d', 'h', 'n', ST_GeomFromText('POINT(65 157)')),
('c', 'k', 'z', ST_GeomFromText('POINT(62 33)')),
('e', 'l', 'w', ST_GeomFromText('POINT(162 1)')),
('r', 'f', 'i', ST_GeomFromText('POINT(127 71)')),
('q', 'm', 'c', ST_GeomFromText('POINT(63 118)')),
('c', 'h', 'u', ST_GeomFromText('POINT(205 203)')),
('d', 't', 'p', ST_GeomFromText('POINT(234 87)')),
('s', 'g', 'h', ST_GeomFromText('POINT(149 34)')),
('o', 'b', 'q', ST_GeomFromText('POINT(159 179)')),
('k', 'u', 'f', ST_GeomFromText('POINT(202 254)')),
('u', 'f', 'g', ST_GeomFromText('POINT(70 15)')),
('x', 's', 'b', ST_GeomFromText('POINT(25 181)')),
('s', 'c', 'g', ST_GeomFromText('POINT(252 17)')),
('a', 'c', 'f', ST_GeomFromText('POINT(89 67)')),
('r', 'e', 'q', ST_GeomFromText('POINT(55 54)')),
('f', 'i', 'k', ST_GeomFromText('POINT(178 230)')),
('p', 'e', 'l', ST_GeomFromText('POINT(198 28)')),
('w', 'o', 'd', ST_GeomFromText('POINT(204 189)')),
('c', 'a', 'g', ST_GeomFromText('POINT(230 178)')),
('r', 'o', 'e', ST_GeomFromText('POINT(61 116)')),
('w', 'a', 'a', ST_GeomFromText('POINT(178 237)')),
('v', 'd', 'e', ST_GeomFromText('POINT(70 85)')),
('k', 'c', 'e', ST_GeomFromText('POINT(147 118)')),
('d', 'q', 't', ST_GeomFromText('POINT(218 77)')),
('k', 'g', 'f', ST_GeomFromText('POINT(192 113)')),
('w', 'n', 'e', ST_GeomFromText('POINT(92 124)')),
('r', 'm', 'q', ST_GeomFromText('POINT(130 65)')),
('o', 'r', 'r', ST_GeomFromText('POINT(174 233)')),
('k', 'n', 't', ST_GeomFromText('POINT(175 147)')),
('q', 'm', 'r', ST_GeomFromText('POINT(18 208)')),
('l', 'd', 'i', ST_GeomFromText('POINT(13 104)')),
('w', 'o', 'y', ST_GeomFromText('POINT(207 39)')),
('p', 'u', 'o', ST_GeomFromText('POINT(114 31)')),
('y', 'a', 'p', ST_GeomFromText('POINT(106 59)')),
('a', 'x', 'z', ST_GeomFromText('POINT(17 57)')),
('v', 'h', 'x', ST_GeomFromText('POINT(170 13)')),
('t', 's', 'u', ST_GeomFromText('POINT(84 18)')),
('z', 'z', 'f', ST_GeomFromText('POINT(250 197)')),
('l', 'z', 't', ST_GeomFromText('POINT(59 80)')),
('j', 'g', 's', ST_GeomFromText('POINT(54 26)')),
('g', 'v', 'm', ST_GeomFromText('POINT(89 98)')),
('q', 'v', 'b', ST_GeomFromText('POINT(39 240)')),
('x', 'k', 'v', ST_GeomFromText('POINT(246 207)')),
('k', 'u', 'i', ST_GeomFromText('POINT(105 111)')),
('w', 'z', 's', ST_GeomFromText('POINT(235 8)')),
('d', 'd', 'd', ST_GeomFromText('POINT(105 4)')),
('c', 'z', 'q', ST_GeomFromText('POINT(13 140)')),
('m', 'k', 'i', ST_GeomFromText('POINT(208 120)')),
('g', 'a', 'g', ST_GeomFromText('POINT(9 182)')),
('z', 'j', 'r', ST_GeomFromText('POINT(149 153)')),
('h', 'f', 'g', ST_GeomFromText('POINT(81 236)')),
('m', 'e', 'q', ST_GeomFromText('POINT(209 215)')),
('c', 'h', 'y', ST_GeomFromText('POINT(235 70)')),
('i', 'e', 'g', ST_GeomFromText('POINT(138 26)')),
('m', 't', 'u', ST_GeomFromText('POINT(119 237)')),
('o', 'w', 's', ST_GeomFromText('POINT(193 166)')),
('f', 'm', 'q', ST_GeomFromText('POINT(85 96)')),
('x', 'l', 'x', ST_GeomFromText('POINT(58 115)')),
('x', 'q', 'u', ST_GeomFromText('POINT(108 210)')),
('b', 'h', 'i', ST_GeomFromText('POINT(250 139)')),
('y', 'd', 'x', ST_GeomFromText('POINT(199 135)')),
('w', 'h', 'p', ST_GeomFromText('POINT(247 233)')),
('p', 'z', 't', ST_GeomFromText('POINT(148 249)')),
('q', 'a', 'u', ST_GeomFromText('POINT(174 78)')),
('v', 't', 'm', ST_GeomFromText('POINT(70 228)')),
('t', 'n', 'f', ST_GeomFromText('POINT(123 2)')),
('x', 't', 'b', ST_GeomFromText('POINT(35 50)')),
('r', 'j', 'f', ST_GeomFromText('POINT(200 51)')),
('s', 'q', 'o', ST_GeomFromText('POINT(23 184)')),
('u', 'v', 'z', ST_GeomFromText('POINT(7 113)')),
('v', 'u', 'l', ST_GeomFromText('POINT(145 190)')),
('o', 'k', 'i', ST_GeomFromText('POINT(161 122)')),
('l', 'y', 'e', ST_GeomFromText('POINT(17 232)')),
('t', 'b', 'e', ST_GeomFromText('POINT(120 50)')),
('e', 's', 'u', ST_GeomFromText('POINT(254 1)')),
('d', 'd', 'u', ST_GeomFromText('POINT(167 140)')),
('o', 'b', 'x', ST_GeomFromText('POINT(186 237)')),
('m', 's', 's', ST_GeomFromText('POINT(172 149)')),
('t', 'y', 'a', ST_GeomFromText('POINT(149 85)')),
('x', 't', 'r', ST_GeomFromText('POINT(10 165)')),
('g', 'c', 'e', ST_GeomFromText('POINT(95 165)')),
('e', 'e', 'z', ST_GeomFromText('POINT(98 65)')),
('f', 'v', 'i', ST_GeomFromText('POINT(149 144)')),
('o', 'p', 'm', ST_GeomFromText('POINT(233 67)')),
('t', 'u', 'b', ST_GeomFromText('POINT(109 215)')),
('o', 'o', 'b', ST_GeomFromText('POINT(130 48)')),
('e', 'm', 'h', ST_GeomFromText('POINT(88 189)')),
('e', 'v', 'y', ST_GeomFromText('POINT(55 29)')),
('e', 't', 'm', ST_GeomFromText('POINT(129 55)')),
('p', 'p', 'i', ST_GeomFromText('POINT(126 222)')),
('c', 'i', 'c', ST_GeomFromText('POINT(19 158)')),
('c', 'b', 's', ST_GeomFromText('POINT(13 19)')),
('u', 'y', 'a', ST_GeomFromText('POINT(114 5)')),
('a', 'o', 'f', ST_GeomFromText('POINT(227 232)')),
('t', 'c', 'z', ST_GeomFromText('POINT(63 62)')),
('d', 'o', 'k', ST_GeomFromText('POINT(48 228)')),
('x', 'c', 'e', ST_GeomFromText('POINT(204 2)')),
('e', 'e', 'g', ST_GeomFromText('POINT(125 43)')),
('o', 'r', 'f', ST_GeomFromText('POINT(171 140)'));
INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES
('b', 'c', 'e', ST_GeomFromText('POINT(41 137)')),
('p', 'y', 'k', ST_GeomFromText('POINT(50 22)')),
('s', 'c', 'h', ST_GeomFromText('POINT(208 173)')),
('x', 'u', 'l', ST_GeomFromText('POINT(199 175)')),
('s', 'r', 'h', ST_GeomFromText('POINT(85 192)')),
('j', 'k', 'u', ST_GeomFromText('POINT(18 25)')),
('p', 'w', 'h', ST_GeomFromText('POINT(152 197)')),
('e', 'd', 'c', ST_GeomFromText('POINT(229 3)')),
('o', 'x', 'k', ST_GeomFromText('POINT(187 155)')),
('o', 'b', 'k', ST_GeomFromText('POINT(208 150)')),
('d', 'a', 'j', ST_GeomFromText('POINT(70 87)')),
('f', 'e', 'k', ST_GeomFromText('POINT(156 96)')),
('u', 'y', 'p', ST_GeomFromText('POINT(239 193)')),
('n', 'v', 'p', ST_GeomFromText('POINT(223 98)')),
('z', 'j', 'r', ST_GeomFromText('POINT(87 89)')),
('h', 'x', 'x', ST_GeomFromText('POINT(92 0)')),
('r', 'v', 'r', ST_GeomFromText('POINT(159 139)')),
('v', 'g', 'g', ST_GeomFromText('POINT(16 229)')),
('z', 'k', 'u', ST_GeomFromText('POINT(99 52)')),
('p', 'p', 'o', ST_GeomFromText('POINT(105 125)')),
('w', 'h', 'y', ST_GeomFromText('POINT(105 154)')),
('v', 'y', 'z', ST_GeomFromText('POINT(134 238)')),
('x', 'o', 'o', ST_GeomFromText('POINT(178 88)')),
('z', 'w', 'd', ST_GeomFromText('POINT(123 60)')),
('q', 'f', 'u', ST_GeomFromText('POINT(64 90)')),
('s', 'n', 't', ST_GeomFromText('POINT(50 138)')),
('v', 'p', 't', ST_GeomFromText('POINT(114 91)')),
('a', 'o', 'n', ST_GeomFromText('POINT(78 43)')),
('k', 'u', 'd', ST_GeomFromText('POINT(185 161)')),
('w', 'd', 'n', ST_GeomFromText('POINT(25 92)')),
('k', 'w', 'a', ST_GeomFromText('POINT(59 238)')),
('t', 'c', 'f', ST_GeomFromText('POINT(65 87)')),
('g', 's', 'p', ST_GeomFromText('POINT(238 126)')),
('d', 'n', 'y', ST_GeomFromText('POINT(107 173)')),
('l', 'a', 'w', ST_GeomFromText('POINT(125 152)')),
('m', 'd', 'j', ST_GeomFromText('POINT(146 53)')),
('q', 'm', 'c', ST_GeomFromText('POINT(217 187)')),
('i', 'r', 'r', ST_GeomFromText('POINT(6 113)')),
('e', 'j', 'b', ST_GeomFromText('POINT(37 83)')),
('w', 'w', 'h', ST_GeomFromText('POINT(83 199)')),
('k', 'b', 's', ST_GeomFromText('POINT(170 64)')),
('s', 'b', 'c', ST_GeomFromText('POINT(163 130)')),
('c', 'h', 'a', ST_GeomFromText('POINT(141 3)')),
('k', 'j', 'u', ST_GeomFromText('POINT(143 76)')),
('r', 'h', 'o', ST_GeomFromText('POINT(243 92)')),
('i', 'd', 'b', ST_GeomFromText('POINT(205 13)')),
('r', 'y', 'q', ST_GeomFromText('POINT(138 8)')),
('m', 'o', 'i', ST_GeomFromText('POINT(36 45)')),
('v', 'g', 'm', ST_GeomFromText('POINT(0 40)')),
('f', 'e', 'i', ST_GeomFromText('POINT(76 6)')),
('c', 'q', 'q', ST_GeomFromText('POINT(115 248)')),
('x', 'c', 'i', ST_GeomFromText('POINT(29 74)')),
('l', 's', 't', ST_GeomFromText('POINT(83 18)')),
('t', 't', 'a', ST_GeomFromText('POINT(26 168)')),
('u', 'n', 'x', ST_GeomFromText('POINT(200 110)')),
('j', 'b', 'd', ST_GeomFromText('POINT(216 136)')),
('s', 'p', 'w', ST_GeomFromText('POINT(38 156)')),
('f', 'b', 'v', ST_GeomFromText('POINT(29 186)')),
('v', 'e', 'r', ST_GeomFromText('POINT(149 40)')),
('v', 't', 'm', ST_GeomFromText('POINT(184 24)')),
('y', 'g', 'a', ST_GeomFromText('POINT(219 105)')),
('s', 'f', 'i', ST_GeomFromText('POINT(114 130)')),
('e', 'q', 'h', ST_GeomFromText('POINT(203 135)')),
('h', 'g', 'b', ST_GeomFromText('POINT(9 208)')),
('o', 'l', 'r', ST_GeomFromText('POINT(245 79)')),
('s', 's', 'v', ST_GeomFromText('POINT(238 198)')),
('w', 'w', 'z', ST_GeomFromText('POINT(209 232)')),
('v', 'd', 'n', ST_GeomFromText('POINT(30 193)')),
('q', 'w', 'k', ST_GeomFromText('POINT(133 18)')),
('o', 'h', 'o', ST_GeomFromText('POINT(42 140)')),
('f', 'f', 'h', ST_GeomFromText('POINT(145 1)')),
('u', 's', 'r', ST_GeomFromText('POINT(70 62)')),
('x', 'n', 'q', ST_GeomFromText('POINT(33 86)')),
('u', 'p', 'v', ST_GeomFromText('POINT(232 220)')),
('z', 'e', 'a', ST_GeomFromText('POINT(130 69)')),
('r', 'u', 'z', ST_GeomFromText('POINT(243 241)')),
('b', 'n', 't', ST_GeomFromText('POINT(120 12)')),
('u', 'f', 's', ST_GeomFromText('POINT(190 212)')),
('a', 'd', 'q', ST_GeomFromText('POINT(235 191)')),
('f', 'q', 'm', ST_GeomFromText('POINT(176 2)')),
('n', 'c', 's', ST_GeomFromText('POINT(218 163)')),
('e', 'm', 'h', ST_GeomFromText('POINT(163 108)')),
('c', 'f', 'l', ST_GeomFromText('POINT(220 115)')),
('c', 'v', 'q', ST_GeomFromText('POINT(66 45)')),
('w', 'v', 'x', ST_GeomFromText('POINT(251 220)')),
('f', 'w', 'z', ST_GeomFromText('POINT(146 149)')),
('h', 'n', 'h', ST_GeomFromText('POINT(148 128)')),
('y', 'k', 'v', ST_GeomFromText('POINT(28 110)')),
('c', 'x', 'q', ST_GeomFromText('POINT(13 13)')),
('e', 'd', 's', ST_GeomFromText('POINT(91 190)')),
('c', 'w', 'c', ST_GeomFromText('POINT(10 231)')),
('u', 'j', 'n', ST_GeomFromText('POINT(250 21)')),
('w', 'n', 'x', ST_GeomFromText('POINT(141 69)')),
('f', 'p', 'y', ST_GeomFromText('POINT(228 246)')),
('d', 'q', 'f', ST_GeomFromText('POINT(194 22)')),
('d', 'z', 'l', ST_GeomFromText('POINT(233 181)')),
('c', 'a', 'q', ST_GeomFromText('POINT(183 96)')),
('m', 'i', 'd', ST_GeomFromText('POINT(117 226)')),
('z', 'y', 'y', ST_GeomFromText('POINT(62 81)')),
('g', 'v', 'm', ST_GeomFromText('POINT(66 158)'));
START TRANSACTION;
# following INSERTion will result in a node split
INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES
('f', 'x', 'p', ST_GeomFromText('POINT(92 181)'));
# Test rollback, this will result above split being rolled back, btr_compress
# gets called
ROLLBACK;
INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES
('f', 'x', 'p', ST_GeomFromText('POINT(92 181)'));
# create overlap on the bounding box in parent
INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES ('n', 'x', 'p', ST_GeomFromText('POINT(0 1280)'));
INSERT INTO t1 (c2, c1, c3, spatial_poINT) VALUES ('n', 'x', 'p', ST_GeomFromText('POINT(45 1280)'));
# Add a row in the cross section of the 2 bounding box
INSERT INTO t1 VALUES (1280, 'n', 'x', 'p', ST_GeomFromText('POINT(44 253)'));
# Delete this new poINT
DELETE FROM t1 WHERE id = 1280;
INSERT INTO t1 VALUES (1280, 'n', 'x', 'p', ST_GeomFromText('POINT(44 253)'));
START TRANSACTION;
DELETE FROM t1 WHERE id = 1280;
ROLLBACK;
# Test MBR increase
START TRANSACTION;
INSERT INTO t1 (c2, c1, c3, spatial_point) VALUES
('m', 'u', 'p', ST_GeomFromText('POINT(1192 1181)'));
ROLLBACK;
SELECT COUNT(*) FROM t1;
UPDATE t1 SET spatial_point = ST_GeomFromText('POINT(123 456)') WHERE id < 2000;
SET @g1 = ST_GeomFromText('Polygon((123 456, 123 678, 456 678,456 456,123 456))');
DELETE FROM t1 WHERE MBRContains(@g1, t1.spatial_point);
SELECT COUNT(*) FROM t1;
DROP TABLE t1;
SET GLOBAL innodb_file_per_table=default;
SET GLOBAL innodb_file_format=default;

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,8 @@
[redundant]
innodb_default_row_format=redundant
[compact]
innodb_default_row_format=compact
[dynamic]
innodb_default_row_format=dynamic

View File

@ -0,0 +1,4 @@
# 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

View File

@ -1,60 +0,0 @@
# 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

View File

@ -1,9 +1,8 @@
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` (
@ -183,9 +182,9 @@ fid AsText(g)
2 LINESTRING(149 149,151 151) 2 LINESTRING(149 149,151 151)
DROP TABLE t1; 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)));
@ -298,11 +297,11 @@ t2 CREATE TABLE `t2` (
SELECT count(*) FROM t2; SELECT count(*) FROM t2;
count(*) count(*)
100 100
EXPLAIN SELECT fid, AsText(g) FROM t2 WHERE Within(g, EXPLAIN SELECT fid, AsText(g) FROM t2 WHERE Within(g,
GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))')); GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))'));
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
1 SIMPLE t2 range g g 34 NULL 4 Using where 1 SIMPLE t2 range g g 34 NULL 4 Using where
SELECT fid, AsText(g) FROM t2 WHERE Within(g, SELECT fid, AsText(g) FROM t2 WHERE Within(g,
GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))')); GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))'));
fid AsText(g) fid AsText(g)
46 LINESTRING(51 41,60 50) 46 LINESTRING(51 41,60 50)
@ -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)"));
@ -751,10 +747,10 @@ Table Op Msg_type Msg_text
test.t1 analyze status OK test.t1 analyze status OK
drop table t1; drop table t1;
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; );
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,9 +758,9 @@ 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)")),
("Aadassiye", "pp", GeomFromText("POINT(35.816667 36.216667)")), ("Aadassiye", "pp", GeomFromText("POINT(35.816667 36.216667)")),
("Aadbel", "pp", GeomFromText("POINT(34.533333 36.100000)")), ("Aadbel", "pp", GeomFromText("POINT(34.533333 36.100000)")),
@ -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;
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;
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,
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)')),
@ -1544,11 +1540,11 @@ HANDLER t1 CLOSE;
DROP TABLE t1; DROP TABLE t1;
End of 5.0 tests. End of 5.0 tests.
# #
# Bug #57323/11764487: myisam corruption with insert ignore # Bug #57323/11764487: myisam corruption with insert ignore
# 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)
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
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;
# #
# 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;
# #
# 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'

View File

@ -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;

View File

@ -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;

View File

@ -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;
--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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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'

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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;
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;
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;

View File

@ -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';

View File

@ -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;

View File

@ -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

View File

@ -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;
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;

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,5 @@
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))');
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;

View File

@ -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;

View File

@ -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;
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)
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
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
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;
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)
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;
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(*)
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
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)'));
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;
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;
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;
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)'));
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))');
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;
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;
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';

View File

@ -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;
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)

File diff suppressed because it is too large Load Diff

View File

@ -1,24 +1,8 @@
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;

View File

@ -1,4 +1,3 @@
# 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
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)

View File

@ -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(*)

View File

@ -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(*)
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))');
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(*)
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;

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,4 @@
--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(
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;

View File

@ -0,0 +1,3 @@
-- source include/innodb_page_size.inc
-- source include/innodb_row_format.inc
-- source ../../../t/gis-rtree.test

View File

@ -1,34 +0,0 @@
--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

View File

@ -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);
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;

View File

@ -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 ;|
# 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;

View File

@ -1,9 +1,6 @@
# 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;
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';
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);
# 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));
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)'));
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)
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;
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';

File diff suppressed because it is too large Load Diff

View File

@ -1,52 +1,32 @@
# 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 ../../innodb/include/wait_all_purged.inc
--source 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;

View File

@ -31,9 +31,10 @@ insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
#Check second round spliting. #Check second round spliting.
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;
@ -79,24 +80,27 @@ select count(*) from t1 where MBRWithin(t1.c2, @g1);
drop index c2 on t1; drop index c2 on t1;
# Test create index with algorithm=inplace # Test create index with algorithm=inplace
--enable_info
create spatial index idx2 on t1(c2); create spatial index idx2 on t1(c2);
--disable_info
show create table t1; show create table t1;
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
select count(*) from t1 where MBRWithin(t1.c2, @g1);
# test read only case # test read only case
let $restart_parameters = restart: --innodb-read-only; let $restart_parameters = --innodb-read-only;
--source include/restart_mysqld.inc --source include/restart_mysqld.inc
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);
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);
let $restart_parameters = restart; let $restart_parameters =;
--source include/restart_mysqld.inc --source include/restart_mysqld.inc
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
select count(*) from t1 where MBRWithin(t1.c2, @g1);
set @g1 = ST_GeomFromText('Polygon((2 2,2 800,800 800,800 2,2 2))');
select count(*) from t1 where MBRWithin(t1.c2, @g1);
# Clean up. # Clean up.
drop table t1; drop table t1;

File diff suppressed because one or more lines are too long

View File

@ -3,15 +3,12 @@
# #
# test of rtree (using with spatial data) # test of rtree (using with spatial data)
# #
--disable_warnings
DROP TABLE IF EXISTS t1, t2;
--enable_warnings
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;
@ -31,9 +28,9 @@ SELECT fid, AsText(g) FROM t1 WHERE Within(g, GeomFromText('Polygon((140 140,160
DROP TABLE t1; 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; );
let $1=10; let $1=10;
while ($1) while ($1)
@ -50,9 +47,9 @@ while ($1)
ALTER TABLE t2 ADD SPATIAL KEY(g); ALTER TABLE t2 ADD SPATIAL KEY(g);
SHOW CREATE TABLE t2; SHOW CREATE TABLE t2;
SELECT count(*) FROM t2; SELECT count(*) FROM t2;
EXPLAIN SELECT fid, AsText(g) FROM t2 WHERE Within(g, EXPLAIN SELECT fid, AsText(g) FROM t2 WHERE Within(g,
GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))')); GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))'));
SELECT fid, AsText(g) FROM t2 WHERE Within(g, SELECT fid, AsText(g) FROM t2 WHERE Within(g,
GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))')); GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))'));
let $1=10; let $1=10;
@ -70,7 +67,6 @@ while ($1)
DROP TABLE t2; DROP TABLE t2;
drop table if exists 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)"));
@ -110,10 +106,10 @@ drop table t1;
# #
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; );
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)'));
#select * from t1 where g<GeomFromText('LineString(1 2, 2 3)'); #select * from t1 where g<GeomFromText('LineString(1 2, 2 3)');
@ -125,12 +121,10 @@ CREATE TABLE t1 (
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)")),
("Aadassiye", "pp", GeomFromText("POINT(35.816667 36.216667)")), ("Aadassiye", "pp", GeomFromText("POINT(35.816667 36.216667)")),
("Aadbel", "pp", GeomFromText("POINT(34.533333 36.100000)")), ("Aadbel", "pp", GeomFromText("POINT(34.533333 36.100000)")),
@ -172,7 +166,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;
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
@ -193,7 +187,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,
@ -207,7 +201,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,
@ -252,7 +246,7 @@ CREATE TABLE t1 (id bigint(12) unsigned NOT NULL auto_increment,
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)')),
@ -848,7 +842,7 @@ INSERT INTO t1(foo) VALUES ('');
DROP TABLE t1; DROP TABLE t1;
# #
# Bug #23578: Corruption prevents Optimize table from working properly with a # Bug #23578: Corruption prevents Optimize table from working properly with a
# spatial index # spatial index
# #
@ -931,12 +925,12 @@ DROP TABLE t1;
--echo # --echo #
--echo # Bug #57323/11764487: myisam corruption with insert ignore --echo # Bug #57323/11764487: myisam corruption with insert ignore
--echo # and invalid spatial data --echo # and invalid spatial data
--echo # --echo #
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)"));
--error ER_CANT_CREATE_GEOMETRY_OBJECT --error ER_CANT_CREATE_GEOMETRY_OBJECT
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");
@ -946,7 +940,7 @@ SELECT ASTEXT(a), ASTEXT(b) FROM t1;
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)"));
--error ER_CANT_CREATE_GEOMETRY_OBJECT --error ER_CANT_CREATE_GEOMETRY_OBJECT
INSERT IGNORE INTO t1 SET a=0, b=GEOMFROMTEXT("error"); INSERT IGNORE INTO t1 SET a=0, b=GEOMFROMTEXT("error");
@ -959,11 +953,11 @@ DROP TABLE t1;
# #
# MDEV-4521 MBRContains, MBRWithin no longer work with geometries of different type. # MDEV-4521 MBRContains, MBRWithin no longer work with geometries of different type.
# #
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)'));
@ -985,7 +979,7 @@ DROP TABLE t1;
--echo # --echo #
--echo # MDEV-8239 Reverse spatial operations OP(const, field) do not get optimized --echo # MDEV-8239 Reverse spatial operations OP(const, field) do not get optimized
--echo # --echo #
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));
EXPLAIN SELECT * FROM t1 WHERE ST_INTERSECTS(a,Point(1,2)); EXPLAIN SELECT * FROM t1 WHERE ST_INTERSECTS(a,Point(1,2));
@ -996,7 +990,7 @@ DROP TABLE t1;
--echo # --echo #
--echo # MDEV-8610 "WHERE CONTAINS(indexed_geometry_column,1)" causes full table scan --echo # MDEV-8610 "WHERE CONTAINS(indexed_geometry_column,1)" causes full table scan
--echo # --echo #
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));
--error ER_ILLEGAL_PARAMETER_DATA_TYPE_FOR_OPERATION --error ER_ILLEGAL_PARAMETER_DATA_TYPE_FOR_OPERATION
EXPLAIN SELECT * FROM t1 WHERE CONTAINS(a,1); EXPLAIN SELECT * FROM t1 WHERE CONTAINS(a,1);

View File

@ -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 @@
#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 @@ err:
#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);
/* /*

View File

@ -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>

View File

@ -10263,8 +10263,8 @@ void SEL_ARG::test_use_count(SEL_ARG *root)
ulong count=count_key_part_usage(root,pos->next_key_part); ulong count=count_key_part_usage(root,pos->next_key_part);
if (count > pos->next_key_part->use_count) if (count > pos->next_key_part->use_count)
{ {
sql_print_information("Use_count: Wrong count for key at %p, %lu " sql_print_information("Use_count: Wrong count for key at %p: %lu "
"should be %lu", (long unsigned int)pos, "should be %lu", pos,
pos->next_key_part->use_count, count); pos->next_key_part->use_count, count);
return; return;
} }
@ -10273,7 +10273,7 @@ void SEL_ARG::test_use_count(SEL_ARG *root)
} }
if (e_count != elements) if (e_count != elements)
sql_print_warning("Wrong use count: %u (should be %u) for tree at %p", sql_print_warning("Wrong use count: %u (should be %u) for tree at %p",
e_count, elements, (long unsigned int) this); e_count, elements, this);
} }
#endif #endif

View File

@ -1926,10 +1926,7 @@ slave_connection_state::load(const char *slave_request, size_t len)
for (;;) for (;;)
{ {
if (!(rec= (uchar *)my_malloc(sizeof(entry), MYF(MY_WME)))) if (!(rec= (uchar *)my_malloc(sizeof(entry), MYF(MY_WME))))
{
my_error(ER_OUTOFMEMORY, MYF(0), (int) sizeof(*gtid));
return 1; return 1;
}
gtid= &((entry *)rec)->gtid; gtid= &((entry *)rec)->gtid;
if (gtid_parser_helper(&p, end, gtid)) if (gtid_parser_helper(&p, end, gtid))
{ {
@ -2546,10 +2543,7 @@ gtid_waiting::get_entry(uint32 domain_id)
return e; return e;
if (!(e= (hash_element *)my_malloc(sizeof(*e), MYF(MY_WME)))) if (!(e= (hash_element *)my_malloc(sizeof(*e), MYF(MY_WME))))
{
my_error(ER_OUTOFMEMORY, MYF(0), (int) sizeof(*e));
return NULL; return NULL;
}
if (init_queue(&e->queue, 8, offsetof(queue_element, wait_seq_no), 0, if (init_queue(&e->queue, 8, offsetof(queue_element, wait_seq_no), 0,
cmp_queue_elem, NULL, 1+offsetof(queue_element, queue_idx), 1)) cmp_queue_elem, NULL, 1+offsetof(queue_element, queue_idx), 1))

View File

@ -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>

View File

@ -8596,7 +8596,7 @@ bool mysql_show_create_user(THD *thd, LEX_USER *lex_user)
hostname, NullS) - buff); hostname, NullS) - buff);
Item_string *field = new (thd->mem_root) Item_string_ascii(thd, "", 0); Item_string *field = new (thd->mem_root) Item_string_ascii(thd, "", 0);
if (!field) if (!field)
DBUG_RETURN(true); DBUG_RETURN(true); // Error given my my_alloc()
field->name.str= buff; field->name.str= buff;
field->name.length= head_length; field->name.length= head_length;

View File

@ -190,8 +190,12 @@ extern LEX_CSTRING current_user_and_current_role;
static inline int access_denied_error_code(int passwd_used) static inline int access_denied_error_code(int passwd_used)
{ {
#ifdef mysqld_error_find_printf_error_used
return 0;
#else
return passwd_used == 2 ? ER_ACCESS_DENIED_NO_PASSWORD_ERROR return passwd_used == 2 ? ER_ACCESS_DENIED_NO_PASSWORD_ERROR
: ER_ACCESS_DENIED_ERROR; : ER_ACCESS_DENIED_ERROR;
#endif
} }
/* prototypes */ /* prototypes */

View File

@ -20,7 +20,7 @@
#include "my_global.h" #include "my_global.h"
#include "my_md5.h" #include "my_md5.h"
#include "mysqld_error.h" #include "unireg.h"
#include "sql_string.h" #include "sql_string.h"
#include "sql_class.h" #include "sql_class.h"

View File

@ -1578,7 +1578,8 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
if (thd->wsrep_conflict_state == ABORTED && if (thd->wsrep_conflict_state == ABORTED &&
command != COM_STMT_CLOSE && command != COM_QUIT) command != COM_STMT_CLOSE && command != COM_QUIT)
{ {
my_message(ER_LOCK_DEADLOCK, "wsrep aborted transaction", MYF(0)); my_message(ER_LOCK_DEADLOCK, "Deadlock: wsrep aborted transaction",
MYF(0));
WSREP_DEBUG("Deadlock error for: %s", thd->query()); WSREP_DEBUG("Deadlock error for: %s", thd->query());
mysql_mutex_unlock(&thd->LOCK_wsrep_thd); mysql_mutex_unlock(&thd->LOCK_wsrep_thd);
thd->reset_killed(); thd->reset_killed();
@ -7808,7 +7809,8 @@ static void wsrep_mysql_parse(THD *thd, char *rawbuf, uint length,
(longlong) thd->thread_id, is_autocommit, (longlong) thd->thread_id, is_autocommit,
thd->wsrep_retry_counter, thd->wsrep_retry_counter,
thd->variables.wsrep_retry_autocommit, thd->query()); thd->variables.wsrep_retry_autocommit, thd->query());
my_message(ER_LOCK_DEADLOCK, "wsrep aborted transaction", MYF(0)); my_message(ER_LOCK_DEADLOCK, "Deadlock: wsrep aborted transaction",
MYF(0));
thd->reset_killed(); thd->reset_killed();
thd->wsrep_conflict_state= NO_CONFLICT; thd->wsrep_conflict_state= NO_CONFLICT;
if (thd->wsrep_conflict_state != REPLAYING) if (thd->wsrep_conflict_state != REPLAYING)

View File

@ -378,15 +378,13 @@ static bool exchange_name_with_ddl_log(THD *thd,
*/ */
/* call rename table from table to tmp-name */ /* call rename table from table to tmp-name */
DBUG_EXECUTE_IF("exchange_partition_fail_3", DBUG_EXECUTE_IF("exchange_partition_fail_3",
my_error(ER_ERROR_ON_RENAME, MYF(0), my_error(ER_ERROR_ON_RENAME, MYF(0), name, tmp_name, 0);
name, tmp_name, 0);
error_set= TRUE; error_set= TRUE;
goto err_rename;); goto err_rename;);
DBUG_EXECUTE_IF("exchange_partition_abort_3", DBUG_SUICIDE();); DBUG_EXECUTE_IF("exchange_partition_abort_3", DBUG_SUICIDE(););
if (file->ha_rename_table(name, tmp_name)) if (file->ha_rename_table(name, tmp_name))
{ {
my_error(ER_ERROR_ON_RENAME, MYF(0), name, tmp_name, my_error(ER_ERROR_ON_RENAME, MYF(0), name, tmp_name, my_errno);
my_errno);
error_set= TRUE; error_set= TRUE;
goto err_rename; goto err_rename;
} }
@ -397,8 +395,7 @@ static bool exchange_name_with_ddl_log(THD *thd,
/* call rename table from partition to table */ /* call rename table from partition to table */
DBUG_EXECUTE_IF("exchange_partition_fail_5", DBUG_EXECUTE_IF("exchange_partition_fail_5",
my_error(ER_ERROR_ON_RENAME, MYF(0), my_error(ER_ERROR_ON_RENAME, MYF(0), from_name, name, 0);
from_name, name, 0);
error_set= TRUE; error_set= TRUE;
goto err_rename;); goto err_rename;);
DBUG_EXECUTE_IF("exchange_partition_abort_5", DBUG_SUICIDE();); DBUG_EXECUTE_IF("exchange_partition_abort_5", DBUG_SUICIDE(););
@ -415,8 +412,7 @@ static bool exchange_name_with_ddl_log(THD *thd,
/* call rename table from tmp-nam to partition */ /* call rename table from tmp-nam to partition */
DBUG_EXECUTE_IF("exchange_partition_fail_7", DBUG_EXECUTE_IF("exchange_partition_fail_7",
my_error(ER_ERROR_ON_RENAME, MYF(0), my_error(ER_ERROR_ON_RENAME, MYF(0), tmp_name, from_name, 0);
tmp_name, from_name, 0);
error_set= TRUE; error_set= TRUE;
goto err_rename;); goto err_rename;);
DBUG_EXECUTE_IF("exchange_partition_abort_7", DBUG_SUICIDE();); DBUG_EXECUTE_IF("exchange_partition_abort_7", DBUG_SUICIDE(););

View File

@ -2230,10 +2230,8 @@ static int mysql_test_handler_read(Prepared_statement *stmt,
if (!stmt->is_sql_prepare()) if (!stmt->is_sql_prepare())
{ {
if (!lex->result && !(lex->result= new (stmt->mem_root) select_send(thd))) if (!lex->result && !(lex->result= new (stmt->mem_root) select_send(thd)))
{
my_error(ER_OUTOFMEMORY, MYF(0), (int) sizeof(select_send));
DBUG_RETURN(1); DBUG_RETURN(1);
}
if (send_prep_stmt(stmt, ha_table->fields.elements) || if (send_prep_stmt(stmt, ha_table->fields.elements) ||
lex->result->send_result_set_metadata(ha_table->fields, Protocol::SEND_EOF) || lex->result->send_result_set_metadata(ha_table->fields, Protocol::SEND_EOF) ||
thd->protocol->flush()) thd->protocol->flush())

View File

@ -3379,7 +3379,8 @@ static bool get_string_parameter(char *to, const char *from, size_t length,
uint from_numchars= cs->cset->numchars(cs, from, from + from_length); uint from_numchars= cs->cset->numchars(cs, from, from + from_length);
if (from_numchars > length / cs->mbmaxlen) if (from_numchars > length / cs->mbmaxlen)
{ {
my_error(ER_WRONG_STRING_LENGTH, MYF(0), from, name, (int) (length / cs->mbmaxlen)); my_error(ER_WRONG_STRING_LENGTH, MYF(0), from, name,
(int) (length / cs->mbmaxlen));
return 1; return 1;
} }
memcpy(to, from, from_length+1); memcpy(to, from, from_length+1);

View File

@ -1205,7 +1205,7 @@ JOIN::optimize_inner()
/* /*
Needed in case optimizer short-cuts, Needed in case optimizer short-cuts,
set properly in make_tmp_tables_info() set properly in make_aggr_tables_info()
*/ */
fields= &select_lex->item_list; fields= &select_lex->item_list;

View File

@ -438,7 +438,7 @@ typedef struct st_join_table {
will be turned to fields. These variables are pointing to will be turned to fields. These variables are pointing to
tmp_fields_list[123]. Valid only for tmp tables and the last non-tmp tmp_fields_list[123]. Valid only for tmp tables and the last non-tmp
table in the query plan. table in the query plan.
@see JOIN::make_tmp_tables_info() @see JOIN::make_aggr_tables_info()
*/ */
List<Item> *fields; List<Item> *fields;
/** List of all expressions in the select list */ /** List of all expressions in the select list */

View File

@ -4866,7 +4866,8 @@ int mysql_create_table_no_lock(THD *thd,
// Check if we hit FN_REFLEN bytes along with file extension. // Check if we hit FN_REFLEN bytes along with file extension.
if (length+reg_ext_length > FN_REFLEN) if (length+reg_ext_length > FN_REFLEN)
{ {
my_error(ER_IDENT_CAUSES_TOO_LONG_PATH, MYF(0), (int) sizeof(path)-1, path); my_error(ER_IDENT_CAUSES_TOO_LONG_PATH, MYF(0), (int) sizeof(path)-1,
path);
return true; return true;
} }
} }

View File

@ -3485,7 +3485,15 @@ btr_cur_parse_update_in_place(
/* We do not need to reserve search latch, as the page is only /* We do not need to reserve search latch, as the page is only
being recovered, and there cannot be a hash index to it. */ being recovered, and there cannot be a hash index to it. */
offsets = rec_get_offsets(rec, index, NULL, true, /* The function rtr_update_mbr_field_in_place() is generating
these records on node pointer pages; therefore we have to
check if this is a leaf page. */
offsets = rec_get_offsets(rec, index, NULL,
flags != (BTR_NO_UNDO_LOG_FLAG
| BTR_NO_LOCKING_FLAG
| BTR_KEEP_SYS_FLAG)
|| page_is_leaf(page),
ULINT_UNDEFINED, &heap); ULINT_UNDEFINED, &heap);
if (!(flags & BTR_KEEP_SYS_FLAG)) { if (!(flags & BTR_KEEP_SYS_FLAG)) {
@ -3620,6 +3628,7 @@ btr_cur_update_in_place(
roll_ptr_t roll_ptr = 0; roll_ptr_t roll_ptr = 0;
ulint was_delete_marked; ulint was_delete_marked;
ut_ad(page_is_leaf(cursor->page_cur.block->frame));
rec = btr_cur_get_rec(cursor); rec = btr_cur_get_rec(cursor);
index = cursor->index; index = cursor->index;
ut_ad(rec_offs_validate(rec, index, offsets)); ut_ad(rec_offs_validate(rec, index, offsets));

View File

@ -15054,7 +15054,7 @@ ha_innobase::defragment_table(
"Table %s is encrypted but encryption service or" "Table %s is encrypted but encryption service or"
" used key_id is not available. " " used key_id is not available. "
" Can't continue checking table.", " Can't continue checking table.",
index->table->name); index->table->name.m_name);
ret = convert_error_code_to_mysql(err, 0, current_thd); ret = convert_error_code_to_mysql(err, 0, current_thd);
break; break;
@ -15274,7 +15274,7 @@ ha_innobase::check(
"Table %s is encrypted but encryption service or" "Table %s is encrypted but encryption service or"
" used key_id is not available. " " used key_id is not available. "
" Can't continue checking table.", " Can't continue checking table.",
index->table->name); index->table->name.m_name);
} else { } else {
push_warning_printf( push_warning_printf(
thd, thd,
@ -22977,7 +22977,7 @@ ib_push_frm_error(
"InnoDB: Table %s has a " "InnoDB: Table %s has a "
"primary key in InnoDB data " "primary key in InnoDB data "
"dictionary, but not in " "dictionary, but not in "
"MariaDB!", ib_table->name); "MariaDB!", ib_table->name.m_name);
} }
break; break;
case DICT_NO_PK_FRM_HAS: case DICT_NO_PK_FRM_HAS:
@ -22990,7 +22990,7 @@ ib_push_frm_error(
"columns, then MariaDB internally treats that " "columns, then MariaDB internally treats that "
"key as the primary key. You can fix this " "key as the primary key. You can fix this "
"error by dump + DROP + CREATE + reimport " "error by dump + DROP + CREATE + reimport "
"of the table.", ib_table->name); "of the table.", ib_table->name.m_name);
if (push_warning) { if (push_warning) {
push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN, push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN,
@ -22999,7 +22999,7 @@ ib_push_frm_error(
"primary key in InnoDB data " "primary key in InnoDB data "
"dictionary, but has one in " "dictionary, but has one in "
"MariaDB!", "MariaDB!",
ib_table->name); ib_table->name.m_name);
} }
break; break;
@ -23023,7 +23023,7 @@ ib_push_frm_error(
"indexes inside InnoDB, which " "indexes inside InnoDB, which "
"is different from the number of " "is different from the number of "
"indexes %u defined in the MariaDB ", "indexes %u defined in the MariaDB ",
ib_table->name, n_keys, ib_table->name.m_name, n_keys,
table->s->keys); table->s->keys);
} }
break; break;
@ -23033,7 +23033,7 @@ ib_push_frm_error(
sql_print_error("InnoDB: Table %s is consistent " sql_print_error("InnoDB: Table %s is consistent "
"on InnoDB data dictionary and MariaDB " "on InnoDB data dictionary and MariaDB "
" FRM file.", " FRM file.",
ib_table->name); ib_table->name.m_name);
ut_error; ut_error;
break; break;
} }

View File

@ -3392,8 +3392,14 @@ row_sel_get_clust_rec_for_mysql(
goto func_exit; goto func_exit;
} }
buf_block_t* block = btr_pcur_get_block( /* FIXME: Why is this block not the
prebuilt->pcur); same as btr_pcur_get_block(prebuilt->pcur),
and is it not unsafe to use RW_NO_LATCH here? */
buf_block_t* block = buf_page_get_gen(
btr_pcur_get_block(prebuilt->pcur)->page.id,
dict_table_page_size(sec_index->table),
RW_NO_LATCH, NULL, BUF_GET,
__FILE__, __LINE__, mtr, &err);
mem_heap_t* heap = mem_heap_create(256); mem_heap_t* heap = mem_heap_create(256);
dtuple_t* tuple = dict_index_build_data_tuple( dtuple_t* tuple = dict_index_build_data_tuple(
rec, sec_index, true, rec, sec_index, true,

View File

@ -1,7 +1,7 @@
/***************************************************************************** /*****************************************************************************
Copyright (c) 1996, 2017, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 1996, 2017, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2016, 2017, MariaDB Corporation. Copyright (c) 2016, 2018, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software the terms of the GNU General Public License as published by the Free Software
@ -808,7 +808,8 @@ trx_roll_must_shutdown()
mutex_enter(&recv_sys->mutex); mutex_enter(&recv_sys->mutex);
if (recv_sys->report(time)) { if (recv_sys->report(time)) {
ulint n_trx = 0, n_rows = 0; ulint n_trx = 0;
ulonglong n_rows = 0;
for (const trx_t* t = UT_LIST_GET_FIRST(trx_sys->rw_trx_list); for (const trx_t* t = UT_LIST_GET_FIRST(trx_sys->rw_trx_list);
t != NULL; t != NULL;
t = UT_LIST_GET_NEXT(trx_list, t)) { t = UT_LIST_GET_NEXT(trx_list, t)) {
@ -823,7 +824,7 @@ trx_roll_must_shutdown()
ib::info() << "To roll back: " << n_trx << " transactions, " ib::info() << "To roll back: " << n_trx << " transactions, "
<< n_rows << " rows"; << n_rows << " rows";
sd_notifyf(0, "STATUS=To roll back: " ULINTPF " transactions, " sd_notifyf(0, "STATUS=To roll back: " ULINTPF " transactions, "
ULINTPF " rows", n_trx, n_rows); "%llu rows", n_trx, n_rows);
} }
mutex_exit(&recv_sys->mutex); mutex_exit(&recv_sys->mutex);

View File

@ -1,7 +1,7 @@
/***************************************************************************** /*****************************************************************************
Copyright (c) 1996, 2017, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 1996, 2017, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2016, 2017, MariaDB Corporation. Copyright (c) 2016, 2018, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software the terms of the GNU General Public License as published by the Free Software
@ -751,7 +751,8 @@ trx_roll_must_shutdown()
mutex_enter(&recv_sys->mutex); mutex_enter(&recv_sys->mutex);
if (recv_sys->report(time)) { if (recv_sys->report(time)) {
ulint n_trx = 0, n_rows = 0; ulint n_trx = 0;
ulonglong n_rows = 0;
for (const trx_t* t = UT_LIST_GET_FIRST(trx_sys->rw_trx_list); for (const trx_t* t = UT_LIST_GET_FIRST(trx_sys->rw_trx_list);
t != NULL; t != NULL;
t = UT_LIST_GET_NEXT(trx_list, t)) { t = UT_LIST_GET_NEXT(trx_list, t)) {
@ -765,9 +766,9 @@ trx_roll_must_shutdown()
} }
ib_logf(IB_LOG_LEVEL_INFO, ib_logf(IB_LOG_LEVEL_INFO,
"To roll back: " ULINTPF " transactions, " "To roll back: " ULINTPF " transactions, "
ULINTPF " rows", n_trx, n_rows); "%llu rows", n_trx, n_rows);
sd_notifyf(0, "STATUS=To roll back: " ULINTPF " transactions, " sd_notifyf(0, "STATUS=To roll back: " ULINTPF " transactions, "
ULINTPF " rows", n_trx, n_rows); "%llu rows", n_trx, n_rows);
} }
mutex_exit(&recv_sys->mutex); mutex_exit(&recv_sys->mutex);