1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-14057 InnoDB GIS tests fail

Fix and enable some of the tests; some remain disabled.

The tests innodb_gis.rtree_old and innodb_gis.row_format
duplicated some versions of the test main.gis-rtree.
Instead of duplicating, source that test, in a new test
innodb_gis.innodb_gis_rtree.

Introduce innodb_row_format.combinations. Due to this,
ROW_FORMAT=COMPRESSED will not be covered in some tests
where it is covered in MySQL 5.7.
This commit is contained in:
Marko Mäkelä
2018-01-04 19:16:59 +02:00
parent 218dbf68b8
commit 8dc77a72ea
28 changed files with 1909 additions and 5475 deletions

View File

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

File diff suppressed because one or more lines are too long

View File

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

View File

@ -0,0 +1,4 @@
# The goal of including this file is to enable innodb_default_row_format
# combinations (see include/innodb_row_format.combinations)
--source include/have_innodb.inc

View File

@ -1,60 +0,0 @@
# include/wait_innodb_all_purged.inc
#
# SUMMARY
#
# Waits until purged all undo records of innodb, or operation times out.
#
# USAGE
#
# --source include/wait_innodb_all_purged.inc
#
--source include/have_innodb.inc
--source include/have_debug.inc
--disable_query_log
let $wait_counter_init= 300;
if ($wait_timeout)
{
let $wait_counter_init= `SELECT $wait_timeout * 10`;
}
# Reset $wait_timeout so that its value won't be used on subsequent
# calls, and default will be used instead.
let $wait_timeout= 0;
let $wait_counter= $wait_counter_init;
# Keep track of how many times the wait condition is tested
let $wait_condition_reps= 0;
let $prev_trx_age= 0;
while ($wait_counter)
{
--disable_warnings
let $trx_age = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS
WHERE VARIABLE_NAME = 'INNODB_PURGE_TRX_ID_AGE';`;
--enable_warnings
if ($trx_age != $prev_trx_age)
{
let $wait_counter= $wait_counter_init;
let $prev_trx_age= $trx_age;
}
let $success= `SELECT $trx_age < 1`;
inc $wait_condition_reps;
if ($success)
{
let $wait_counter= 0;
}
if (!$success)
{
real_sleep 0.1;
dec $wait_counter;
}
}
if (!$success)
{
echo Timeout in wait_innodb_all_purged.inc for INNODB_PURGE_TRX_ID_AGE = $trx_age;
}
--enable_query_log

View File

@ -1,9 +1,8 @@
DROP TABLE IF EXISTS t1, t2;
CREATE TABLE t1 ( CREATE TABLE t1 (
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
g GEOMETRY NOT NULL, g GEOMETRY NOT NULL,
SPATIAL KEY(g) SPATIAL KEY(g)
) ENGINE=MyISAM; );
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
@ -183,9 +182,9 @@ fid AsText(g)
2 LINESTRING(149 149,151 151) 2 LINESTRING(149 149,151 151)
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t2 ( CREATE TABLE t2 (
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
g GEOMETRY NOT NULL g GEOMETRY NOT NULL
) ENGINE=MyISAM; );
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 10 * 10 - 9), Point(10 * 10, 10 * 10))); INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 10 * 10 - 9), Point(10 * 10, 10 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 9 * 10 - 9), Point(10 * 10, 9 * 10))); INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 9 * 10 - 9), Point(10 * 10, 9 * 10)));
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 8 * 10 - 9), Point(10 * 10, 8 * 10))); INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 8 * 10 - 9), Point(10 * 10, 8 * 10)));
@ -298,11 +297,11 @@ t2 CREATE TABLE `t2` (
SELECT count(*) FROM t2; SELECT count(*) FROM t2;
count(*) count(*)
100 100
EXPLAIN SELECT fid, AsText(g) FROM t2 WHERE Within(g, EXPLAIN SELECT fid, AsText(g) FROM t2 WHERE Within(g,
GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))')); GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))'));
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t2 range g g 34 NULL 4 Using where 1 SIMPLE t2 range g g 34 NULL 4 Using where
SELECT fid, AsText(g) FROM t2 WHERE Within(g, SELECT fid, AsText(g) FROM t2 WHERE Within(g,
GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))')); GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))'));
fid AsText(g) fid AsText(g)
46 LINESTRING(51 41,60 50) 46 LINESTRING(51 41,60 50)
@ -710,9 +709,6 @@ SELECT count(*) FROM t2;
count(*) count(*)
100 100
DROP TABLE t2; DROP TABLE t2;
drop table if exists t1;
Warnings:
Note 1051 Unknown table 'test.t1'
CREATE TABLE t1 (a geometry NOT NULL, SPATIAL (a)); CREATE TABLE t1 (a geometry NOT NULL, SPATIAL (a));
INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
@ -751,10 +747,10 @@ Table Op Msg_type Msg_text
test.t1 analyze status OK test.t1 analyze status OK
drop table t1; drop table t1;
CREATE TABLE t1 ( CREATE TABLE t1 (
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
g GEOMETRY NOT NULL, g GEOMETRY NOT NULL,
SPATIAL KEY(g) SPATIAL KEY(g)
) ENGINE=MyISAM; );
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(1 2, 2 3)')),(GeomFromText('LineString(1 2, 2 4)')); INSERT INTO t1 (g) VALUES (GeomFromText('LineString(1 2, 2 3)')),(GeomFromText('LineString(1 2, 2 4)'));
drop table t1; drop table t1;
CREATE TABLE t1 ( CREATE TABLE t1 (
@ -762,9 +758,9 @@ line GEOMETRY NOT NULL,
kind ENUM('po', 'pp', 'rr', 'dr', 'rd', 'ts', 'cl') NOT NULL DEFAULT 'po', kind ENUM('po', 'pp', 'rr', 'dr', 'rd', 'ts', 'cl') NOT NULL DEFAULT 'po',
name VARCHAR(32), name VARCHAR(32),
SPATIAL KEY (line) SPATIAL KEY (line)
) engine=myisam; );
ALTER TABLE t1 DISABLE KEYS; ALTER TABLE t1 DISABLE KEYS;
INSERT INTO t1 (name, kind, line) VALUES INSERT INTO t1 (name, kind, line) VALUES
("Aadaouane", "pp", GeomFromText("POINT(32.816667 35.983333)")), ("Aadaouane", "pp", GeomFromText("POINT(32.816667 35.983333)")),
("Aadassiye", "pp", GeomFromText("POINT(35.816667 36.216667)")), ("Aadassiye", "pp", GeomFromText("POINT(35.816667 36.216667)")),
("Aadbel", "pp", GeomFromText("POINT(34.533333 36.100000)")), ("Aadbel", "pp", GeomFromText("POINT(34.533333 36.100000)")),
@ -803,7 +799,7 @@ CREATE TABLE t2 (geom GEOMETRY NOT NULL, SPATIAL KEY gk(geom));
INSERT IGNORE INTO t2 SELECT GeomFromText(st) FROM t1; INSERT IGNORE INTO t2 SELECT GeomFromText(st) FROM t1;
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
drop table t1, t2; drop table t1, t2;
CREATE TABLE t1 (`geometry` geometry NOT NULL default '',SPATIAL KEY `gndx` (`geometry`)) ENGINE=MyISAM DEFAULT CHARSET=latin1; CREATE TABLE t1 (`geometry` geometry NOT NULL default '',SPATIAL KEY `gndx` (`geometry`)) DEFAULT CHARSET=latin1;
INSERT INTO t1 (geometry) VALUES INSERT INTO t1 (geometry) VALUES
(PolygonFromText('POLYGON((-18.6086111000 -66.9327777000, -18.6055555000 (PolygonFromText('POLYGON((-18.6086111000 -66.9327777000, -18.6055555000
-66.8158332999, -18.7186111000 -66.8102777000, -18.7211111000 -66.9269443999, -66.8158332999, -18.7186111000 -66.8102777000, -18.7211111000 -66.9269443999,
@ -819,7 +815,7 @@ drop table t1;
CREATE TABLE t1 ( CREATE TABLE t1 (
c1 geometry NOT NULL default '', c1 geometry NOT NULL default '',
SPATIAL KEY i1 (c1) SPATIAL KEY i1 (c1)
) ENGINE=MyISAM DEFAULT CHARSET=latin1; ) DEFAULT CHARSET=latin1;
INSERT INTO t1 (c1) VALUES ( INSERT INTO t1 (c1) VALUES (
PolygonFromText('POLYGON((-18.6086111000 -66.9327777000, PolygonFromText('POLYGON((-18.6086111000 -66.9327777000,
-18.6055555000 -66.8158332999, -18.6055555000 -66.8158332999,
@ -833,7 +829,7 @@ DROP TABLE t1;
CREATE TABLE t1 ( CREATE TABLE t1 (
c1 geometry NOT NULL default '', c1 geometry NOT NULL default '',
SPATIAL KEY i1 (c1) SPATIAL KEY i1 (c1)
) ENGINE=MyISAM DEFAULT CHARSET=latin1; ) DEFAULT CHARSET=latin1;
INSERT INTO t1 (c1) VALUES ( INSERT INTO t1 (c1) VALUES (
PolygonFromText('POLYGON((-18.6086111000 -66.9327777000, PolygonFromText('POLYGON((-18.6086111000 -66.9327777000,
-18.6055555000 -66.8158332999, -18.6055555000 -66.8158332999,
@ -874,7 +870,7 @@ c3 varchar(10) collate utf8_bin default NULL,
spatial_point point NOT NULL, spatial_point point NOT NULL,
PRIMARY KEY(id), PRIMARY KEY(id),
SPATIAL KEY (spatial_point) SPATIAL KEY (spatial_point)
)ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin; ) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
INSERT INTO t1 (c2, c1, c3, spatial_point) VALUES INSERT INTO t1 (c2, c1, c3, spatial_point) VALUES
('y', 's', 'j', GeomFromText('POINT(167 74)')), ('y', 's', 'j', GeomFromText('POINT(167 74)')),
('r', 'n', 'd', GeomFromText('POINT(215 118)')), ('r', 'n', 'd', GeomFromText('POINT(215 118)')),
@ -1544,11 +1540,11 @@ HANDLER t1 CLOSE;
DROP TABLE t1; DROP TABLE t1;
End of 5.0 tests. End of 5.0 tests.
# #
# Bug #57323/11764487: myisam corruption with insert ignore # Bug #57323/11764487: myisam corruption with insert ignore
# and invalid spatial data # and invalid spatial data
# #
CREATE TABLE t1(a POINT NOT NULL, b GEOMETRY NOT NULL, CREATE TABLE t1(a POINT NOT NULL, b GEOMETRY NOT NULL,
SPATIAL KEY(a), SPATIAL KEY(b)) ENGINE=MyISAM; SPATIAL KEY(a), SPATIAL KEY(b));
INSERT INTO t1 VALUES(GEOMFROMTEXT("point (0 0)"), GEOMFROMTEXT("point (1 1)")); INSERT INTO t1 VALUES(GEOMFROMTEXT("point (0 0)"), GEOMFROMTEXT("point (1 1)"));
INSERT IGNORE INTO t1 SET a=GEOMFROMTEXT("point (-6 0)"), b=GEOMFROMTEXT("error"); INSERT IGNORE INTO t1 SET a=GEOMFROMTEXT("point (-6 0)"), b=GEOMFROMTEXT("error");
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
@ -1559,7 +1555,7 @@ ASTEXT(a) ASTEXT(b)
POINT(0 0) POINT(1 1) POINT(0 0) POINT(1 1)
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t1(a INT NOT NULL, b GEOMETRY NOT NULL, CREATE TABLE t1(a INT NOT NULL, b GEOMETRY NOT NULL,
KEY(a), SPATIAL KEY(b)) ENGINE=MyISAM; KEY(a), SPATIAL KEY(b));
INSERT INTO t1 VALUES(0, GEOMFROMTEXT("point (1 1)")); INSERT INTO t1 VALUES(0, GEOMFROMTEXT("point (1 1)"));
INSERT IGNORE INTO t1 SET a=0, b=GEOMFROMTEXT("error"); INSERT IGNORE INTO t1 SET a=0, b=GEOMFROMTEXT("error");
ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field ERROR 22003: Cannot get geometry object from data you send to the GEOMETRY field
@ -1573,7 +1569,7 @@ End of 5.1 tests
CREATE TABLE t1 ( CREATE TABLE t1 (
l LINESTRING NOT NULL, l LINESTRING NOT NULL,
SPATIAL KEY(l) SPATIAL KEY(l)
) ENGINE = myisam; );
INSERT INTO t1 VALUES(GeomFromText('LINESTRING(0 0, 1 1)')); INSERT INTO t1 VALUES(GeomFromText('LINESTRING(0 0, 1 1)'));
INSERT INTO t1 VALUES(GeomFromText('LINESTRING(1 1, 2 2)')); INSERT INTO t1 VALUES(GeomFromText('LINESTRING(1 1, 2 2)'));
INSERT INTO t1 VALUES(GeomFromText('LINESTRING(2 2, 3 3)')); INSERT INTO t1 VALUES(GeomFromText('LINESTRING(2 2, 3 3)'));
@ -1596,7 +1592,7 @@ DROP TABLE t1;
# #
# MDEV-8239 Reverse spatial operations OP(const, field) do not get optimized # MDEV-8239 Reverse spatial operations OP(const, field) do not get optimized
# #
CREATE TABLE t1 (a GEOMETRY NOT NULL, SPATIAL KEY(a)) ENGINE=MyISAM; CREATE TABLE t1 (a GEOMETRY NOT NULL, SPATIAL KEY(a));
INSERT INTO t1 VALUES (Point(1,2)),(Point(1,3)); INSERT INTO t1 VALUES (Point(1,2)),(Point(1,3));
EXPLAIN SELECT * FROM t1 WHERE MBRINTERSECTS(a,Point(1,2)); EXPLAIN SELECT * FROM t1 WHERE MBRINTERSECTS(a,Point(1,2));
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
@ -1614,7 +1610,7 @@ DROP TABLE t1;
# #
# MDEV-8610 "WHERE CONTAINS(indexed_geometry_column,1)" causes full table scan # MDEV-8610 "WHERE CONTAINS(indexed_geometry_column,1)" causes full table scan
# #
CREATE TABLE t1 (a GEOMETRY NOT NULL, SPATIAL KEY(a)) ENGINE=MyISAM; CREATE TABLE t1 (a GEOMETRY NOT NULL, SPATIAL KEY(a));
INSERT INTO t1 VALUES (Point(1,1)),(Point(2,2)),(Point(3,3)); INSERT INTO t1 VALUES (Point(1,1)),(Point(2,2)),(Point(3,3));
EXPLAIN SELECT * FROM t1 WHERE CONTAINS(a,1); EXPLAIN SELECT * FROM t1 WHERE CONTAINS(a,1);
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra

View File

@ -11,15 +11,9 @@
############################################################################## ##############################################################################
gis_split_inf : MDEV-14057 InnoDB GIS tests fail gis_split_inf : MDEV-14057 InnoDB GIS tests fail
row_format : MDEV-14057 InnoDB GIS tests fail
rtree_estimate : MDEV-14057 InnoDB GIS tests fail
rtree_multi_pk : MDEV-14057 InnoDB GIS tests fail rtree_multi_pk : MDEV-14057 InnoDB GIS tests fail
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 rtree_concurrent_srch: MDEV-14059 InnoDB assertion failure offset >= ((38U + 36 + 2 * 10) + 5) at page0page.h line 318
point_big : MDEV-14057 InnoDB GIS tests fail point_big : MDEV-14057 InnoDB GIS tests fail
geometry : MDEV-14057 InnoDB GIS tests fail geometry : MDEV-14057 InnoDB GIS tests fail
bug17057168 : MDEV-14057 InnoDB GIS tests fail
bug16236208 : MDEV-14057 InnoDB GIS tests fail bug16236208 : MDEV-14057 InnoDB GIS tests fail
bug16266012 : MDEV-14057 InnoDB GIS tests fail bug16266012 : MDEV-14057 InnoDB GIS tests fail
rtree_search : MDEV-14057 InnoDB GIS tests fail
rtree_old : MDEV-14057 InnoDB GIS tests fail

View File

@ -12,10 +12,8 @@ INSERT INTO t1 (location) SELECT POINT(tmp1.id, tmp2.id) FROM tmp tmp1,
tmp tmp2 ORDER BY tmp1.id, tmp2.id; tmp tmp2 ORDER BY tmp1.id, tmp2.id;
EXPLAIN SELECT id, ST_AsText(location) FROM t1 WHERE location = POINT(1, EXPLAIN SELECT id, ST_AsText(location) FROM t1 WHERE location = POINT(1,
2); 2);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ref location location 28 const 1 100.00 Using where 1 SIMPLE t1 ref location location 28 const 1 Using where
Warnings:
Note 1003 /* select#1 */ select `geotest`.`t1`.`id` AS `id`,st_astext(`geotest`.`t1`.`location`) AS `ST_AsText(location)` from `geotest`.`t1` where (`geotest`.`t1`.`location` = <cache>(point(1,2)))
SELECT id, ST_AsText(location) FROM t1 WHERE location = POINT(1, 2); SELECT id, ST_AsText(location) FROM t1 WHERE location = POINT(1, 2);
id ST_AsText(location) id ST_AsText(location)
163 POINT(1 2) 163 POINT(1 2)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,5 @@
SET GLOBAL innodb_file_per_table=1; SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency;
SET GLOBAL innodb_purge_rseg_truncate_frequency = 1;
create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb ROW_FORMAT=COMPRESSED; create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb ROW_FORMAT=COMPRESSED;
insert into t1 values(1, Point(1,1)); insert into t1 values(1, Point(1,1));
insert into t1 values(2, Point(2,2)); insert into t1 values(2, Point(2,2));
@ -39,14 +40,15 @@ set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))');
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
0 0
SET @saved_dbug = @@SESSION.debug_dbug;
SET DEBUG='+d,page_copy_rec_list_start_compress_fail'; SET DEBUG='+d,page_copy_rec_list_start_compress_fail';
Warnings: Warnings:
Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
delete from t1; delete from t1;
SET DEBUG='-d,page_copy_rec_list_start_compress_fail';
Warnings:
Warning 1287 '@@debug' is deprecated and will be removed in a future release. Please use '@@debug_dbug' instead
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
0 0
SET debug_dbug = @saved_dbug;
InnoDB 0 transactions not purged
drop table t1; drop table t1;
SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency;

View File

@ -9,16 +9,12 @@ set i = i + 1;
end while; end while;
end| end|
CALL insert_t1(70000); CALL insert_t1(70000);
select count(*) from t1;
count(*)
70000
check table t1; check table t1;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 check status OK test.t1 check status OK
truncate table t1; select count(*) from t1;
call mtr.add_suppression("InnoDB: A copy of page \[page id: space=[0-9]+, page number=[0-9]+\] in the doublewrite buffer slot [0-9]+ is not within space bounds"); count(*)
START TRANSACTION; 70000
CALL insert_t1(5000); delete from t1;
COMMIT;
drop procedure insert_t1; drop procedure insert_t1;
drop table t1; drop table t1;

View File

@ -6,10 +6,8 @@ SET @g1 = ST_GeomFromText('POINT(10 10)');
SET @g2 = ST_GeomFromText('POLYGON((5 5, 20 5, 20 21, 5 21, 5 5))'); SET @g2 = ST_GeomFromText('POLYGON((5 5, 20 5, 20 21, 5 21, 5 5))');
SET @g3 = ST_GeomFromText('POLYGON((1.79769e+308 1.79769e+308, 20 5, -1.79769e+308 -1.79769e+308, 1.79769e+308 1.79769e+308))'); SET @g3 = ST_GeomFromText('POLYGON((1.79769e+308 1.79769e+308, 20 5, -1.79769e+308 -1.79769e+308, 1.79769e+308 1.79769e+308))');
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g1); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g1);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL g NULL NULL NULL 1 100.00 Using where 1 SIMPLE t1 ALL g NULL NULL NULL 1 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrcontains(`test`.`t1`.`g`,(@`g1`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
ST_AsText(g) ST_AsText(g)
INSERT INTO t1 VALUES(@g1); INSERT INTO t1 VALUES(@g1);
@ -24,135 +22,105 @@ ANALYZE TABLE t1;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 analyze status OK test.t1 analyze status OK
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g1); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g1);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where 1 SIMPLE t1 range g g 34 NULL 1 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrcontains(`test`.`t1`.`g`,(@`g1`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g1); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g1);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL range g g 34 NULL 2 100.00 Using where 1 SIMPLE t1 range g g 34 NULL 2 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrdisjoint(`test`.`t1`.`g`,(@`g1`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g1); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g1);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where 1 SIMPLE t1 range g g 34 NULL 1 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrequals(`test`.`t1`.`g`,(@`g1`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g1); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g1);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where 1 SIMPLE t1 range g g 34 NULL 1 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrintersects(`test`.`t1`.`g`,(@`g1`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where 1 SIMPLE t1 range g g 34 NULL 1 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrwithin(`test`.`t1`.`g`,(@`g1`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g1);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g2); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g2);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where 1 SIMPLE t1 range g g 34 NULL 1 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrcontains(`test`.`t1`.`g`,(@`g2`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((5 5,20 5,20 21,5 21,5 5))
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g2); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g2);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where 1 SIMPLE t1 range g g 34 NULL 1 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrdisjoint(`test`.`t1`.`g`,(@`g2`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((5 5,20 5,20 21,5 21,5 5))
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g2); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g2);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL range g g 34 NULL 1 100.00 Using where 1 SIMPLE t1 range g g 34 NULL 1 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrequals(`test`.`t1`.`g`,(@`g2`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((5 5,20 5,20 21,5 21,5 5))
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g2); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g2);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL range g g 34 NULL 2 100.00 Using where 1 SIMPLE t1 range g g 34 NULL 2 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrintersects(`test`.`t1`.`g`,(@`g2`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((5 5,20 5,20 21,5 21,5 5))
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL range g g 34 NULL 2 100.00 Using where 1 SIMPLE t1 range g g 34 NULL 2 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrwithin(`test`.`t1`.`g`,(@`g2`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g2);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((5 5,20 5,20 21,5 21,5 5))
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g3); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRContains(g, @g3);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 Using where 1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrcontains(`test`.`t1`.`g`,(@`g3`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((5 5,20 5,20 21,5 21,5 5))
POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308)) POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308))
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g3); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRDisjoint(g, @g3);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 Using where 1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrdisjoint(`test`.`t1`.`g`,(@`g3`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((5 5,20 5,20 21,5 21,5 5))
POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308)) POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308))
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g3); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBREquals(g, @g3);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 Using where 1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrequals(`test`.`t1`.`g`,(@`g3`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((5 5,20 5,20 21,5 21,5 5))
POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308)) POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308))
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g3); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRIntersects(g, @g3);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 Using where 1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrintersects(`test`.`t1`.`g`,(@`g3`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)
POLYGON((5 5,20 5,20 21,5 21,5 5)) POLYGON((5 5,20 5,20 21,5 21,5 5))
POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308)) POLYGON((1.79769e308 1.79769e308,20 5,-1.79769e308 -1.79769e308,1.79769e308 1.79769e308))
EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); EXPLAIN SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
id select_type table partitions type possible_keys key key_len ref rows filtered Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 NULL ALL g NULL NULL NULL 3 100.00 Using where 1 SIMPLE t1 ALL g NULL NULL NULL 3 Using where
Warnings:
Note 1003 /* select#1 */ select st_astext(`test`.`t1`.`g`) AS `ST_AsText(g)` from `test`.`t1` where mbrwithin(`test`.`t1`.`g`,(@`g3`))
SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3); SELECT ST_AsText(g) FROM t1 WHERE MBRWithin(g, @g3);
ST_AsText(g) ST_AsText(g)
POINT(10 10) POINT(10 10)

File diff suppressed because it is too large Load Diff

View File

@ -1,24 +1,8 @@
SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency;
SET GLOBAL innodb_purge_rseg_truncate_frequency = 1;
create table t ( create table t (
a point not null,b point not null,c point, b point not null,d point not null, spatial key (d),spatial key (b)
d point not null,e point,f point,
spatial key (d),spatial key (b)
) engine=innodb; ) engine=innodb;
create procedure p(i int)
begin
declare n int default 0;
declare continue handler for sqlexception begin end;
delete from t;
repeat
set @p=point(1,1);
insert into t values(@p,@p,@p,@p,@p,@p);
insert into t values(@p,@p,@p,@p,@p,@p);
insert into t select @p,@p,@p,@p,@p,@p
from t a,t b,t c,t d,t e,t f,t g,t h,t i,t j;
delete from t;
set n:=n+1;
until n >= i end repeat;
end|
call p(200);
InnoDB 0 transactions not purged InnoDB 0 transactions not purged
drop procedure p;
drop table t; drop table t;
SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency;

View File

@ -14,19 +14,19 @@ count(*)
set @g1 = ST_GeomFromText('Polygon((0 0,0 1000,1000 1000,1000 0,0 0))'); set @g1 = ST_GeomFromText('Polygon((0 0,0 1000,1000 1000,1000 0,0 0))');
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
999 1000
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
99 100
set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))'); set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))');
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
789 791
set @g1 = ST_GeomFromText('Polygon((100 100,100 800,800 800,800 100,100 100))'); set @g1 = ST_GeomFromText('Polygon((100 100,100 800,800 800,800 100,100 100))');
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
699 701
set @g1 = ST_GeomFromText('Point(1 1)'); set @g1 = ST_GeomFromText('Point(1 1)');
select count(*) from t1 where MBRequals(t1.c2, @g1); select count(*) from t1 where MBRequals(t1.c2, @g1);
count(*) count(*)

View File

@ -14,9 +14,10 @@ insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
SET SESSION debug="+d, rtr_page_need_second_split"; SET @saved_dbug = @@SESSION.debug_dbug;
SET debug_dbug = '+d, rtr_page_need_second_split';
insert into t1 select * from t1; insert into t1 select * from t1;
SET SESSION debug="-d, rtr_page_need_second_split"; SET debug_dbug = @saved_dbug;
delete from t1; delete from t1;
insert into t1 values(1, Point(1,1)); insert into t1 values(1, Point(1,1));
insert into t1 values(2, Point(2,2)); insert into t1 values(2, Point(2,2));
@ -62,6 +63,8 @@ count(*)
0 0
drop index c2 on t1; drop index c2 on t1;
create spatial index idx2 on t1(c2); create spatial index idx2 on t1(c2);
affected rows: 0
info: Records: 0 Duplicates: 0 Warnings: 0
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
@ -73,7 +76,10 @@ set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
73728 73728
# restart: --innodb-read-only set @g1 = ST_GeomFromText('Polygon((2 2,2 800,800 800,800 2,2 2))');
select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*)
65536
set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))'); set @g1 = ST_GeomFromText('Polygon((0 0,0 100,100 100,100 0,0 0))');
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
@ -81,6 +87,5 @@ count(*)
set @g1 = ST_GeomFromText('Polygon((2 2,2 800,800 800,800 2,2 2))'); set @g1 = ST_GeomFromText('Polygon((2 2,2 800,800 800,800 2,2 2))');
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
57344 65536
# restart
drop table t1; drop table t1;

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,4 @@
--source include/have_innodb.inc --source include/have_innodb.inc
--source include/have_debug.inc
create table t1(a geometrycollection not null,spatial key(a))engine=innodb; create table t1(a geometrycollection not null,spatial key(a))engine=innodb;
@ -21,9 +19,6 @@ insert into t1(a) values( geometrycollection(linestring(point(85,-29), point(
insert into t1(a) values( geometrycollection(polygon(linestring(point(-9,0), point(-17,-15), point(-9,0)), linestring(point(-11,1), point(18,12), point(15,3), point(7,0), point(-11,1)), linestring(point(19,5), point(19,5)), linestring(point(17,-11), point(8,4), point(17,-11)), linestring(point(14914539334033432000000000000000000000.000000,127247994336690690000000000000000000000.000000), point(-14,-7), point(13,-2))), point(-4,-7), polygon(linestring(point(-18,9), point(11,-1), point(-18,9)), linestring(point(9,-3), point(9,-3)), linestring(point(-7,-9), point(9,-11), point(11,14), point(1.663324e+308,1.572127e+308)), linestring(point(-15,4), point(18,12), point(7,2), point(-15,4)), linestring(point(-15,-18), point(-20,-15), point(1152921504606846972,34359738370))), polygon(linestring(point(-5,-19), point(-11,11), point(10,5), point(-7,13), point(-5,-19)), linestring(point(-8,-6), point(-4,16), point(-8,-6)), linestring(point(-6,-10), point(3,-12), point(-6,-10)), linestring(point(-16,1), point(20,-12), point(-16,1)), linestring(point(-8,5), point(-20,-4), point(4,1), point(-6,-6), point(-8,5)), linestring(point(-8,-11), point(-5,-14), point(-8,-11)), linestring(point(3,-16), point(-15,-13), point(1.166708e+308,1.901147e+307), point(-8,6), point(3,-16))), point(0,-5)) ) ; insert into t1(a) values( geometrycollection(polygon(linestring(point(-9,0), point(-17,-15), point(-9,0)), linestring(point(-11,1), point(18,12), point(15,3), point(7,0), point(-11,1)), linestring(point(19,5), point(19,5)), linestring(point(17,-11), point(8,4), point(17,-11)), linestring(point(14914539334033432000000000000000000000.000000,127247994336690690000000000000000000000.000000), point(-14,-7), point(13,-2))), point(-4,-7), polygon(linestring(point(-18,9), point(11,-1), point(-18,9)), linestring(point(9,-3), point(9,-3)), linestring(point(-7,-9), point(9,-11), point(11,14), point(1.663324e+308,1.572127e+308)), linestring(point(-15,4), point(18,12), point(7,2), point(-15,4)), linestring(point(-15,-18), point(-20,-15), point(1152921504606846972,34359738370))), polygon(linestring(point(-5,-19), point(-11,11), point(10,5), point(-7,13), point(-5,-19)), linestring(point(-8,-6), point(-4,16), point(-8,-6)), linestring(point(-6,-10), point(3,-12), point(-6,-10)), linestring(point(-16,1), point(20,-12), point(-16,1)), linestring(point(-8,5), point(-20,-4), point(4,1), point(-6,-6), point(-8,5)), linestring(point(-8,-11), point(-5,-14), point(-8,-11)), linestring(point(3,-16), point(-15,-13), point(1.166708e+308,1.901147e+307), point(-8,6), point(3,-16))), point(0,-5)) ) ;
insert into t1(a) values( geometrycollection(linestring(point(-33,99), point(99,-87), point(38,-79), point(33,-39), point(-91,-8), point(46,-87))) ) ; insert into t1(a) values( geometrycollection(linestring(point(-33,99), point(99,-87), point(38,-79), point(33,-39), point(-91,-8), point(46,-87))) ) ;
insert into t1 select * from t1;
insert into t1 select * from t1;
insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;
insert into t1 select * from t1; insert into t1 select * from t1;

View File

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

View File

@ -1,34 +0,0 @@
--source include/not_embedded.inc
--source include/have_innodb.inc
--source include/innodb_page_size_small.inc
# Test the redundant format
LET $file_per_table='off';
LET $file_format='Antelope';
LET $row_format=REDUNDANT;
--source include/innodb_gis_row_format_basic.inc
# Test the compressed format
LET $file_per_table='on';
LET $file_format='Barracuda';
LET $row_format=COMPRESSED;
--source include/innodb_gis_row_format_basic.inc
# Test the dynamic format
LET $file_per_table='on';
LET $file_format='Barracuda';
LET $row_format=DYNAMIC;
--source include/innodb_gis_row_format_basic.inc
# Test the compact format
LET $file_per_table='off';
LET $file_format='Antelope';
LET $row_format=COMPACT;
--source include/innodb_gis_row_format_basic.inc

View File

@ -4,17 +4,15 @@
# Not supported in embedded # Not supported in embedded
--source include/not_embedded.inc --source include/not_embedded.inc
--source include/have_innodb.inc --source include/innodb_page_size_small.inc
--source include/have_innodb_zip.inc
--source include/have_debug.inc --source include/have_debug.inc
--source include/big_test.inc --source include/big_test.inc
# Valgrind takes too much time on PB2 even in the --big-test runs. # Valgrind takes too much time on PB2 even in the --big-test runs.
--source include/not_valgrind.inc --source include/not_valgrind.inc
# Create table with R-tree index. SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency;
SET GLOBAL innodb_file_per_table=1; SET GLOBAL innodb_purge_rseg_truncate_frequency = 1;
#Create table with R-tree index.
create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb ROW_FORMAT=COMPRESSED; create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb ROW_FORMAT=COMPRESSED;
# Insert enough values to let R-tree split. # Insert enough values to let R-tree split.
@ -53,12 +51,14 @@ select count(*) from t1 where MBRWithin(t1.c2, @g1);
set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))'); set @g1 = ST_GeomFromText('Polygon((10 10,10 800,800 800,800 10,10 10))');
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
SET @saved_dbug = @@SESSION.debug_dbug;
SET DEBUG='+d,page_copy_rec_list_start_compress_fail'; SET DEBUG='+d,page_copy_rec_list_start_compress_fail';
delete from t1; delete from t1;
SET DEBUG='-d,page_copy_rec_list_start_compress_fail';
select count(*) from t1 where MBRWithin(t1.c2, @g1); select count(*) from t1 where MBRWithin(t1.c2, @g1);
SET debug_dbug = @saved_dbug;
--source ../../innodb/include/wait_all_purged.inc
# Clean up. # Clean up.
drop table t1; drop table t1;
SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency;

View File

@ -4,8 +4,7 @@
# Restarting is not supported in embedded # Restarting is not supported in embedded
--source include/not_embedded.inc --source include/not_embedded.inc
--source include/have_innodb.inc --source include/innodb_page_size_small.inc
--source include/have_innodb_zip.inc
--source include/big_test.inc --source include/big_test.inc
# Valgrind takes too much time on PB2 even in the --big-test runs. # Valgrind takes too much time on PB2 even in the --big-test runs.
--source include/not_valgrind.inc --source include/not_valgrind.inc
@ -29,31 +28,14 @@ delimiter ;|
# Test level 3 rtree. # Test level 3 rtree.
CALL insert_t1(70000); CALL insert_t1(70000);
select count(*) from t1;
# Check table.
check table t1;
truncate table t1;
# Test crash recovery.
#
#
call mtr.add_suppression("InnoDB: A copy of page \[page id: space=[0-9]+, page number=[0-9]+\] in the doublewrite buffer slot [0-9]+ is not within space bounds");
# Test rtree enlarge recovery.
START TRANSACTION;
CALL insert_t1(5000);
#select count(*) from t1;
# Check table.
#check table t1;
COMMIT;
--let $shutdown_timeout=0 --let $shutdown_timeout=0
--source include/restart_mysqld.inc --source include/restart_mysqld.inc
check table t1;
select count(*) from t1;
delete from t1;
# Clean up. # Clean up.
drop procedure insert_t1; drop procedure insert_t1;
drop table t1; drop table t1;

File diff suppressed because it is too large Load Diff

View File

@ -1,52 +1,32 @@
# This test case will test R-tree purge. # This test case will test R-tree purge.
# Not supported in embedded --source include/innodb_page_size.inc
--source include/not_embedded.inc
--source include/have_innodb.inc
--source include/have_innodb_zip.inc
--source include/have_debug.inc
--source include/big_test.inc
# Valgrind takes too much time on PB2 even in the --big-test runs. # Valgrind takes too much time on PB2 even in the --big-test runs.
--source include/not_valgrind.inc --source include/not_valgrind.inc
# Temporarily disable it for 4k page size. Since it'll take too long SET @saved_frequency = @@GLOBAL.innodb_purge_rseg_truncate_frequency;
# time. SET GLOBAL innodb_purge_rseg_truncate_frequency = 1;
--disable_warnings
if (`SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE LOWER(variable_name) = 'innodb_page_size' AND variable_value = 4096`)
{
--skip Test requires InnoDB with not 4k Page size.
}
--enable_warnings
create table t ( create table t (
a point not null,b point not null,c point, b point not null,d point not null, spatial key (d),spatial key (b)
d point not null,e point,f point,
spatial key (d),spatial key (b)
) engine=innodb; ) engine=innodb;
delimiter |; --disable_query_log
create procedure p(i int) set @p=point(1,1);
begin let $n=200;
declare n int default 0; while ($n) {
declare continue handler for sqlexception begin end; begin;
delete from t; insert into t values(@p,@p),(@p,@p);
repeat insert into t select @p,@p
set @p=point(1,1); from t a,t b,t c,t d,t e,t f,t g;
insert into t values(@p,@p,@p,@p,@p,@p); delete from t;
insert into t values(@p,@p,@p,@p,@p,@p); commit;
insert into t select @p,@p,@p,@p,@p,@p dec $n;
from t a,t b,t c,t d,t e,t f,t g,t h,t i,t j; }
delete from t; --enable_query_log
set n:=n+1;
until n >= i end repeat;
end|
delimiter ;|
call p(200); --source ../../innodb/include/wait_all_purged.inc
--source include/wait_all_purged.inc
# Clean up. # Clean up.
drop procedure p;
drop table t; drop table t;
SET GLOBAL innodb_purge_rseg_truncate_frequency = @saved_frequency;

View File

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

File diff suppressed because one or more lines are too long

View File

@ -3,15 +3,12 @@
# #
# test of rtree (using with spatial data) # test of rtree (using with spatial data)
# #
--disable_warnings
DROP TABLE IF EXISTS t1, t2;
--enable_warnings
CREATE TABLE t1 ( CREATE TABLE t1 (
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
g GEOMETRY NOT NULL, g GEOMETRY NOT NULL,
SPATIAL KEY(g) SPATIAL KEY(g)
) ENGINE=MyISAM; );
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
@ -31,9 +28,9 @@ SELECT fid, AsText(g) FROM t1 WHERE Within(g, GeomFromText('Polygon((140 140,160
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t2 ( CREATE TABLE t2 (
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
g GEOMETRY NOT NULL g GEOMETRY NOT NULL
) ENGINE=MyISAM; );
let $1=10; let $1=10;
while ($1) while ($1)
@ -50,9 +47,9 @@ while ($1)
ALTER TABLE t2 ADD SPATIAL KEY(g); ALTER TABLE t2 ADD SPATIAL KEY(g);
SHOW CREATE TABLE t2; SHOW CREATE TABLE t2;
SELECT count(*) FROM t2; SELECT count(*) FROM t2;
EXPLAIN SELECT fid, AsText(g) FROM t2 WHERE Within(g, EXPLAIN SELECT fid, AsText(g) FROM t2 WHERE Within(g,
GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))')); GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))'));
SELECT fid, AsText(g) FROM t2 WHERE Within(g, SELECT fid, AsText(g) FROM t2 WHERE Within(g,
GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))')); GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))'));
let $1=10; let $1=10;
@ -70,7 +67,6 @@ while ($1)
DROP TABLE t2; DROP TABLE t2;
drop table if exists t1;
CREATE TABLE t1 (a geometry NOT NULL, SPATIAL (a)); CREATE TABLE t1 (a geometry NOT NULL, SPATIAL (a));
INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)")); INSERT INTO t1 VALUES (GeomFromText("LINESTRING(100 100, 200 200, 300 300)"));
@ -110,10 +106,10 @@ drop table t1;
# #
CREATE TABLE t1 ( CREATE TABLE t1 (
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
g GEOMETRY NOT NULL, g GEOMETRY NOT NULL,
SPATIAL KEY(g) SPATIAL KEY(g)
) ENGINE=MyISAM; );
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(1 2, 2 3)')),(GeomFromText('LineString(1 2, 2 4)')); INSERT INTO t1 (g) VALUES (GeomFromText('LineString(1 2, 2 3)')),(GeomFromText('LineString(1 2, 2 4)'));
#select * from t1 where g<GeomFromText('LineString(1 2, 2 3)'); #select * from t1 where g<GeomFromText('LineString(1 2, 2 3)');
@ -125,12 +121,10 @@ CREATE TABLE t1 (
name VARCHAR(32), name VARCHAR(32),
SPATIAL KEY (line) SPATIAL KEY (line)
);
) engine=myisam;
ALTER TABLE t1 DISABLE KEYS; ALTER TABLE t1 DISABLE KEYS;
INSERT INTO t1 (name, kind, line) VALUES INSERT INTO t1 (name, kind, line) VALUES
("Aadaouane", "pp", GeomFromText("POINT(32.816667 35.983333)")), ("Aadaouane", "pp", GeomFromText("POINT(32.816667 35.983333)")),
("Aadassiye", "pp", GeomFromText("POINT(35.816667 36.216667)")), ("Aadassiye", "pp", GeomFromText("POINT(35.816667 36.216667)")),
("Aadbel", "pp", GeomFromText("POINT(34.533333 36.100000)")), ("Aadbel", "pp", GeomFromText("POINT(34.533333 36.100000)")),
@ -172,7 +166,7 @@ CREATE TABLE t2 (geom GEOMETRY NOT NULL, SPATIAL KEY gk(geom));
INSERT IGNORE INTO t2 SELECT GeomFromText(st) FROM t1; INSERT IGNORE INTO t2 SELECT GeomFromText(st) FROM t1;
drop table t1, t2; drop table t1, t2;
CREATE TABLE t1 (`geometry` geometry NOT NULL default '',SPATIAL KEY `gndx` (`geometry`)) ENGINE=MyISAM DEFAULT CHARSET=latin1; CREATE TABLE t1 (`geometry` geometry NOT NULL default '',SPATIAL KEY `gndx` (`geometry`)) DEFAULT CHARSET=latin1;
INSERT INTO t1 (geometry) VALUES INSERT INTO t1 (geometry) VALUES
(PolygonFromText('POLYGON((-18.6086111000 -66.9327777000, -18.6055555000 (PolygonFromText('POLYGON((-18.6086111000 -66.9327777000, -18.6055555000
@ -193,7 +187,7 @@ drop table t1;
CREATE TABLE t1 ( CREATE TABLE t1 (
c1 geometry NOT NULL default '', c1 geometry NOT NULL default '',
SPATIAL KEY i1 (c1) SPATIAL KEY i1 (c1)
) ENGINE=MyISAM DEFAULT CHARSET=latin1; ) DEFAULT CHARSET=latin1;
INSERT INTO t1 (c1) VALUES ( INSERT INTO t1 (c1) VALUES (
PolygonFromText('POLYGON((-18.6086111000 -66.9327777000, PolygonFromText('POLYGON((-18.6086111000 -66.9327777000,
-18.6055555000 -66.8158332999, -18.6055555000 -66.8158332999,
@ -207,7 +201,7 @@ DROP TABLE t1;
CREATE TABLE t1 ( CREATE TABLE t1 (
c1 geometry NOT NULL default '', c1 geometry NOT NULL default '',
SPATIAL KEY i1 (c1) SPATIAL KEY i1 (c1)
) ENGINE=MyISAM DEFAULT CHARSET=latin1; ) DEFAULT CHARSET=latin1;
INSERT INTO t1 (c1) VALUES ( INSERT INTO t1 (c1) VALUES (
PolygonFromText('POLYGON((-18.6086111000 -66.9327777000, PolygonFromText('POLYGON((-18.6086111000 -66.9327777000,
-18.6055555000 -66.8158332999, -18.6055555000 -66.8158332999,
@ -252,7 +246,7 @@ CREATE TABLE t1 (id bigint(12) unsigned NOT NULL auto_increment,
spatial_point point NOT NULL, spatial_point point NOT NULL,
PRIMARY KEY(id), PRIMARY KEY(id),
SPATIAL KEY (spatial_point) SPATIAL KEY (spatial_point)
)ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin; ) DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
# #
INSERT INTO t1 (c2, c1, c3, spatial_point) VALUES INSERT INTO t1 (c2, c1, c3, spatial_point) VALUES
('y', 's', 'j', GeomFromText('POINT(167 74)')), ('y', 's', 'j', GeomFromText('POINT(167 74)')),
@ -848,7 +842,7 @@ INSERT INTO t1(foo) VALUES ('');
DROP TABLE t1; DROP TABLE t1;
# #
# Bug #23578: Corruption prevents Optimize table from working properly with a # Bug #23578: Corruption prevents Optimize table from working properly with a
# spatial index # spatial index
# #
@ -931,12 +925,12 @@ DROP TABLE t1;
--echo # --echo #
--echo # Bug #57323/11764487: myisam corruption with insert ignore --echo # Bug #57323/11764487: myisam corruption with insert ignore
--echo # and invalid spatial data --echo # and invalid spatial data
--echo # --echo #
CREATE TABLE t1(a POINT NOT NULL, b GEOMETRY NOT NULL, CREATE TABLE t1(a POINT NOT NULL, b GEOMETRY NOT NULL,
SPATIAL KEY(a), SPATIAL KEY(b)) ENGINE=MyISAM; SPATIAL KEY(a), SPATIAL KEY(b));
INSERT INTO t1 VALUES(GEOMFROMTEXT("point (0 0)"), GEOMFROMTEXT("point (1 1)")); INSERT INTO t1 VALUES(GEOMFROMTEXT("point (0 0)"), GEOMFROMTEXT("point (1 1)"));
--error ER_CANT_CREATE_GEOMETRY_OBJECT --error ER_CANT_CREATE_GEOMETRY_OBJECT
INSERT IGNORE INTO t1 SET a=GEOMFROMTEXT("point (-6 0)"), b=GEOMFROMTEXT("error"); INSERT IGNORE INTO t1 SET a=GEOMFROMTEXT("point (-6 0)"), b=GEOMFROMTEXT("error");
@ -946,7 +940,7 @@ SELECT ASTEXT(a), ASTEXT(b) FROM t1;
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t1(a INT NOT NULL, b GEOMETRY NOT NULL, CREATE TABLE t1(a INT NOT NULL, b GEOMETRY NOT NULL,
KEY(a), SPATIAL KEY(b)) ENGINE=MyISAM; KEY(a), SPATIAL KEY(b));
INSERT INTO t1 VALUES(0, GEOMFROMTEXT("point (1 1)")); INSERT INTO t1 VALUES(0, GEOMFROMTEXT("point (1 1)"));
--error ER_CANT_CREATE_GEOMETRY_OBJECT --error ER_CANT_CREATE_GEOMETRY_OBJECT
INSERT IGNORE INTO t1 SET a=0, b=GEOMFROMTEXT("error"); INSERT IGNORE INTO t1 SET a=0, b=GEOMFROMTEXT("error");
@ -959,11 +953,11 @@ DROP TABLE t1;
# #
# MDEV-4521 MBRContains, MBRWithin no longer work with geometries of different type. # MDEV-4521 MBRContains, MBRWithin no longer work with geometries of different type.
# #
CREATE TABLE t1 ( CREATE TABLE t1 (
l LINESTRING NOT NULL, l LINESTRING NOT NULL,
SPATIAL KEY(l) SPATIAL KEY(l)
) ENGINE = myisam; );
INSERT INTO t1 VALUES(GeomFromText('LINESTRING(0 0, 1 1)')); INSERT INTO t1 VALUES(GeomFromText('LINESTRING(0 0, 1 1)'));
INSERT INTO t1 VALUES(GeomFromText('LINESTRING(1 1, 2 2)')); INSERT INTO t1 VALUES(GeomFromText('LINESTRING(1 1, 2 2)'));
@ -985,7 +979,7 @@ DROP TABLE t1;
--echo # --echo #
--echo # MDEV-8239 Reverse spatial operations OP(const, field) do not get optimized --echo # MDEV-8239 Reverse spatial operations OP(const, field) do not get optimized
--echo # --echo #
CREATE TABLE t1 (a GEOMETRY NOT NULL, SPATIAL KEY(a)) ENGINE=MyISAM; CREATE TABLE t1 (a GEOMETRY NOT NULL, SPATIAL KEY(a));
INSERT INTO t1 VALUES (Point(1,2)),(Point(1,3)); INSERT INTO t1 VALUES (Point(1,2)),(Point(1,3));
EXPLAIN SELECT * FROM t1 WHERE MBRINTERSECTS(a,Point(1,2)); EXPLAIN SELECT * FROM t1 WHERE MBRINTERSECTS(a,Point(1,2));
EXPLAIN SELECT * FROM t1 WHERE ST_INTERSECTS(a,Point(1,2)); EXPLAIN SELECT * FROM t1 WHERE ST_INTERSECTS(a,Point(1,2));
@ -996,7 +990,7 @@ DROP TABLE t1;
--echo # --echo #
--echo # MDEV-8610 "WHERE CONTAINS(indexed_geometry_column,1)" causes full table scan --echo # MDEV-8610 "WHERE CONTAINS(indexed_geometry_column,1)" causes full table scan
--echo # --echo #
CREATE TABLE t1 (a GEOMETRY NOT NULL, SPATIAL KEY(a)) ENGINE=MyISAM; CREATE TABLE t1 (a GEOMETRY NOT NULL, SPATIAL KEY(a));
INSERT INTO t1 VALUES (Point(1,1)),(Point(2,2)),(Point(3,3)); INSERT INTO t1 VALUES (Point(1,1)),(Point(2,2)),(Point(3,3));
EXPLAIN SELECT * FROM t1 WHERE CONTAINS(a,1); EXPLAIN SELECT * FROM t1 WHERE CONTAINS(a,1);
EXPLAIN SELECT * FROM t1 WHERE CONTAINS(a,1.0); EXPLAIN SELECT * FROM t1 WHERE CONTAINS(a,1.0);