mirror of
https://github.com/MariaDB/server.git
synced 2025-11-09 11:41:36 +03:00
This essentially reverts commit 4e89ec6692
and only disables InnoDB persistent statistics for tests where it is
desirable. By design, InnoDB persistent statistics will not be updated
except by ANALYZE TABLE or by STATS_AUTO_RECALC.
The internal transactions that update persistent InnoDB statistics
in background tasks (with innodb_stats_auto_recalc=ON) may cause
nondeterministic query plans or interfere with some tests that deal
with other InnoDB internals, such as the purge of transaction history.
64 lines
1.9 KiB
Plaintext
64 lines
1.9 KiB
Plaintext
SET default_storage_engine=InnoDB;
|
|
DROP TABLE IF EXISTS t1;
|
|
CREATE TABLE t1 (
|
|
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
g GEOMETRY NOT NULL,
|
|
KEY gis_key(g(5))
|
|
) ENGINE=InnoDB;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`fid` int(11) NOT NULL AUTO_INCREMENT,
|
|
`g` geometry NOT NULL,
|
|
PRIMARY KEY (`fid`),
|
|
KEY `gis_key` (`g`(5))
|
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
|
SELECT count(*) FROM t1;
|
|
count(*)
|
|
150
|
|
ANALYZE TABLE t1;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
EXPLAIN SELECT fid, ST_AsText(g) FROM t1 WHERE ST_Within(g, ST_GeomFromText('Polygon((140 140,160 140,160 160,140 140))'));
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ALL gis_key NULL NULL NULL # Using where
|
|
SELECT fid, ST_AsText(g) FROM t1 WHERE ST_Within(g, ST_GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))')) ORDER BY fid;
|
|
fid ST_AsText(g)
|
|
1 LINESTRING(150 150,150 150)
|
|
2 LINESTRING(149 149,151 151)
|
|
3 LINESTRING(148 148,152 152)
|
|
4 LINESTRING(147 147,153 153)
|
|
5 LINESTRING(146 146,154 154)
|
|
6 LINESTRING(145 145,155 155)
|
|
7 LINESTRING(144 144,156 156)
|
|
8 LINESTRING(143 143,157 157)
|
|
9 LINESTRING(142 142,158 158)
|
|
10 LINESTRING(141 141,159 159)
|
|
11 LINESTRING(140 140,160 160)
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1 (
|
|
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|
g GEOMETRY NOT NULL
|
|
) ENGINE=InnoDB;
|
|
ALTER TABLE t1 ADD SPATIAL KEY(g);
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`fid` int(11) NOT NULL AUTO_INCREMENT,
|
|
`g` geometry NOT NULL,
|
|
PRIMARY KEY (`fid`),
|
|
SPATIAL KEY `g` (`g`)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=latin1
|
|
SELECT count(*) FROM t1;
|
|
count(*)
|
|
100
|
|
SELECT fid, ST_AsText(g) FROM t1 WHERE ST_Within(g,
|
|
ST_GeomFromText('Polygon((40 40,60 40,60 60,40 40))')) ORDER BY fid;
|
|
fid ST_AsText(g)
|
|
45 LINESTRING(51 51,60 60)
|
|
46 LINESTRING(51 41,60 50)
|
|
56 LINESTRING(41 41,50 50)
|
|
DROP TABLE t1;
|
|
End of 5.5 tests.
|