Merge bb-10.2-ext into 10.3
This commit is contained in:
commit
fa7d85bb87
@ -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
8
mysql-test/include/innodb_row_format.combinations
Normal file
8
mysql-test/include/innodb_row_format.combinations
Normal file
@ -0,0 +1,8 @@
|
||||
[redundant]
|
||||
innodb_default_row_format=redundant
|
||||
|
||||
[compact]
|
||||
innodb_default_row_format=compact
|
||||
|
||||
[dynamic]
|
||||
innodb_default_row_format=dynamic
|
4
mysql-test/include/innodb_row_format.inc
Normal file
4
mysql-test/include/innodb_row_format.inc
Normal 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
|
@ -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
|
@ -1,9 +1,8 @@
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
CREATE TABLE t1 (
|
||||
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
g GEOMETRY NOT NULL,
|
||||
SPATIAL KEY(g)
|
||||
) ENGINE=MyISAM;
|
||||
);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
@ -185,7 +184,7 @@ DROP TABLE t1;
|
||||
CREATE TABLE t2 (
|
||||
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
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, 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)));
|
||||
@ -710,9 +709,6 @@ SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DROP TABLE t2;
|
||||
drop table if exists t1;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 'test.t1'
|
||||
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)"));
|
||||
@ -754,7 +750,7 @@ CREATE TABLE t1 (
|
||||
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
g GEOMETRY NOT NULL,
|
||||
SPATIAL KEY(g)
|
||||
) ENGINE=MyISAM;
|
||||
);
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(1 2, 2 3)')),(GeomFromText('LineString(1 2, 2 4)'));
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (
|
||||
@ -762,7 +758,7 @@ line GEOMETRY NOT NULL,
|
||||
kind ENUM('po', 'pp', 'rr', 'dr', 'rd', 'ts', 'cl') NOT NULL DEFAULT 'po',
|
||||
name VARCHAR(32),
|
||||
SPATIAL KEY (line)
|
||||
) engine=myisam;
|
||||
);
|
||||
ALTER TABLE t1 DISABLE KEYS;
|
||||
INSERT INTO t1 (name, kind, line) VALUES
|
||||
("Aadaouane", "pp", GeomFromText("POINT(32.816667 35.983333)")),
|
||||
@ -803,7 +799,7 @@ CREATE TABLE t2 (geom GEOMETRY NOT NULL, SPATIAL KEY gk(geom));
|
||||
INSERT IGNORE INTO t2 SELECT GeomFromText(st) FROM t1;
|
||||
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
|
||||
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
|
||||
(PolygonFromText('POLYGON((-18.6086111000 -66.9327777000, -18.6055555000
|
||||
-66.8158332999, -18.7186111000 -66.8102777000, -18.7211111000 -66.9269443999,
|
||||
@ -819,7 +815,7 @@ drop table t1;
|
||||
CREATE TABLE t1 (
|
||||
c1 geometry NOT NULL default '',
|
||||
SPATIAL KEY i1 (c1)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
) DEFAULT CHARSET=latin1;
|
||||
INSERT INTO t1 (c1) VALUES (
|
||||
PolygonFromText('POLYGON((-18.6086111000 -66.9327777000,
|
||||
-18.6055555000 -66.8158332999,
|
||||
@ -833,7 +829,7 @@ DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
c1 geometry NOT NULL default '',
|
||||
SPATIAL KEY i1 (c1)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
) DEFAULT CHARSET=latin1;
|
||||
INSERT INTO t1 (c1) VALUES (
|
||||
PolygonFromText('POLYGON((-18.6086111000 -66.9327777000,
|
||||
-18.6055555000 -66.8158332999,
|
||||
@ -874,7 +870,7 @@ c3 varchar(10) collate utf8_bin default NULL,
|
||||
spatial_point point NOT NULL,
|
||||
PRIMARY KEY(id),
|
||||
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
|
||||
('y', 's', 'j', GeomFromText('POINT(167 74)')),
|
||||
('r', 'n', 'd', GeomFromText('POINT(215 118)')),
|
||||
@ -1548,7 +1544,7 @@ End of 5.0 tests.
|
||||
# and invalid spatial data
|
||||
#
|
||||
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 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
|
||||
@ -1559,7 +1555,7 @@ ASTEXT(a) ASTEXT(b)
|
||||
POINT(0 0) POINT(1 1)
|
||||
DROP TABLE t1;
|
||||
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 IGNORE INTO t1 SET a=0, b=GEOMFROMTEXT("error");
|
||||
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 (
|
||||
l LINESTRING NOT NULL,
|
||||
SPATIAL KEY(l)
|
||||
) ENGINE = myisam;
|
||||
);
|
||||
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(2 2, 3 3)'));
|
||||
@ -1596,7 +1592,7 @@ DROP TABLE t1;
|
||||
#
|
||||
# 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));
|
||||
EXPLAIN SELECT * FROM t1 WHERE MBRINTERSECTS(a,Point(1,2));
|
||||
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
|
||||
#
|
||||
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));
|
||||
EXPLAIN SELECT * FROM t1 WHERE CONTAINS(a,1);
|
||||
ERROR HY000: Illegal parameter data type int for operation 'st_contains'
|
||||
|
@ -9,7 +9,7 @@ INSERT INTO t1 VALUES (1,'node_1');
|
||||
connection node_2a;
|
||||
connection node_2;
|
||||
INSERT INTO t1 VALUES (2, 'node_2');
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
wsrep_local_aborts_increment
|
||||
1
|
||||
DROP TABLE t1;
|
||||
|
@ -10,7 +10,7 @@ SELECT GET_LOCK("foo", 1000);;
|
||||
connection node_1;
|
||||
INSERT INTO t1 VALUES (1);
|
||||
connection node_2;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
wsrep_local_aborts_increment
|
||||
1
|
||||
DROP TABLE t1;
|
||||
|
@ -6,7 +6,7 @@ SELECT SLEEP(1000);;
|
||||
connection node_1;
|
||||
INSERT INTO t1 VALUES (1);
|
||||
connection node_2;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
wsrep_local_aborts_increment
|
||||
1
|
||||
DROP TABLE t1;
|
||||
|
@ -38,7 +38,7 @@ connection node_1;
|
||||
COMMIT;
|
||||
connection node_2;
|
||||
COMMIT;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
connection node_1;
|
||||
SELECT COUNT(*) = 1 FROM t1 WHERE f1 = 'three';
|
||||
COUNT(*) = 1
|
||||
|
@ -22,6 +22,6 @@ connection node_1;
|
||||
COMMIT;
|
||||
connection node_2;
|
||||
COMMIT;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
DROP TABLE child;
|
||||
DROP TABLE parent;
|
||||
|
@ -51,7 +51,7 @@ connection node_1;
|
||||
COMMIT;
|
||||
connection node_2;
|
||||
COMMIT;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
ROLLBACK;
|
||||
INSERT INTO t1 VALUES (1), (2);
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
|
@ -129,5 +129,5 @@ connection node_1;
|
||||
COMMIT;
|
||||
connection node_2;
|
||||
COMMIT;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
DROP TABLE t1;
|
||||
|
@ -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";
|
||||
UNLOCK TABLES;
|
||||
connection node_1;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
SELECT COUNT(*) = 1 FROM t1 WHERE f2 = 'a';
|
||||
COUNT(*) = 1
|
||||
1
|
||||
|
@ -28,6 +28,6 @@ connection node_1;
|
||||
COMMIT;
|
||||
connection node_2;
|
||||
COMMIT;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
|
@ -28,6 +28,6 @@ connection node_1;
|
||||
COMMIT;
|
||||
connection node_2;
|
||||
COMMIT;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
|
@ -31,6 +31,6 @@ connection node_1;
|
||||
COMMIT;
|
||||
connection node_2;
|
||||
COMMIT;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
|
@ -19,7 +19,7 @@ connection node_1;
|
||||
COMMIT;
|
||||
connection node_2;
|
||||
COMMIT;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
SELECT f1 = 'текст2' FROM t1;
|
||||
f1 = 'текст2'
|
||||
1
|
||||
|
@ -27,6 +27,6 @@ COMMIT;
|
||||
SET AUTOCOMMIT=ON;
|
||||
connection node_2;
|
||||
COMMIT;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
SET AUTOCOMMIT=ON;
|
||||
DROP TABLE t1;
|
||||
|
@ -24,6 +24,6 @@ COMMIT;
|
||||
SET AUTOCOMMIT=ON;
|
||||
connection node_2;
|
||||
COMMIT;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
SET AUTOCOMMIT=ON;
|
||||
DROP TABLE t1;
|
||||
|
@ -9,7 +9,7 @@ connection node_2;
|
||||
INSERT INTO t1 VALUES (1,1);
|
||||
connection node_1;
|
||||
SELECT * FROM t1;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
ROLLBACK;
|
||||
DELETE FROM t1;
|
||||
connection node_1;
|
||||
@ -22,7 +22,7 @@ connection node_2;
|
||||
UPDATE t1 SET f2 = 2;
|
||||
connection node_1;
|
||||
UPDATE t1 SET f2 = 3;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
ROLLBACK;
|
||||
DELETE FROM t1;
|
||||
connection node_1;
|
||||
@ -33,5 +33,5 @@ connection node_2;
|
||||
INSERT INTO t1 VALUES (1,2);
|
||||
connection node_1;
|
||||
COMMIT;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
DROP TABLE t1;
|
||||
|
@ -14,9 +14,9 @@ INSERT INTO t2 (f1) SELECT 1 FROM ten AS a1, ten AS a2, ten AS a3, ten AS a4, te
|
||||
connection node_2;
|
||||
DROP DATABASE database1;;
|
||||
connection node_1;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
connection node_1a;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
connection node_2;
|
||||
connection node_1;
|
||||
SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'database1';
|
||||
|
@ -8,7 +8,7 @@ connection node_2a;
|
||||
ALTER TABLE t1 ADD COLUMN f2 INTEGER, LOCK=EXCLUSIVE;
|
||||
connection node_2;
|
||||
COMMIT;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
connection node_1;
|
||||
INSERT INTO t1 VALUES (2, 2);
|
||||
SELECT COUNT(*) = 2 FROM t1;
|
||||
|
@ -9,7 +9,7 @@ connection node_1;
|
||||
TRUNCATE TABLE t1;;
|
||||
connection node_1;
|
||||
connection node_2;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
connection node_2;
|
||||
SELECT COUNT(*) = 0 FROM t1;
|
||||
COUNT(*) = 0
|
||||
|
@ -18,7 +18,7 @@ connection node_1;
|
||||
COMMIT;
|
||||
connection node_2;
|
||||
COMMIT;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
SELECT f1 = 'текст2' FROM t1;
|
||||
f1 = 'текст2'
|
||||
1
|
||||
@ -35,6 +35,6 @@ connection node_2;
|
||||
COMMIT;
|
||||
connection node_1;
|
||||
COMMIT;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
COMMIT;
|
||||
DROP TABLE t1;
|
||||
|
@ -59,7 +59,7 @@ connection node_1a;
|
||||
COMMIT;
|
||||
connection node_2a;
|
||||
COMMIT;
|
||||
ERROR 40001: wsrep aborted transaction
|
||||
ERROR 40001: Deadlock: wsrep aborted transaction
|
||||
connection node_1a;
|
||||
SELECT * FROM t1;
|
||||
f1 node
|
||||
|
@ -20,6 +20,6 @@ connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2;
|
||||
connection node_2a;
|
||||
connection node_2;
|
||||
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]
|
||||
DROP TABLE t1;
|
||||
|
@ -11,16 +11,8 @@
|
||||
##############################################################################
|
||||
|
||||
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_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
|
||||
geometry : MDEV-14057 InnoDB GIS tests fail
|
||||
bug17057168 : MDEV-14057 InnoDB GIS tests fail
|
||||
bug16236208 : MDEV-14057 InnoDB GIS tests fail
|
||||
bug16266012 : MDEV-14057 InnoDB GIS tests fail
|
||||
rtree_search : MDEV-14057 InnoDB GIS tests fail
|
||||
rtree_old : MDEV-14057 InnoDB GIS tests fail
|
||||
|
@ -12,10 +12,8 @@ INSERT INTO t1 (location) SELECT POINT(tmp1.id, tmp2.id) FROM tmp tmp1,
|
||||
tmp tmp2 ORDER BY tmp1.id, tmp2.id;
|
||||
EXPLAIN SELECT id, ST_AsText(location) FROM t1 WHERE location = POINT(1,
|
||||
2);
|
||||
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t1 NULL ref location location 28 const 1 100.00 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)))
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref location location 28 const 1 Using where
|
||||
SELECT id, ST_AsText(location) FROM t1 WHERE location = POINT(1, 2);
|
||||
id ST_AsText(location)
|
||||
163 POINT(1 2)
|
||||
|
1630
mysql-test/suite/innodb_gis/r/innodb_gis_rtree.result
Normal file
1630
mysql-test/suite/innodb_gis/r/innodb_gis_rtree.result
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -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;
|
||||
insert into t1 values(1, Point(1,1));
|
||||
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);
|
||||
count(*)
|
||||
0
|
||||
SET @saved_dbug = @@SESSION.debug_dbug;
|
||||
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
|
||||
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);
|
||||
count(*)
|
||||
0
|
||||
SET debug_dbug = @saved_dbug;
|
||||
InnoDB 0 transactions not purged
|
||||
drop table t1;
|
||||
SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency;
|
||||
|
@ -9,16 +9,12 @@ set i = i + 1;
|
||||
end while;
|
||||
end|
|
||||
CALL insert_t1(70000);
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
70000
|
||||
check table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
truncate table 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");
|
||||
START TRANSACTION;
|
||||
CALL insert_t1(5000);
|
||||
COMMIT;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
70000
|
||||
delete from t1;
|
||||
drop procedure insert_t1;
|
||||
drop table t1;
|
||||
|
@ -14,22 +14,25 @@ insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
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 @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
|
||||
SET DEBUG_SYNC = 'RESET';
|
||||
SET DEBUG_SYNC = 'row_search_for_mysql_before_return SIGNAL started WAIT_FOR go_ahead';
|
||||
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 DEBUG_SYNC = 'now WAIT_FOR started';
|
||||
insert into t1 select * from t1;
|
||||
SET DEBUG_SYNC = 'now SIGNAL go_ahead';
|
||||
connection a;
|
||||
count(*)
|
||||
576
|
||||
select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
count(*)
|
||||
1152
|
||||
connection default;
|
||||
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))');
|
||||
@ -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;
|
||||
connection a;
|
||||
set session transaction isolation level serializable;
|
||||
select @@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);
|
||||
count(*)
|
||||
0
|
||||
connect b,localhost,root,,;
|
||||
set session transaction isolation level serializable;
|
||||
set session innodb_lock_wait_timeout = 1;
|
||||
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;
|
||||
connection a;
|
||||
commit;
|
||||
connection default;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
896
|
||||
insert into t1 values (105, Point(105, 105));
|
||||
connection a;
|
||||
start transaction;
|
||||
set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))');
|
||||
select count(*) from t1 where MBRwithin(t1.c2, @g1);
|
||||
count(*)
|
||||
1
|
||||
connection b;
|
||||
select @@innodb_lock_wait_timeout;
|
||||
@@innodb_lock_wait_timeout
|
||||
1
|
||||
@ -91,10 +100,12 @@ ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
897
|
||||
connection a;
|
||||
select sleep(2);
|
||||
sleep(2)
|
||||
0
|
||||
commit;
|
||||
connection default;
|
||||
truncate t1;
|
||||
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)'));
|
||||
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;
|
||||
connection a;
|
||||
set session transaction isolation level serializable;
|
||||
select @@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);
|
||||
count(*)
|
||||
0
|
||||
connection b;
|
||||
set session transaction isolation level serializable;
|
||||
set session innodb_lock_wait_timeout = 1;
|
||||
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;
|
||||
connection a;
|
||||
commit;
|
||||
connection default;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
1792
|
||||
insert into t1 values (105, Point(105, 105));
|
||||
connection a;
|
||||
start transaction;
|
||||
set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))');
|
||||
select count(*) from t1 where MBRwithin(t1.c2, @g1);
|
||||
@ -138,6 +154,7 @@ count(*)
|
||||
select count(*) from t1 where MBRIntersects(t1.c2, @g1);
|
||||
count(*)
|
||||
1793
|
||||
connection b;
|
||||
select @@innodb_lock_wait_timeout;
|
||||
@@innodb_lock_wait_timeout
|
||||
1
|
||||
@ -149,10 +166,12 @@ ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
1793
|
||||
connection a;
|
||||
select sleep(2);
|
||||
sleep(2)
|
||||
0
|
||||
commit;
|
||||
connection default;
|
||||
truncate t1;
|
||||
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)'));
|
||||
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))');
|
||||
start transaction;
|
||||
delete from t1 where MBRWithin(t1.c2, @g1);
|
||||
connection a;
|
||||
set session innodb_lock_wait_timeout = 1;
|
||||
select @@innodb_lock_wait_timeout;
|
||||
@@innodb_lock_wait_timeout
|
||||
1
|
||||
insert into t1 values(4, Point(4,4));
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
connection default;
|
||||
rollback;
|
||||
connection default;
|
||||
truncate t1;
|
||||
INSERT INTO t1 VALUES (1, ST_GeomFromText('LineString(2 2, 150 150)'));
|
||||
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;
|
||||
count(*)
|
||||
0
|
||||
connection a;
|
||||
set session innodb_lock_wait_timeout = 1;
|
||||
select @@innodb_lock_wait_timeout;
|
||||
@@innodb_lock_wait_timeout
|
||||
1
|
||||
insert into t1 values(4, Point(4,4));
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
connection default;
|
||||
rollback;
|
||||
connection default;
|
||||
truncate t1;
|
||||
create procedure insert_t1(IN start int, IN total int)
|
||||
begin
|
||||
@ -200,6 +225,7 @@ set i = i + 1;
|
||||
end while;
|
||||
end|
|
||||
CALL insert_t1(0, 1000);
|
||||
connection a;
|
||||
set session transaction isolation level serializable;
|
||||
select @@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))');
|
||||
select count(*) from t1 where MBRwithin(t1.c2, @g1);
|
||||
count(*)
|
||||
199
|
||||
201
|
||||
connection b;
|
||||
CALL insert_t1(1001, 2000);
|
||||
set session transaction isolation level serializable;
|
||||
set session innodb_lock_wait_timeout = 1;
|
||||
insert into t1 values (1200, Point(950, 950));
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
connection a;
|
||||
select sleep(2);
|
||||
sleep(2)
|
||||
0
|
||||
commit;
|
||||
SET SESSION debug="-d,rtr_pcur_move_to_next_return";
|
||||
disconnect a;
|
||||
disconnect b;
|
||||
connection default;
|
||||
drop table t1;
|
||||
drop procedure insert_t1;
|
||||
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(7 7, 200 200)'));
|
||||
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";
|
||||
Warnings:
|
||||
Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
|
||||
set transaction isolation level serializable;
|
||||
start transaction;
|
||||
set @g1 = ST_GeomFromText('Polygon((100 100, 100 110, 110 110, 110 100, 100 100))');
|
||||
select count(*) from t1 where MBRwithin(t1.c2, @g1);
|
||||
count(*)
|
||||
0
|
||||
connect b,localhost,root,,;
|
||||
delete from t1 where c1 = 1;
|
||||
connection a;
|
||||
commit;
|
||||
set transaction isolation level serializable;
|
||||
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);
|
||||
count(*)
|
||||
2
|
||||
connection b;
|
||||
set session innodb_lock_wait_timeout = 1;
|
||||
delete from t1 where c1 = 2;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
connection a;
|
||||
commit;
|
||||
connection default;
|
||||
drop table t1;
|
||||
SET DEBUG_SYNC= 'RESET';
|
||||
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;
|
||||
count(*)
|
||||
4608
|
||||
connection b;
|
||||
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
|
||||
set transaction isolation level read uncommitted;
|
||||
SET DEBUG_SYNC= 'row_search_for_mysql_before_return SIGNAL siga WAIT_FOR sigb';
|
||||
select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
connection default;
|
||||
SET DEBUG_SYNC= 'now WAIT_FOR siga';
|
||||
rollback;
|
||||
SET DEBUG_SYNC= 'now SIGNAL sigb';
|
||||
connection b;
|
||||
count(*)
|
||||
1
|
||||
select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
count(*)
|
||||
0
|
||||
connection default;
|
||||
DROP TABLE t1;
|
||||
SET DEBUG_SYNC = 'RESET';
|
||||
create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb;
|
||||
@ -298,15 +340,21 @@ end while;
|
||||
end|
|
||||
start transaction;
|
||||
CALL insert_t1(100);
|
||||
connection a;
|
||||
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';
|
||||
select count(*) from t1 where MBRWithin(t1.c2, @g1);;
|
||||
connection default;
|
||||
SET DEBUG_SYNC= 'now WAIT_FOR siga';
|
||||
rollback;
|
||||
SET DEBUG_SYNC= 'now SIGNAL sigb';
|
||||
connection a;
|
||||
count(*)
|
||||
0
|
||||
connection default;
|
||||
drop procedure insert_t1;
|
||||
DROP TABLE t1;
|
||||
SET SESSION debug="-d,rtr_pcur_move_to_next_return";
|
||||
disconnect a;
|
||||
disconnect b;
|
||||
connection default;
|
||||
SET DEBUG_SYNC = 'RESET';
|
||||
|
@ -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 @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);
|
||||
id select_type table partitions type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t1 NULL ALL g NULL NULL NULL 1 100.00 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`))
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL g NULL NULL NULL 1 Using where
|
||||
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
|
||||
ST_AsText(g)
|
||||
INSERT INTO t1 VALUES(@g1);
|
||||
@ -24,135 +22,105 @@ ANALYZE TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
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
|
||||
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 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`))
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range g g 34 NULL 1 Using where
|
||||
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
|
||||
ST_AsText(g)
|
||||
POINT(10 10)
|
||||
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
|
||||
1 SIMPLE t1 NULL range g g 34 NULL 2 100.00 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`))
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range g g 34 NULL 2 Using where
|
||||
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
|
||||
ST_AsText(g)
|
||||
POINT(10 10)
|
||||
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
|
||||
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 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`))
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range g g 34 NULL 1 Using where
|
||||
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
|
||||
ST_AsText(g)
|
||||
POINT(10 10)
|
||||
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
|
||||
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 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`))
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range g g 34 NULL 1 Using where
|
||||
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
|
||||
ST_AsText(g)
|
||||
POINT(10 10)
|
||||
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
|
||||
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 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`))
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range g g 34 NULL 1 Using where
|
||||
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
|
||||
ST_AsText(g)
|
||||
POINT(10 10)
|
||||
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
|
||||
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 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`))
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range g g 34 NULL 1 Using where
|
||||
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
|
||||
ST_AsText(g)
|
||||
POINT(10 10)
|
||||
POLYGON((5 5,20 5,20 21,5 21,5 5))
|
||||
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
|
||||
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 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`))
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range g g 34 NULL 1 Using where
|
||||
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
|
||||
ST_AsText(g)
|
||||
POINT(10 10)
|
||||
POLYGON((5 5,20 5,20 21,5 21,5 5))
|
||||
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
|
||||
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 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`))
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range g g 34 NULL 1 Using where
|
||||
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
|
||||
ST_AsText(g)
|
||||
POINT(10 10)
|
||||
POLYGON((5 5,20 5,20 21,5 21,5 5))
|
||||
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
|
||||
1 SIMPLE t1 NULL range g g 34 NULL 2 100.00 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`))
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range g g 34 NULL 2 Using where
|
||||
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
|
||||
ST_AsText(g)
|
||||
POINT(10 10)
|
||||
POLYGON((5 5,20 5,20 21,5 21,5 5))
|
||||
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
|
||||
1 SIMPLE t1 NULL range g g 34 NULL 2 100.00 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`))
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range g g 34 NULL 2 Using where
|
||||
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
|
||||
ST_AsText(g)
|
||||
POINT(10 10)
|
||||
POLYGON((5 5,20 5,20 21,5 21,5 5))
|
||||
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
|
||||
1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 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`))
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where
|
||||
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
|
||||
ST_AsText(g)
|
||||
POINT(10 10)
|
||||
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))
|
||||
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
|
||||
1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 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`))
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where
|
||||
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
|
||||
ST_AsText(g)
|
||||
POINT(10 10)
|
||||
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))
|
||||
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
|
||||
1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 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`))
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where
|
||||
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
|
||||
ST_AsText(g)
|
||||
POINT(10 10)
|
||||
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))
|
||||
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
|
||||
1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 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`))
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where
|
||||
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
|
||||
ST_AsText(g)
|
||||
POINT(10 10)
|
||||
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))
|
||||
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
|
||||
1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 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`))
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where
|
||||
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
|
||||
ST_AsText(g)
|
||||
POINT(10 10)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,24 +1,8 @@
|
||||
SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency;
|
||||
SET GLOBAL innodb_purge_rseg_truncate_frequency = 1;
|
||||
create table t (
|
||||
a point not null,b point not null,c point,
|
||||
d point not null,e point,f point,
|
||||
spatial key (d),spatial key (b)
|
||||
b point not null,d point not null, spatial key (d),spatial key (b)
|
||||
) 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
|
||||
drop procedure p;
|
||||
drop table t;
|
||||
SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency;
|
||||
|
@ -1,4 +1,3 @@
|
||||
# restart
|
||||
create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb;
|
||||
create procedure insert_t1(IN total int)
|
||||
begin
|
||||
@ -33,10 +32,9 @@ Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
18
|
||||
17
|
||||
select c1, ST_astext(c2) from t1;
|
||||
c1 ST_astext(c2)
|
||||
350 POINT(10350 10350)
|
||||
351 POINT(10351 10351)
|
||||
352 POINT(10352 10352)
|
||||
353 POINT(10353 10353)
|
||||
|
@ -14,19 +14,19 @@ count(*)
|
||||
set @g1 = ST_GeomFromText('Polygon((0 0,0 1000,1000 1000,1000 0,0 0))');
|
||||
select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
count(*)
|
||||
999
|
||||
1000
|
||||
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
|
||||
select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
count(*)
|
||||
99
|
||||
100
|
||||
set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))');
|
||||
select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
count(*)
|
||||
789
|
||||
791
|
||||
set @g1 = ST_GeomFromText('Polygon((100 100,100 800,800 800,800 100,100 100))');
|
||||
select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
count(*)
|
||||
699
|
||||
701
|
||||
set @g1 = ST_GeomFromText('Point(1 1)');
|
||||
select count(*) from t1 where MBRequals(t1.c2, @g1);
|
||||
count(*)
|
||||
|
@ -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;
|
||||
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;
|
||||
SET SESSION debug="-d, rtr_page_need_second_split";
|
||||
SET debug_dbug = @saved_dbug;
|
||||
delete from t1;
|
||||
insert into t1 values(1, Point(1,1));
|
||||
insert into t1 values(2, Point(2,2));
|
||||
@ -62,6 +63,8 @@ count(*)
|
||||
0
|
||||
drop index c2 on t1;
|
||||
create spatial index idx2 on t1(c2);
|
||||
affected rows: 0
|
||||
info: Records: 0 Duplicates: 0 Warnings: 0
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
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);
|
||||
count(*)
|
||||
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))');
|
||||
select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
count(*)
|
||||
@ -81,6 +87,5 @@ count(*)
|
||||
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(*)
|
||||
57344
|
||||
# restart
|
||||
65536
|
||||
drop table t1;
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,6 +1,4 @@
|
||||
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_debug.inc
|
||||
|
||||
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(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;
|
||||
|
3
mysql-test/suite/innodb_gis/t/innodb_gis_rtree.test
Normal file
3
mysql-test/suite/innodb_gis/t/innodb_gis_rtree.test
Normal file
@ -0,0 +1,3 @@
|
||||
-- source include/innodb_page_size.inc
|
||||
-- source include/innodb_row_format.inc
|
||||
-- source ../../../t/gis-rtree.test
|
@ -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
|
||||
|
@ -4,17 +4,15 @@
|
||||
# Not supported in embedded
|
||||
--source include/not_embedded.inc
|
||||
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_innodb_zip.inc
|
||||
--source include/innodb_page_size_small.inc
|
||||
--source include/have_debug.inc
|
||||
--source include/big_test.inc
|
||||
# Valgrind takes too much time on PB2 even in the --big-test runs.
|
||||
--source include/not_valgrind.inc
|
||||
|
||||
# Create table with R-tree index.
|
||||
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 with R-tree index.
|
||||
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.
|
||||
@ -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))');
|
||||
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';
|
||||
delete from t1;
|
||||
SET DEBUG='-d,page_copy_rec_list_start_compress_fail';
|
||||
|
||||
|
||||
select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
SET debug_dbug = @saved_dbug;
|
||||
|
||||
--source ../../innodb/include/wait_all_purged.inc
|
||||
|
||||
# Clean up.
|
||||
drop table t1;
|
||||
SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency;
|
||||
|
@ -4,8 +4,7 @@
|
||||
# Restarting is not supported in embedded
|
||||
--source include/not_embedded.inc
|
||||
|
||||
--source include/have_innodb.inc
|
||||
--source include/have_innodb_zip.inc
|
||||
--source include/innodb_page_size_small.inc
|
||||
--source include/big_test.inc
|
||||
# Valgrind takes too much time on PB2 even in the --big-test runs.
|
||||
--source include/not_valgrind.inc
|
||||
@ -29,31 +28,14 @@ delimiter ;|
|
||||
|
||||
# Test level 3 rtree.
|
||||
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
|
||||
--source include/restart_mysqld.inc
|
||||
|
||||
check table t1;
|
||||
select count(*) from t1;
|
||||
delete from t1;
|
||||
|
||||
# Clean up.
|
||||
drop procedure insert_t1;
|
||||
drop table t1;
|
||||
|
@ -1,9 +1,6 @@
|
||||
# WL#6745 InnoDB R-tree support
|
||||
# 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_debug.inc
|
||||
--source include/have_debug_sync.inc
|
||||
@ -32,8 +29,7 @@ insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
|
||||
connect (a,localhost,root,,);
|
||||
connection a;
|
||||
SET SESSION debug="+d,rtr_pcur_move_to_next_return";
|
||||
SET debug_dbug='+d,rtr_pcur_move_to_next_return';
|
||||
|
||||
set session transaction isolation level serializable;
|
||||
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';
|
||||
--send select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
|
||||
--echo # Establish session con1 (user=root)
|
||||
connect (con1,localhost,root,,);
|
||||
connection con1;
|
||||
set session transaction isolation level serializable;
|
||||
|
||||
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
|
||||
connect (b,localhost,root,,);
|
||||
connection b;
|
||||
set session transaction isolation level serializable;
|
||||
set session innodb_lock_wait_timeout = 1;
|
||||
|
||||
@ -292,15 +285,8 @@ insert into t1 values (1200, Point(950, 950));
|
||||
connection a;
|
||||
select sleep(2);
|
||||
commit;
|
||||
|
||||
connection a;
|
||||
SET SESSION debug="-d,rtr_pcur_move_to_next_return";
|
||||
disconnect a;
|
||||
--source include/wait_until_disconnected.inc
|
||||
|
||||
connection b;
|
||||
disconnect b;
|
||||
--source include/wait_until_disconnected.inc
|
||||
|
||||
# Clean up.
|
||||
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)'));
|
||||
|
||||
connect (a,localhost,root,,);
|
||||
connection a;
|
||||
SET SESSION debug="+d,rtr_pcur_move_to_next_return";
|
||||
|
||||
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);
|
||||
|
||||
connect (b,localhost,root,,);
|
||||
connection b;
|
||||
|
||||
# This should be successful
|
||||
delete from t1 where c1 = 1;
|
||||
@ -432,20 +416,14 @@ rollback;
|
||||
SET DEBUG_SYNC= 'now SIGNAL sigb';
|
||||
|
||||
connection a;
|
||||
--reap;
|
||||
reap;
|
||||
|
||||
connection default;
|
||||
drop procedure insert_t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
connection a;
|
||||
SET SESSION debug="-d,rtr_pcur_move_to_next_return";
|
||||
disconnect a;
|
||||
--source include/wait_until_disconnected.inc
|
||||
|
||||
connection b;
|
||||
disconnect b;
|
||||
--source include/wait_until_disconnected.inc
|
||||
|
||||
connection default;
|
||||
SET DEBUG_SYNC = 'RESET';
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,52 +1,32 @@
|
||||
# This test case will test R-tree purge.
|
||||
|
||||
# Not supported in embedded
|
||||
--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
|
||||
--source include/innodb_page_size.inc
|
||||
# Valgrind takes too much time on PB2 even in the --big-test runs.
|
||||
--source include/not_valgrind.inc
|
||||
|
||||
# Temporarily disable it for 4k page size. Since it'll take too long
|
||||
# time.
|
||||
--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
|
||||
SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency;
|
||||
SET GLOBAL innodb_purge_rseg_truncate_frequency = 1;
|
||||
|
||||
create table t (
|
||||
a point not null,b point not null,c point,
|
||||
d point not null,e point,f point,
|
||||
spatial key (d),spatial key (b)
|
||||
b point not null,d point not null, spatial key (d),spatial key (b)
|
||||
) engine=innodb;
|
||||
|
||||
delimiter |;
|
||||
create procedure p(i int)
|
||||
begin
|
||||
declare n int default 0;
|
||||
declare continue handler for sqlexception begin end;
|
||||
delete from t;
|
||||
repeat
|
||||
--disable_query_log
|
||||
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;
|
||||
let $n=200;
|
||||
while ($n) {
|
||||
begin;
|
||||
insert into t values(@p,@p),(@p,@p);
|
||||
insert into t select @p,@p
|
||||
from t a,t b,t c,t d,t e,t f,t g;
|
||||
delete from t;
|
||||
set n:=n+1;
|
||||
until n >= i end repeat;
|
||||
end|
|
||||
delimiter ;|
|
||||
commit;
|
||||
dec $n;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
call p(200);
|
||||
|
||||
--source include/wait_all_purged.inc
|
||||
--source ../../innodb/include/wait_all_purged.inc
|
||||
|
||||
# Clean up.
|
||||
drop procedure p;
|
||||
drop table t;
|
||||
SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency;
|
||||
|
@ -31,9 +31,10 @@ insert into t1 select * from t1;
|
||||
insert into t1 select * from t1;
|
||||
|
||||
#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;
|
||||
SET SESSION debug="-d, rtr_page_need_second_split";
|
||||
SET debug_dbug = @saved_dbug;
|
||||
|
||||
delete from t1;
|
||||
|
||||
@ -79,24 +80,27 @@ select count(*) from t1 where MBRWithin(t1.c2, @g1);
|
||||
drop index c2 on t1;
|
||||
|
||||
# Test create index with algorithm=inplace
|
||||
--enable_info
|
||||
create spatial index idx2 on t1(c2);
|
||||
--disable_info
|
||||
|
||||
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
|
||||
let $restart_parameters = restart: --innodb-read-only;
|
||||
let $restart_parameters = --innodb-read-only;
|
||||
--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);
|
||||
|
||||
let $restart_parameters = restart;
|
||||
let $restart_parameters =;
|
||||
--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.
|
||||
drop table t1;
|
||||
|
File diff suppressed because one or more lines are too long
@ -3,15 +3,12 @@
|
||||
#
|
||||
# test of rtree (using with spatial data)
|
||||
#
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE t1 (
|
||||
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
g GEOMETRY NOT NULL,
|
||||
SPATIAL KEY(g)
|
||||
) ENGINE=MyISAM;
|
||||
);
|
||||
|
||||
SHOW CREATE TABLE t1;
|
||||
|
||||
@ -33,7 +30,7 @@ DROP TABLE t1;
|
||||
CREATE TABLE t2 (
|
||||
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
g GEOMETRY NOT NULL
|
||||
) ENGINE=MyISAM;
|
||||
);
|
||||
|
||||
let $1=10;
|
||||
while ($1)
|
||||
@ -70,7 +67,6 @@ while ($1)
|
||||
|
||||
DROP TABLE t2;
|
||||
|
||||
drop table if exists t1;
|
||||
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)"));
|
||||
@ -113,7 +109,7 @@ CREATE TABLE t1 (
|
||||
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
g GEOMETRY NOT NULL,
|
||||
SPATIAL KEY(g)
|
||||
) ENGINE=MyISAM;
|
||||
);
|
||||
|
||||
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)');
|
||||
@ -125,9 +121,7 @@ CREATE TABLE t1 (
|
||||
name VARCHAR(32),
|
||||
|
||||
SPATIAL KEY (line)
|
||||
|
||||
|
||||
) engine=myisam;
|
||||
);
|
||||
|
||||
ALTER TABLE t1 DISABLE KEYS;
|
||||
INSERT INTO t1 (name, kind, line) VALUES
|
||||
@ -172,7 +166,7 @@ CREATE TABLE t2 (geom GEOMETRY NOT NULL, SPATIAL KEY gk(geom));
|
||||
INSERT IGNORE INTO t2 SELECT GeomFromText(st) FROM t1;
|
||||
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
|
||||
(PolygonFromText('POLYGON((-18.6086111000 -66.9327777000, -18.6055555000
|
||||
@ -193,7 +187,7 @@ drop table t1;
|
||||
CREATE TABLE t1 (
|
||||
c1 geometry NOT NULL default '',
|
||||
SPATIAL KEY i1 (c1)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
) DEFAULT CHARSET=latin1;
|
||||
INSERT INTO t1 (c1) VALUES (
|
||||
PolygonFromText('POLYGON((-18.6086111000 -66.9327777000,
|
||||
-18.6055555000 -66.8158332999,
|
||||
@ -207,7 +201,7 @@ DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
c1 geometry NOT NULL default '',
|
||||
SPATIAL KEY i1 (c1)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
) DEFAULT CHARSET=latin1;
|
||||
INSERT INTO t1 (c1) VALUES (
|
||||
PolygonFromText('POLYGON((-18.6086111000 -66.9327777000,
|
||||
-18.6055555000 -66.8158332999,
|
||||
@ -252,7 +246,7 @@ CREATE TABLE t1 (id bigint(12) unsigned NOT NULL auto_increment,
|
||||
spatial_point point NOT NULL,
|
||||
PRIMARY KEY(id),
|
||||
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
|
||||
('y', 's', 'j', GeomFromText('POINT(167 74)')),
|
||||
@ -936,7 +930,7 @@ DROP TABLE t1;
|
||||
--echo #
|
||||
|
||||
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)"));
|
||||
--error ER_CANT_CREATE_GEOMETRY_OBJECT
|
||||
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;
|
||||
|
||||
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)"));
|
||||
--error ER_CANT_CREATE_GEOMETRY_OBJECT
|
||||
INSERT IGNORE INTO t1 SET a=0, b=GEOMFROMTEXT("error");
|
||||
@ -963,7 +957,7 @@ DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
l LINESTRING NOT NULL,
|
||||
SPATIAL KEY(l)
|
||||
) ENGINE = myisam;
|
||||
);
|
||||
|
||||
INSERT INTO t1 VALUES(GeomFromText('LINESTRING(0 0, 1 1)'));
|
||||
INSERT INTO t1 VALUES(GeomFromText('LINESTRING(1 1, 2 2)'));
|
||||
@ -985,7 +979,7 @@ DROP TABLE t1;
|
||||
--echo #
|
||||
--echo # MDEV-8239 Reverse spatial operations OP(const, field) do not get optimized
|
||||
--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));
|
||||
EXPLAIN SELECT * FROM t1 WHERE MBRINTERSECTS(a,Point(1,2));
|
||||
EXPLAIN SELECT * FROM t1 WHERE ST_INTERSECTS(a,Point(1,2));
|
||||
@ -996,7 +990,7 @@ DROP TABLE t1;
|
||||
--echo #
|
||||
--echo # MDEV-8610 "WHERE CONTAINS(indexed_geometry_column,1)" causes full table scan
|
||||
--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));
|
||||
--error ER_ILLEGAL_PARAMETER_DATA_TYPE_FOR_OPERATION
|
||||
EXPLAIN SELECT * FROM t1 WHERE CONTAINS(a,1);
|
||||
|
@ -18,7 +18,6 @@
|
||||
|
||||
#include "mariadb.h"
|
||||
#include "sql_priv.h"
|
||||
#include "mysqld_error.h"
|
||||
|
||||
#ifndef MYSQL_CLIENT
|
||||
#include "unireg.h"
|
||||
@ -44,6 +43,8 @@
|
||||
#include <strfunc.h>
|
||||
#include "compat56.h"
|
||||
#include "wsrep_mysqld.h"
|
||||
#else
|
||||
#include "mysqld_error.h"
|
||||
#endif /* MYSQL_CLIENT */
|
||||
|
||||
#include <my_bitmap.h>
|
||||
@ -1930,9 +1931,9 @@ err:
|
||||
#endif
|
||||
if (event.length() >= OLD_HEADER_LEN)
|
||||
sql_print_error("Error in Log_event::read_log_event(): '%s',"
|
||||
" data_len: %lu, event_type: %d", error,
|
||||
uint4korr(&event[EVENT_LEN_OFFSET]),
|
||||
(uchar)event[EVENT_TYPE_OFFSET]);
|
||||
" data_len: %lu, event_type: %u", error,
|
||||
(ulong) uint4korr(&event[EVENT_LEN_OFFSET]),
|
||||
(uint) (uchar)event[EVENT_TYPE_OFFSET]);
|
||||
else
|
||||
sql_print_error("Error in Log_event::read_log_event(): '%s'", error);
|
||||
/*
|
||||
@ -14533,7 +14534,8 @@ st_print_event_info::st_print_event_info()
|
||||
bool copy_event_cache_to_string_and_reinit(IO_CACHE *cache, LEX_STRING *to)
|
||||
{
|
||||
reinit_io_cache(cache, READ_CACHE, 0L, FALSE, FALSE);
|
||||
if (!(to->str= (char*) my_malloc((to->length= cache->end_of_file), MYF(0))))
|
||||
if (cache->end_of_file > SIZE_T_MAX ||
|
||||
!(to->str= (char*) my_malloc((to->length= (size_t)cache->end_of_file), MYF(0))))
|
||||
{
|
||||
perror("Out of memory: can't allocate memory in copy_event_cache_to_string_and_reinit().");
|
||||
goto err;
|
||||
|
@ -20,7 +20,7 @@
|
||||
#include "sql_array.h"
|
||||
#include "rpl_rli.h"
|
||||
#include <lf.h>
|
||||
#include <mysqld_error.h>
|
||||
#include "unireg.h"
|
||||
#include <mysql/plugin.h>
|
||||
#include <mysql/service_thd_wait.h>
|
||||
#include <mysql/psi/mysql_stage.h>
|
||||
|
@ -10264,8 +10264,8 @@ void SEL_ARG::test_use_count(SEL_ARG *root)
|
||||
ulong count=count_key_part_usage(root,pos->next_key_part);
|
||||
if (count > pos->next_key_part->use_count)
|
||||
{
|
||||
sql_print_information("Use_count: Wrong count for key at %p, %lu "
|
||||
"should be %lu", (long unsigned int)pos,
|
||||
sql_print_information("Use_count: Wrong count for key at %p: %lu "
|
||||
"should be %lu", pos,
|
||||
pos->next_key_part->use_count, count);
|
||||
return;
|
||||
}
|
||||
@ -10274,7 +10274,7 @@ void SEL_ARG::test_use_count(SEL_ARG *root)
|
||||
}
|
||||
if (e_count != elements)
|
||||
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
|
||||
|
||||
|
@ -2139,10 +2139,7 @@ slave_connection_state::load(const char *slave_request, size_t len)
|
||||
for (;;)
|
||||
{
|
||||
if (!(rec= (uchar *)my_malloc(sizeof(entry), MYF(MY_WME))))
|
||||
{
|
||||
my_error(ER_OUTOFMEMORY, MYF(0), (int) sizeof(*gtid));
|
||||
return 1;
|
||||
}
|
||||
gtid= &((entry *)rec)->gtid;
|
||||
if (gtid_parser_helper(&p, end, gtid))
|
||||
{
|
||||
@ -2758,10 +2755,7 @@ gtid_waiting::get_entry(uint32 domain_id)
|
||||
return e;
|
||||
|
||||
if (!(e= (hash_element *)my_malloc(sizeof(*e), MYF(MY_WME))))
|
||||
{
|
||||
my_error(ER_OUTOFMEMORY, MYF(0), (int) sizeof(*e));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (init_queue(&e->queue, 8, offsetof(queue_element, wait_seq_no), 0,
|
||||
cmp_queue_elem, NULL, 1+offsetof(queue_element, queue_idx), 1))
|
||||
|
@ -41,7 +41,7 @@
|
||||
#include <sql_common.h>
|
||||
#include <errmsg.h>
|
||||
#include <ssl_compat.h>
|
||||
#include <mysqld_error.h>
|
||||
#include "unireg.h"
|
||||
#include <mysys_err.h>
|
||||
#include <signal.h>
|
||||
#include <mysql.h>
|
||||
|
@ -2418,10 +2418,9 @@ sp_head::check_unresolved_goto()
|
||||
if (m_backpatch_goto.elements > 0)
|
||||
{
|
||||
List_iterator_fast<bp_t> li(m_backpatch_goto);
|
||||
bp_t *bp;
|
||||
while ((bp= li++))
|
||||
while (bp_t* bp= li++)
|
||||
{
|
||||
if ((bp->instr_type == GOTO))
|
||||
if (bp->instr_type == GOTO)
|
||||
{
|
||||
my_error(ER_SP_LILABEL_MISMATCH, MYF(0), "GOTO", bp->lab->name.str);
|
||||
has_unresolved_label=true;
|
||||
|
@ -8599,7 +8599,7 @@ bool mysql_show_create_user(THD *thd, LEX_USER *lex_user)
|
||||
hostname, NullS) - buff);
|
||||
Item_string *field = new (thd->mem_root) Item_string_ascii(thd, "", 0);
|
||||
if (!field)
|
||||
DBUG_RETURN(true);
|
||||
DBUG_RETURN(true); // Error given my my_alloc()
|
||||
|
||||
field->name.str= buff;
|
||||
field->name.length= head_length;
|
||||
|
@ -189,8 +189,12 @@ extern LEX_CSTRING current_user_and_current_role;
|
||||
|
||||
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
|
||||
: ER_ACCESS_DENIED_ERROR;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* prototypes */
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
#include "mariadb.h"
|
||||
#include "my_md5.h"
|
||||
#include "mysqld_error.h"
|
||||
#include "unireg.h"
|
||||
|
||||
#include "sql_string.h"
|
||||
#include "sql_class.h"
|
||||
|
@ -1574,7 +1574,8 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
|
||||
if (thd->wsrep_conflict_state == ABORTED &&
|
||||
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());
|
||||
mysql_mutex_unlock(&thd->LOCK_wsrep_thd);
|
||||
thd->reset_killed();
|
||||
@ -7826,7 +7827,8 @@ static void wsrep_mysql_parse(THD *thd, char *rawbuf, uint length,
|
||||
(longlong) thd->thread_id, is_autocommit,
|
||||
thd->wsrep_retry_counter,
|
||||
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->wsrep_conflict_state= NO_CONFLICT;
|
||||
if (thd->wsrep_conflict_state != REPLAYING)
|
||||
|
@ -379,15 +379,13 @@ static bool exchange_name_with_ddl_log(THD *thd,
|
||||
*/
|
||||
/* call rename table from table to tmp-name */
|
||||
DBUG_EXECUTE_IF("exchange_partition_fail_3",
|
||||
my_error(ER_ERROR_ON_RENAME, MYF(0),
|
||||
name, tmp_name, 0);
|
||||
my_error(ER_ERROR_ON_RENAME, MYF(0), name, tmp_name, 0);
|
||||
error_set= TRUE;
|
||||
goto err_rename;);
|
||||
DBUG_EXECUTE_IF("exchange_partition_abort_3", DBUG_SUICIDE(););
|
||||
if (file->ha_rename_table(name, tmp_name))
|
||||
{
|
||||
my_error(ER_ERROR_ON_RENAME, MYF(0), name, tmp_name,
|
||||
my_errno);
|
||||
my_error(ER_ERROR_ON_RENAME, MYF(0), name, tmp_name, my_errno);
|
||||
error_set= TRUE;
|
||||
goto err_rename;
|
||||
}
|
||||
@ -398,8 +396,7 @@ static bool exchange_name_with_ddl_log(THD *thd,
|
||||
|
||||
/* call rename table from partition to table */
|
||||
DBUG_EXECUTE_IF("exchange_partition_fail_5",
|
||||
my_error(ER_ERROR_ON_RENAME, MYF(0),
|
||||
from_name, name, 0);
|
||||
my_error(ER_ERROR_ON_RENAME, MYF(0), from_name, name, 0);
|
||||
error_set= TRUE;
|
||||
goto err_rename;);
|
||||
DBUG_EXECUTE_IF("exchange_partition_abort_5", DBUG_SUICIDE(););
|
||||
@ -416,8 +413,7 @@ static bool exchange_name_with_ddl_log(THD *thd,
|
||||
|
||||
/* call rename table from tmp-nam to partition */
|
||||
DBUG_EXECUTE_IF("exchange_partition_fail_7",
|
||||
my_error(ER_ERROR_ON_RENAME, MYF(0),
|
||||
tmp_name, from_name, 0);
|
||||
my_error(ER_ERROR_ON_RENAME, MYF(0), tmp_name, from_name, 0);
|
||||
error_set= TRUE;
|
||||
goto err_rename;);
|
||||
DBUG_EXECUTE_IF("exchange_partition_abort_7", DBUG_SUICIDE(););
|
||||
|
@ -2230,10 +2230,8 @@ static int mysql_test_handler_read(Prepared_statement *stmt,
|
||||
if (!stmt->is_sql_prepare())
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
if (send_prep_stmt(stmt, ha_table->fields.elements) ||
|
||||
lex->result->send_result_set_metadata(ha_table->fields, Protocol::SEND_EOF) ||
|
||||
thd->protocol->flush())
|
||||
|
@ -3414,7 +3414,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);
|
||||
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;
|
||||
}
|
||||
memcpy(to, from, from_length+1);
|
||||
|
@ -1209,7 +1209,7 @@ JOIN::optimize_inner()
|
||||
|
||||
/*
|
||||
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;
|
||||
|
||||
|
@ -476,7 +476,7 @@ typedef struct st_join_table {
|
||||
will be turned to fields. These variables are pointing to
|
||||
tmp_fields_list[123]. Valid only for tmp tables and the last non-tmp
|
||||
table in the query plan.
|
||||
@see JOIN::make_tmp_tables_info()
|
||||
@see JOIN::make_aggr_tables_info()
|
||||
*/
|
||||
List<Item> *fields;
|
||||
/** List of all expressions in the select list */
|
||||
|
@ -4991,7 +4991,8 @@ int mysql_create_table_no_lock(THD *thd,
|
||||
// Check if we hit FN_REFLEN bytes along with file extension.
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
@ -68,14 +68,14 @@ void select_unit::change_select()
|
||||
curr_sel= current_select_number;
|
||||
/* New SELECT processing starts */
|
||||
DBUG_ASSERT(table->file->inited == 0);
|
||||
switch (thd->lex->current_select->linkage)
|
||||
step= thd->lex->current_select->linkage;
|
||||
switch (step)
|
||||
{
|
||||
case INTERSECT_TYPE:
|
||||
intersect_mark->value= prev_step= curr_step;
|
||||
curr_step= current_select_number;
|
||||
/* fall through */
|
||||
break;
|
||||
case EXCEPT_TYPE:
|
||||
step= thd->lex->current_select->linkage;
|
||||
break;
|
||||
default:
|
||||
step= UNION_TYPE;
|
||||
|
@ -3713,7 +3713,15 @@ btr_cur_parse_update_in_place(
|
||||
/* We do not need to reserve search latch, as the page is only
|
||||
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);
|
||||
|
||||
if (!(flags & BTR_KEEP_SYS_FLAG)) {
|
||||
@ -3849,6 +3857,7 @@ btr_cur_update_in_place(
|
||||
roll_ptr_t roll_ptr = 0;
|
||||
ulint was_delete_marked;
|
||||
|
||||
ut_ad(page_is_leaf(cursor->page_cur.block->frame));
|
||||
rec = btr_cur_get_rec(cursor);
|
||||
index = cursor->index;
|
||||
ut_ad(rec_offs_validate(rec, index, offsets));
|
||||
|
@ -14754,7 +14754,7 @@ ha_innobase::defragment_table(
|
||||
"Table %s is encrypted but encryption service or"
|
||||
" used key_id is not available. "
|
||||
" Can't continue checking table.",
|
||||
index->table->name);
|
||||
index->table->name.m_name);
|
||||
|
||||
ret = convert_error_code_to_mysql(err, 0, current_thd);
|
||||
break;
|
||||
@ -14974,7 +14974,7 @@ ha_innobase::check(
|
||||
"Table %s is encrypted but encryption service or"
|
||||
" used key_id is not available. "
|
||||
" Can't continue checking table.",
|
||||
index->table->name);
|
||||
index->table->name.m_name);
|
||||
} else {
|
||||
push_warning_printf(
|
||||
thd,
|
||||
@ -22294,7 +22294,7 @@ ib_push_frm_error(
|
||||
"InnoDB: Table %s has a "
|
||||
"primary key in InnoDB data "
|
||||
"dictionary, but not in "
|
||||
"MariaDB!", ib_table->name);
|
||||
"MariaDB!", ib_table->name.m_name);
|
||||
}
|
||||
break;
|
||||
case DICT_NO_PK_FRM_HAS:
|
||||
@ -22307,7 +22307,7 @@ ib_push_frm_error(
|
||||
"columns, then MariaDB internally treats that "
|
||||
"key as the primary key. You can fix this "
|
||||
"error by dump + DROP + CREATE + reimport "
|
||||
"of the table.", ib_table->name);
|
||||
"of the table.", ib_table->name.m_name);
|
||||
|
||||
if (push_warning) {
|
||||
push_warning_printf(thd, Sql_condition::WARN_LEVEL_WARN,
|
||||
@ -22316,7 +22316,7 @@ ib_push_frm_error(
|
||||
"primary key in InnoDB data "
|
||||
"dictionary, but has one in "
|
||||
"MariaDB!",
|
||||
ib_table->name);
|
||||
ib_table->name.m_name);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -22340,7 +22340,7 @@ ib_push_frm_error(
|
||||
"indexes inside InnoDB, which "
|
||||
"is different from the number of "
|
||||
"indexes %u defined in the MariaDB ",
|
||||
ib_table->name, n_keys,
|
||||
ib_table->name.m_name, n_keys,
|
||||
table->s->keys);
|
||||
}
|
||||
break;
|
||||
@ -22350,7 +22350,7 @@ ib_push_frm_error(
|
||||
sql_print_error("InnoDB: Table %s is consistent "
|
||||
"on InnoDB data dictionary and MariaDB "
|
||||
" FRM file.",
|
||||
ib_table->name);
|
||||
ib_table->name.m_name);
|
||||
ut_error;
|
||||
break;
|
||||
}
|
||||
|
@ -3414,8 +3414,14 @@ row_sel_get_clust_rec_for_mysql(
|
||||
goto func_exit;
|
||||
}
|
||||
|
||||
buf_block_t* block = btr_pcur_get_block(
|
||||
prebuilt->pcur);
|
||||
/* FIXME: Why is this block not the
|
||||
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);
|
||||
dtuple_t* tuple = dict_index_build_data_tuple(
|
||||
rec, sec_index, true,
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*****************************************************************************
|
||||
|
||||
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
|
||||
the terms of the GNU General Public License as published by the Free Software
|
||||
@ -819,7 +819,8 @@ trx_roll_must_shutdown()
|
||||
mutex_enter(&recv_sys->mutex);
|
||||
|
||||
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);
|
||||
t != NULL;
|
||||
t = UT_LIST_GET_NEXT(trx_list, t)) {
|
||||
@ -834,7 +835,7 @@ trx_roll_must_shutdown()
|
||||
ib::info() << "To roll back: " << n_trx << " transactions, "
|
||||
<< n_rows << " rows";
|
||||
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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user