mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Auto-merge from mysql-next-mr-bugfixing.
This commit is contained in:
@@ -1354,3 +1354,15 @@ DROP i,
|
||||
ADD i INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
AUTO_INCREMENT = 1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a CHAR(1), PRIMARY KEY (a(255)));
|
||||
ERROR HY000: Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys
|
||||
CREATE TABLE t1 (a CHAR(1));
|
||||
ALTER TABLE t1 ADD PRIMARY KEY (a(20));
|
||||
ERROR HY000: Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys
|
||||
ALTER TABLE t1 ADD KEY (a(20));
|
||||
ERROR HY000: Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys
|
||||
CREATE UNIQUE INDEX i1 ON t1 (a(20));
|
||||
ERROR HY000: Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys
|
||||
CREATE INDEX i2 ON t1 (a(20));
|
||||
ERROR HY000: Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys
|
||||
DROP TABLE t1;
|
||||
|
||||
@@ -1058,3 +1058,33 @@ SELECT Polygon(12345123,'');
|
||||
Polygon(12345123,'')
|
||||
NULL
|
||||
End of 5.1 tests
|
||||
CREATE TABLE t1(
|
||||
col0 BINARY NOT NULL,
|
||||
col2 TIMESTAMP,
|
||||
SPATIAL INDEX i1 (col0)
|
||||
) ENGINE=MyISAM;
|
||||
ERROR 42000: A SPATIAL index may only contain a geometrical type column
|
||||
CREATE TABLE t1 (
|
||||
col0 BINARY NOT NULL,
|
||||
col2 TIMESTAMP
|
||||
) ENGINE=MyISAM;
|
||||
CREATE SPATIAL INDEX idx0 ON t1(col0);
|
||||
ERROR 42000: A SPATIAL index may only contain a geometrical type column
|
||||
ALTER TABLE t1 ADD SPATIAL INDEX i1 (col0);
|
||||
ERROR 42000: A SPATIAL index may only contain a geometrical type column
|
||||
CREATE TABLE t2 (
|
||||
col0 INTEGER NOT NULL,
|
||||
col1 POINT,
|
||||
col2 POINT
|
||||
);
|
||||
CREATE SPATIAL INDEX idx0 ON t2 (col1, col2);
|
||||
ERROR HY000: Incorrect arguments to SPATIAL INDEX
|
||||
CREATE TABLE t3 (
|
||||
col0 INTEGER NOT NULL,
|
||||
col1 POINT,
|
||||
col2 LINESTRING,
|
||||
SPATIAL INDEX i1 (col1, col2)
|
||||
);
|
||||
ERROR HY000: Incorrect arguments to SPATIAL INDEX
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
|
||||
@@ -2686,7 +2686,7 @@ a c COUNT(DISTINCT c, a, b)
|
||||
1 1 1
|
||||
1 1 1
|
||||
1 1 1
|
||||
2 1 1
|
||||
1 1 1
|
||||
2 1 1
|
||||
2 1 1
|
||||
2 1 1
|
||||
@@ -2714,7 +2714,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range NULL a 10 NULL 9 Using index for group-by
|
||||
SELECT a, COUNT(DISTINCT b), SUM(DISTINCT b) FROM t2 GROUP BY a;
|
||||
a COUNT(DISTINCT b) SUM(DISTINCT b)
|
||||
2 8 36
|
||||
1 8 36
|
||||
2 8 36
|
||||
EXPLAIN SELECT COUNT(DISTINCT b), SUM(DISTINCT b) FROM t2 GROUP BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
@@ -2761,7 +2761,7 @@ SELECT 42 * (a + c + COUNT(DISTINCT c, a, b)) FROM t2 GROUP BY a, b, c;
|
||||
126
|
||||
126
|
||||
126
|
||||
168
|
||||
126
|
||||
168
|
||||
168
|
||||
168
|
||||
@@ -2779,3 +2779,24 @@ SELECT (SUM(DISTINCT a) + MAX(b)) FROM t2 GROUP BY a;
|
||||
10
|
||||
DROP TABLE t1,t2;
|
||||
# end of WL#3220 tests
|
||||
#
|
||||
# Bug#50539: Wrong result when loose index scan is used for an aggregate
|
||||
# function with distinct
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
f1 int(11) NOT NULL DEFAULT '0',
|
||||
f2 char(1) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (f1,f2)
|
||||
) ;
|
||||
insert into t1 values(1,'A'),(1 , 'B'), (1, 'C'), (2, 'A'),
|
||||
(3, 'A'), (3, 'B'), (3, 'C'), (3, 'D');
|
||||
SELECT f1, COUNT(DISTINCT f2) FROM t1 GROUP BY f1;
|
||||
f1 COUNT(DISTINCT f2)
|
||||
1 3
|
||||
2 1
|
||||
3 4
|
||||
explain SELECT f1, COUNT(DISTINCT f2) FROM t1 GROUP BY f1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range NULL PRIMARY 5 NULL 9 Using index for group-by (scanning)
|
||||
drop table t1;
|
||||
# End of test#50539.
|
||||
|
||||
@@ -1089,3 +1089,31 @@ ALTER TABLE t1
|
||||
ADD i INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
AUTO_INCREMENT = 1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
#
|
||||
# Bug#50542 5.5.x doesn't check length of key prefixes:
|
||||
# corruption and crash results
|
||||
#
|
||||
# This case is related to Bug#31031 (above)
|
||||
# A statement where the index key is larger/wider than
|
||||
# the column type, should cause an error
|
||||
#
|
||||
--error ER_WRONG_SUB_KEY
|
||||
CREATE TABLE t1 (a CHAR(1), PRIMARY KEY (a(255)));
|
||||
|
||||
# Test other variants of creating indices
|
||||
CREATE TABLE t1 (a CHAR(1));
|
||||
# ALTER TABLE
|
||||
--error ER_WRONG_SUB_KEY
|
||||
ALTER TABLE t1 ADD PRIMARY KEY (a(20));
|
||||
--error ER_WRONG_SUB_KEY
|
||||
ALTER TABLE t1 ADD KEY (a(20));
|
||||
# CREATE INDEX
|
||||
--error ER_WRONG_SUB_KEY
|
||||
CREATE UNIQUE INDEX i1 ON t1 (a(20));
|
||||
--error ER_WRONG_SUB_KEY
|
||||
CREATE INDEX i2 ON t1 (a(20));
|
||||
# cleanup
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
@@ -726,3 +726,48 @@ SELECT Polygon(1234512,'');
|
||||
SELECT Polygon(12345123,'');
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
||||
#
|
||||
# Bug #50574 5.5.x allows spatial indexes on non-spatial
|
||||
# columns, causing crashes!
|
||||
#
|
||||
--error ER_SPATIAL_MUST_HAVE_GEOM_COL
|
||||
CREATE TABLE t1(
|
||||
col0 BINARY NOT NULL,
|
||||
col2 TIMESTAMP,
|
||||
SPATIAL INDEX i1 (col0)
|
||||
) ENGINE=MyISAM;
|
||||
|
||||
# Test other ways to add indices
|
||||
CREATE TABLE t1 (
|
||||
col0 BINARY NOT NULL,
|
||||
col2 TIMESTAMP
|
||||
) ENGINE=MyISAM;
|
||||
|
||||
--error ER_SPATIAL_MUST_HAVE_GEOM_COL
|
||||
CREATE SPATIAL INDEX idx0 ON t1(col0);
|
||||
|
||||
--error ER_SPATIAL_MUST_HAVE_GEOM_COL
|
||||
ALTER TABLE t1 ADD SPATIAL INDEX i1 (col0);
|
||||
|
||||
CREATE TABLE t2 (
|
||||
col0 INTEGER NOT NULL,
|
||||
col1 POINT,
|
||||
col2 POINT
|
||||
);
|
||||
|
||||
--error ER_WRONG_ARGUMENTS
|
||||
CREATE SPATIAL INDEX idx0 ON t2 (col1, col2);
|
||||
|
||||
--error ER_WRONG_ARGUMENTS
|
||||
CREATE TABLE t3 (
|
||||
col0 INTEGER NOT NULL,
|
||||
col1 POINT,
|
||||
col2 LINESTRING,
|
||||
SPATIAL INDEX i1 (col1, col2)
|
||||
);
|
||||
|
||||
# cleanup
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
|
||||
|
||||
@@ -1166,3 +1166,22 @@ SELECT (SUM(DISTINCT a) + MAX(b)) FROM t2 GROUP BY a;
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
--echo # end of WL#3220 tests
|
||||
|
||||
--echo #
|
||||
--echo # Bug#50539: Wrong result when loose index scan is used for an aggregate
|
||||
--echo # function with distinct
|
||||
--echo #
|
||||
CREATE TABLE t1 (
|
||||
f1 int(11) NOT NULL DEFAULT '0',
|
||||
f2 char(1) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (f1,f2)
|
||||
) ;
|
||||
insert into t1 values(1,'A'),(1 , 'B'), (1, 'C'), (2, 'A'),
|
||||
(3, 'A'), (3, 'B'), (3, 'C'), (3, 'D');
|
||||
|
||||
SELECT f1, COUNT(DISTINCT f2) FROM t1 GROUP BY f1;
|
||||
explain SELECT f1, COUNT(DISTINCT f2) FROM t1 GROUP BY f1;
|
||||
|
||||
drop table t1;
|
||||
--echo # End of test#50539.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user