mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 13:02:28 +01:00
09d54b37f5
FULLTEXT indexes do not permit index first lookups. By calling: ha_index_first() with a garbage parameter, random data gets overwritten that causes the table->field array to be corrupted. Subsequently, when the field array is accessed, a segfault occurs. By not allowing index statistics for FULLTEXT indexes, the problem is resolved.
33 lines
1.7 KiB
Text
33 lines
1.7 KiB
Text
CREATE TABLE t1 (a longtext, FULLTEXT KEY (`a`)) ENGINE=InnoDB;
|
|
INSERT INTO t1 VALUES (unhex('3E0D0A4141414142334E7A6143317963324541414141424977414141674541726D'));
|
|
ANALYZE TABLE t1 PERSISTENT FOR ALL;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
SELECT * FROM mysql.index_stats WHERE index_name='a' AND table_name='t1';
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 a 1 NULL
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1 (a longtext, FULLTEXT KEY (`a`)) ENGINE=MyISAM;
|
|
INSERT INTO t1 VALUES (unhex('3E0D0A4141414142334E7A6143317963324541414141424977414141674541726D'));
|
|
ANALYZE TABLE t1 PERSISTENT FOR ALL;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 analyze status Engine-independent statistics collected
|
|
test.t1 analyze status OK
|
|
SELECT * FROM mysql.index_stats WHERE index_name='a' AND table_name='t1';
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test t1 a 1 NULL
|
|
DROP TABLE t1;
|
|
CREATE TABLE geom (g GEOMETRY NOT NULL, SPATIAL INDEX(g)) ENGINE=MyISAM;
|
|
INSERT INTO geom VALUES
|
|
(MultiPolygonFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
|
|
(MPolyFromText('MULTIPOLYGON(((28 26,28 0,84 0,84 42,28 26),(52 18,66 23,73 9,48 6,52 18)),((59 18,67 18,67 13,59 13,59 18)))')),
|
|
(MPolyFromWKB(AsWKB(MultiPolygon(Polygon(LineString(Point(0, 3), Point(3, 3), Point(3, 0), Point(0, 3)))))));
|
|
ANALYZE TABLE geom PERSISTENT FOR ALL;
|
|
Table Op Msg_type Msg_text
|
|
test.geom analyze status Engine-independent statistics collected
|
|
test.geom analyze status OK
|
|
SELECT * FROM mysql.index_stats WHERE index_name='g' AND table_name='geom';
|
|
db_name table_name index_name prefix_arity avg_frequency
|
|
test geom g 1 NULL
|
|
DROP TABLE geom;
|