Merge remote-tracking branch '5.5' into 10.0
This commit is contained in:
commit
042f763268
@ -221,21 +221,11 @@ NULL
|
|||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
# Start of 5.3 tests
|
# MDEV-14596 Crash in INTERVAL(ROW(..),ROW(..))
|
||||||
#
|
|
||||||
#
|
|
||||||
# MDEV-4512 Valgrind warnings in my_long10_to_str_8bit on INTERVAL and DATE_ADD with incorrect types
|
|
||||||
#
|
|
||||||
CREATE TABLE t1 (pk INT PRIMARY KEY);
|
|
||||||
INSERT INTO t1 VALUES (10),(11);
|
|
||||||
SELECT INTERVAL( 9, 1, DATE_ADD( pk, INTERVAL pk MINUTE_SECOND ), 9, 8, 3, 5, 2, 1 ) FROM t1;
|
|
||||||
INTERVAL( 9, 1, DATE_ADD( pk, INTERVAL pk MINUTE_SECOND ), 9, 8, 3, 5, 2, 1 )
|
|
||||||
8
|
|
||||||
8
|
|
||||||
Warnings:
|
|
||||||
Warning 1292 Incorrect datetime value: '10'
|
|
||||||
Warning 1292 Incorrect datetime value: '11'
|
|
||||||
DROP TABLE t1;
|
|
||||||
#
|
|
||||||
# End of 5.3 tests
|
|
||||||
#
|
#
|
||||||
|
SELECT INTERVAL(ROW(1,1),ROW(1,2));
|
||||||
|
ERROR 21000: Operand should contain 1 column(s)
|
||||||
|
SELECT INTERVAL(1,ROW(1,2));
|
||||||
|
ERROR 21000: Operand should contain 1 column(s)
|
||||||
|
SELECT INTERVAL(ROW(1,2),1);
|
||||||
|
ERROR 21000: Operand should contain 1 column(s)
|
||||||
|
@ -2558,6 +2558,31 @@ create table t2 (c1 int, c2 int);
|
|||||||
select t1.c1 as c1, t2.c2 as c1 from t1, t2 where t1.c1 < 20 and t2.c2 > 5 group by t1.c1, t2.c2 having t1.c1 < 3;
|
select t1.c1 as c1, t2.c2 as c1 from t1, t2 where t1.c1 < 20 and t2.c2 > 5 group by t1.c1, t2.c2 having t1.c1 < 3;
|
||||||
c1 c1
|
c1 c1
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
SET @old_sort_buff_size = @@sort_buffer_size;
|
||||||
|
SET @@sort_buffer_size=256*1024;
|
||||||
|
CREATE TABLE t1 (c INT) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1 VALUES
|
||||||
|
(2011),(1977),(1982),(2027),(2023),(NULL),(NULL),(2004),(1974),(2032),
|
||||||
|
(1993),(NULL),(1995),(2034),(NULL),(2009),(1900),(NULL),(2025),(1900),
|
||||||
|
(2033),(1900),(2012),(NULL),(2009),(1992),(1974),(1974),(2012),(2028),
|
||||||
|
(2007),(2012),(1900),(1983),(1900),(2010),(1987),(1994),(1981),(2032),
|
||||||
|
(2010),(1989),(2014),(1900),(1900),(1976),(1978),(2007),(2030),(NULL),
|
||||||
|
(2002),(1997),(1900),(NULL),(2000),(2027),(1975),(2026),(1975),(2026),
|
||||||
|
(2029),(1977),(1900),(1900),(2031),(1993),(1986),(2012),(1979),(2013),
|
||||||
|
(1994),(2014),(2025),(2006),(1971),(1974),(2021),(2011),(NULL),(1991),
|
||||||
|
(2001),(1977),(2023),(2012),(1900),(1978),(1998),(NULL),(1988),(1999),
|
||||||
|
(2017),(2008),(1976),(1900),(2005),(2030),(2023),(1900),(1978),(1990),
|
||||||
|
(1978),(1987),(2030),(1900),(2034),(2006),(2015),(2001),(2019),(2024),
|
||||||
|
(2030),(1989),(1997),(2007),(2023),(1994),(1971),(2011),(2011),(2015),
|
||||||
|
(1984),(1978),(1979),(1989),(2008),(2030);
|
||||||
|
SELECT ExtractValue('<a></a>','/a') AS f1, SPACE(c) AS f2 FROM t1 GROUP BY f1, f2 WITH ROLLUP;
|
||||||
|
f1 f2
|
||||||
|
NULL
|
||||||
|
|
||||||
|
NULL
|
||||||
|
NULL NULL
|
||||||
|
SET @@sort_buffer_size = @old_sort_buff_size;
|
||||||
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
# Bug #58782
|
# Bug #58782
|
||||||
# Missing rows with SELECT .. WHERE .. IN subquery
|
# Missing rows with SELECT .. WHERE .. IN subquery
|
||||||
|
@ -698,6 +698,21 @@ id column_1
|
|||||||
expected -- 1 row(s) returned not ER_BAD_FIELD_ERROR
|
expected -- 1 row(s) returned not ER_BAD_FIELD_ERROR
|
||||||
drop table t1;
|
drop table t1;
|
||||||
#
|
#
|
||||||
|
# mdev-14368: grouping query with alias for aggregate function in HAVING
|
||||||
|
# when sql_mode = 'ONLY_FULL_GROUP_BY'
|
||||||
|
set @save_sql_mode= @@sql_mode;
|
||||||
|
set sql_mode = 'ONLY_FULL_GROUP_BY';
|
||||||
|
create table t1(a int);
|
||||||
|
insert t1 values (4),(1),(2),(1), (3),(4);
|
||||||
|
SELECT a, COUNT(a) as ct FROM t1 GROUP BY a HAVING ct>0;
|
||||||
|
a ct
|
||||||
|
1 2
|
||||||
|
2 1
|
||||||
|
3 1
|
||||||
|
4 2
|
||||||
|
set sql_mode=@save_sql_mode;
|
||||||
|
drop table t1;
|
||||||
|
#
|
||||||
# Bug mdev-5160: two-way join with HAVING over the second table
|
# Bug mdev-5160: two-way join with HAVING over the second table
|
||||||
#
|
#
|
||||||
CREATE TABLE t1 (c1 varchar(6)) ENGINE=MyISAM;
|
CREATE TABLE t1 (c1 varchar(6)) ENGINE=MyISAM;
|
||||||
|
@ -2342,5 +2342,18 @@ Warnings:
|
|||||||
Note 1003 select `test`.`t1`.`col1` AS `col1`,`test`.`t2`.`col1` AS `col1`,`test`.`t2`.`col3` AS `col3` from `test`.`t1` left join `test`.`t2` on((`test`.`t2`.`col2` = `test`.`t1`.`col1`)) where (`f1`(`test`.`t2`.`col3`,0) = 0)
|
Note 1003 select `test`.`t1`.`col1` AS `col1`,`test`.`t2`.`col1` AS `col1`,`test`.`t2`.`col3` AS `col3` from `test`.`t1` left join `test`.`t2` on((`test`.`t2`.`col2` = `test`.`t1`.`col1`)) where (`f1`(`test`.`t2`.`col3`,0) = 0)
|
||||||
DROP FUNCTION f1;
|
DROP FUNCTION f1;
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
#
|
||||||
|
# MDEV-10397: Server crashes in key_copy with join_cache_level > 2 and join on BIT fields
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (b1 BIT NOT NULL);
|
||||||
|
INSERT INTO t1 VALUES (0),(1);
|
||||||
|
CREATE TABLE t2 (b2 BIT NOT NULL);
|
||||||
|
INSERT INTO t2 VALUES (0),(1);
|
||||||
|
SET SESSION JOIN_CACHE_LEVEL = 3;
|
||||||
|
SELECT t1.b1+'0' , t2.b2 + '0' FROM t1 LEFT JOIN t2 ON b1 = b2;
|
||||||
|
t1.b1+'0' t2.b2 + '0'
|
||||||
|
0 0
|
||||||
|
1 1
|
||||||
|
DROP TABLE t1, t2;
|
||||||
# end of 5.5 tests
|
# end of 5.5 tests
|
||||||
SET optimizer_switch=@save_optimizer_switch;
|
SET optimizer_switch=@save_optimizer_switch;
|
||||||
|
@ -2353,6 +2353,19 @@ Warnings:
|
|||||||
Note 1003 select `test`.`t1`.`col1` AS `col1`,`test`.`t2`.`col1` AS `col1`,`test`.`t2`.`col3` AS `col3` from `test`.`t1` left join `test`.`t2` on((`test`.`t2`.`col2` = `test`.`t1`.`col1`)) where (`f1`(`test`.`t2`.`col3`,0) = 0)
|
Note 1003 select `test`.`t1`.`col1` AS `col1`,`test`.`t2`.`col1` AS `col1`,`test`.`t2`.`col3` AS `col3` from `test`.`t1` left join `test`.`t2` on((`test`.`t2`.`col2` = `test`.`t1`.`col1`)) where (`f1`(`test`.`t2`.`col3`,0) = 0)
|
||||||
DROP FUNCTION f1;
|
DROP FUNCTION f1;
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
#
|
||||||
|
# MDEV-10397: Server crashes in key_copy with join_cache_level > 2 and join on BIT fields
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (b1 BIT NOT NULL);
|
||||||
|
INSERT INTO t1 VALUES (0),(1);
|
||||||
|
CREATE TABLE t2 (b2 BIT NOT NULL);
|
||||||
|
INSERT INTO t2 VALUES (0),(1);
|
||||||
|
SET SESSION JOIN_CACHE_LEVEL = 3;
|
||||||
|
SELECT t1.b1+'0' , t2.b2 + '0' FROM t1 LEFT JOIN t2 ON b1 = b2;
|
||||||
|
t1.b1+'0' t2.b2 + '0'
|
||||||
|
0 0
|
||||||
|
1 1
|
||||||
|
DROP TABLE t1, t2;
|
||||||
# end of 5.5 tests
|
# end of 5.5 tests
|
||||||
SET optimizer_switch=@save_optimizer_switch;
|
SET optimizer_switch=@save_optimizer_switch;
|
||||||
set join_cache_level=default;
|
set join_cache_level=default;
|
||||||
|
@ -5630,6 +5630,20 @@ PREPARE stmt FROM 'REPLACE INTO v2 SELECT a FROM t3';
|
|||||||
ERROR HY000: Can not insert into join view 'test.v2' without fields list
|
ERROR HY000: Can not insert into join view 'test.v2' without fields list
|
||||||
drop view v1,v2;
|
drop view v1,v2;
|
||||||
drop table t3;
|
drop table t3;
|
||||||
|
#
|
||||||
|
# MDEV-14619: VIEW and GROUP_CONCAT
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (str text);
|
||||||
|
INSERT INTO t1 VALUES ("My"),("SQL");
|
||||||
|
CREATE VIEW v1 AS SELECT GROUP_CONCAT(str SEPARATOR '\\') FROM t1;
|
||||||
|
SELECT * FROM v1;
|
||||||
|
GROUP_CONCAT(str SEPARATOR '\\')
|
||||||
|
My\SQL
|
||||||
|
SHOW CREATE VIEW v1;
|
||||||
|
View Create View character_set_client collation_connection
|
||||||
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select group_concat(`t1`.`str` separator '\\') AS `GROUP_CONCAT(str SEPARATOR '\\')` from `t1` latin1 latin1_swedish_ci
|
||||||
|
drop view v1;
|
||||||
|
drop table t1;
|
||||||
# -----------------------------------------------------------------
|
# -----------------------------------------------------------------
|
||||||
# -- End of 5.5 tests.
|
# -- End of 5.5 tests.
|
||||||
# -----------------------------------------------------------------
|
# -----------------------------------------------------------------
|
||||||
|
37
mysql-test/suite/parts/inc/part_alter_values.inc
Normal file
37
mysql-test/suite/parts/inc/part_alter_values.inc
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
--echo #
|
||||||
|
--echo # MDEV-14641 Incompatible key or row definition between the MariaDB .frm file and the information in the storage engine
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--eval CREATE TABLE t1 (i INT) ENGINE=$engine PARTITION BY LIST(i) (PARTITION p0 VALUES IN (1), PARTITION p1 VALUES IN (2));
|
||||||
|
ALTER TABLE t1 ROW_FORMAT=COMPRESSED;
|
||||||
|
ALTER TABLE t1 DROP PARTITION p1;
|
||||||
|
SELECT * FROM t1;
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-13788 Server crash when issuing bad SQL partition syntax
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--eval CREATE TABLE t1 (id int, d date) ENGINE=$engine PARTITION BY RANGE COLUMNS(d) (PARTITION p1 VALUES LESS THAN (MAXVALUE))
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
--error ER_PARTITION_REQUIRES_VALUES_ERROR
|
||||||
|
ALTER TABLE t1 REORGANIZE PARTITION p1 INTO
|
||||||
|
(
|
||||||
|
PARTITION p2, /* Notice no values */
|
||||||
|
PARTITION p3 VALUES LESS THAN (MAXVALUE)
|
||||||
|
);
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
|
||||||
|
--eval CREATE TABLE t1 (id int, d date) ENGINE=$engine PARTITION BY LIST (id) (PARTITION p1 VALUES IN (1,2,3))
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
--error ER_PARTITION_REQUIRES_VALUES_ERROR
|
||||||
|
ALTER TABLE t1 REORGANIZE PARTITION p1 INTO
|
||||||
|
(
|
||||||
|
PARTITION p2, /* Notice no values */
|
||||||
|
PARTITION p3 VALUES IN (4,5,6)
|
||||||
|
);
|
||||||
|
DROP TABLE t1;
|
49
mysql-test/suite/parts/r/partition_alter_innodb.result
Normal file
49
mysql-test/suite/parts/r/partition_alter_innodb.result
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
#
|
||||||
|
# MDEV-14641 Incompatible key or row definition between the MariaDB .frm file and the information in the storage engine
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (i INT) ENGINE=InnoDB PARTITION BY LIST(i) (PARTITION p0 VALUES IN (1), PARTITION p1 VALUES IN (2));;
|
||||||
|
ALTER TABLE t1 ROW_FORMAT=COMPRESSED;
|
||||||
|
Warnings:
|
||||||
|
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_format > Antelope.
|
||||||
|
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT.
|
||||||
|
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_format > Antelope.
|
||||||
|
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT.
|
||||||
|
ALTER TABLE t1 DROP PARTITION p1;
|
||||||
|
SELECT * FROM t1;
|
||||||
|
i
|
||||||
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# MDEV-13788 Server crash when issuing bad SQL partition syntax
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (id int, d date) ENGINE=InnoDB PARTITION BY RANGE COLUMNS(d) (PARTITION p1 VALUES LESS THAN (MAXVALUE));
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`id` int(11) DEFAULT NULL,
|
||||||
|
`d` date DEFAULT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
/*!50500 PARTITION BY RANGE COLUMNS(d)
|
||||||
|
(PARTITION p1 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB) */
|
||||||
|
ALTER TABLE t1 REORGANIZE PARTITION p1 INTO
|
||||||
|
(
|
||||||
|
PARTITION p2, /* Notice no values */
|
||||||
|
PARTITION p3 VALUES LESS THAN (MAXVALUE)
|
||||||
|
);
|
||||||
|
ERROR HY000: Syntax error: RANGE PARTITIONING requires definition of VALUES LESS THAN for each partition
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (id int, d date) ENGINE=InnoDB PARTITION BY LIST (id) (PARTITION p1 VALUES IN (1,2,3));
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`id` int(11) DEFAULT NULL,
|
||||||
|
`d` date DEFAULT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
/*!50100 PARTITION BY LIST (id)
|
||||||
|
(PARTITION p1 VALUES IN (1,2,3) ENGINE = InnoDB) */
|
||||||
|
ALTER TABLE t1 REORGANIZE PARTITION p1 INTO
|
||||||
|
(
|
||||||
|
PARTITION p2, /* Notice no values */
|
||||||
|
PARTITION p3 VALUES IN (4,5,6)
|
||||||
|
);
|
||||||
|
ERROR HY000: Syntax error: LIST PARTITIONING requires definition of VALUES IN for each partition
|
||||||
|
DROP TABLE t1;
|
@ -16,3 +16,47 @@ select * from t1;
|
|||||||
pk dt
|
pk dt
|
||||||
1 2017-09-28 15:12:00
|
1 2017-09-28 15:12:00
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
#
|
||||||
|
# MDEV-14641 Incompatible key or row definition between the MariaDB .frm file and the information in the storage engine
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (i INT) ENGINE=Aria PARTITION BY LIST(i) (PARTITION p0 VALUES IN (1), PARTITION p1 VALUES IN (2));;
|
||||||
|
ALTER TABLE t1 ROW_FORMAT=COMPRESSED;
|
||||||
|
ALTER TABLE t1 DROP PARTITION p1;
|
||||||
|
SELECT * FROM t1;
|
||||||
|
i
|
||||||
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# MDEV-13788 Server crash when issuing bad SQL partition syntax
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (id int, d date) ENGINE=Aria PARTITION BY RANGE COLUMNS(d) (PARTITION p1 VALUES LESS THAN (MAXVALUE));
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`id` int(11) DEFAULT NULL,
|
||||||
|
`d` date DEFAULT NULL
|
||||||
|
) ENGINE=Aria DEFAULT CHARSET=latin1
|
||||||
|
/*!50500 PARTITION BY RANGE COLUMNS(d)
|
||||||
|
(PARTITION p1 VALUES LESS THAN (MAXVALUE) ENGINE = Aria) */
|
||||||
|
ALTER TABLE t1 REORGANIZE PARTITION p1 INTO
|
||||||
|
(
|
||||||
|
PARTITION p2, /* Notice no values */
|
||||||
|
PARTITION p3 VALUES LESS THAN (MAXVALUE)
|
||||||
|
);
|
||||||
|
ERROR HY000: Syntax error: RANGE PARTITIONING requires definition of VALUES LESS THAN for each partition
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (id int, d date) ENGINE=Aria PARTITION BY LIST (id) (PARTITION p1 VALUES IN (1,2,3));
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`id` int(11) DEFAULT NULL,
|
||||||
|
`d` date DEFAULT NULL
|
||||||
|
) ENGINE=Aria DEFAULT CHARSET=latin1
|
||||||
|
/*!50100 PARTITION BY LIST (id)
|
||||||
|
(PARTITION p1 VALUES IN (1,2,3) ENGINE = Aria) */
|
||||||
|
ALTER TABLE t1 REORGANIZE PARTITION p1 INTO
|
||||||
|
(
|
||||||
|
PARTITION p2, /* Notice no values */
|
||||||
|
PARTITION p3 VALUES IN (4,5,6)
|
||||||
|
);
|
||||||
|
ERROR HY000: Syntax error: LIST PARTITIONING requires definition of VALUES IN for each partition
|
||||||
|
DROP TABLE t1;
|
||||||
|
@ -1,10 +1,44 @@
|
|||||||
CREATE TABLE t1 (i INT) ENGINE=MYISAM
|
#
|
||||||
PARTITION BY LIST(i) (
|
# MDEV-14641 Incompatible key or row definition between the MariaDB .frm file and the information in the storage engine
|
||||||
PARTITION p0 VALUES IN (1),
|
#
|
||||||
PARTITION p1 VALUES IN (2)
|
CREATE TABLE t1 (i INT) ENGINE=MyISAM PARTITION BY LIST(i) (PARTITION p0 VALUES IN (1), PARTITION p1 VALUES IN (2));;
|
||||||
);
|
|
||||||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED;
|
ALTER TABLE t1 ROW_FORMAT=COMPRESSED;
|
||||||
ALTER TABLE t1 DROP PARTITION p1;
|
ALTER TABLE t1 DROP PARTITION p1;
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
i
|
i
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
|
# MDEV-13788 Server crash when issuing bad SQL partition syntax
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (id int, d date) ENGINE=MyISAM PARTITION BY RANGE COLUMNS(d) (PARTITION p1 VALUES LESS THAN (MAXVALUE));
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`id` int(11) DEFAULT NULL,
|
||||||
|
`d` date DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
/*!50500 PARTITION BY RANGE COLUMNS(d)
|
||||||
|
(PARTITION p1 VALUES LESS THAN (MAXVALUE) ENGINE = MyISAM) */
|
||||||
|
ALTER TABLE t1 REORGANIZE PARTITION p1 INTO
|
||||||
|
(
|
||||||
|
PARTITION p2, /* Notice no values */
|
||||||
|
PARTITION p3 VALUES LESS THAN (MAXVALUE)
|
||||||
|
);
|
||||||
|
ERROR HY000: Syntax error: RANGE PARTITIONING requires definition of VALUES LESS THAN for each partition
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (id int, d date) ENGINE=MyISAM PARTITION BY LIST (id) (PARTITION p1 VALUES IN (1,2,3));
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`id` int(11) DEFAULT NULL,
|
||||||
|
`d` date DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
/*!50100 PARTITION BY LIST (id)
|
||||||
|
(PARTITION p1 VALUES IN (1,2,3) ENGINE = MyISAM) */
|
||||||
|
ALTER TABLE t1 REORGANIZE PARTITION p1 INTO
|
||||||
|
(
|
||||||
|
PARTITION p2, /* Notice no values */
|
||||||
|
PARTITION p3 VALUES IN (4,5,6)
|
||||||
|
);
|
||||||
|
ERROR HY000: Syntax error: LIST PARTITIONING requires definition of VALUES IN for each partition
|
||||||
|
DROP TABLE t1;
|
||||||
|
4
mysql-test/suite/parts/t/partition_alter_innodb.test
Normal file
4
mysql-test/suite/parts/t/partition_alter_innodb.test
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
--source include/have_innodb.inc
|
||||||
|
--source include/have_partition.inc
|
||||||
|
--let $engine=InnoDB
|
||||||
|
--source inc/part_alter_values.inc
|
@ -16,3 +16,6 @@ select * from t1;
|
|||||||
alter table t1 drop partition p20181231;
|
alter table t1 drop partition p20181231;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
--let $engine=Aria
|
||||||
|
--source inc/part_alter_values.inc
|
||||||
|
@ -1,17 +1,3 @@
|
|||||||
#
|
|
||||||
# MDEV-14641 Incompatible key or row definition between the MariaDB .frm file and the information in the storage engine
|
|
||||||
#
|
|
||||||
|
|
||||||
--source include/have_partition.inc
|
--source include/have_partition.inc
|
||||||
|
--let $engine=MyISAM
|
||||||
CREATE TABLE t1 (i INT) ENGINE=MYISAM
|
--source inc/part_alter_values.inc
|
||||||
PARTITION BY LIST(i) (
|
|
||||||
PARTITION p0 VALUES IN (1),
|
|
||||||
PARTITION p1 VALUES IN (2)
|
|
||||||
);
|
|
||||||
ALTER TABLE t1 ROW_FORMAT=COMPRESSED;
|
|
||||||
ALTER TABLE t1 DROP PARTITION p1;
|
|
||||||
SELECT * FROM t1;
|
|
||||||
|
|
||||||
# Cleanup
|
|
||||||
DROP TABLE t1;
|
|
||||||
|
@ -136,18 +136,14 @@ SELECT * FROM t1 WHERE FIND_IN_SET(NULL, NULL) IS UNKNOWN;
|
|||||||
|
|
||||||
--echo
|
--echo
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
--echo #
|
|
||||||
--echo # Start of 5.3 tests
|
|
||||||
--echo #
|
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # MDEV-4512 Valgrind warnings in my_long10_to_str_8bit on INTERVAL and DATE_ADD with incorrect types
|
--echo # MDEV-14596 Crash in INTERVAL(ROW(..),ROW(..))
|
||||||
--echo #
|
--echo #
|
||||||
CREATE TABLE t1 (pk INT PRIMARY KEY);
|
|
||||||
INSERT INTO t1 VALUES (10),(11);
|
|
||||||
SELECT INTERVAL( 9, 1, DATE_ADD( pk, INTERVAL pk MINUTE_SECOND ), 9, 8, 3, 5, 2, 1 ) FROM t1;
|
|
||||||
DROP TABLE t1;
|
|
||||||
|
|
||||||
--echo #
|
--error ER_OPERAND_COLUMNS
|
||||||
--echo # End of 5.3 tests
|
SELECT INTERVAL(ROW(1,1),ROW(1,2));
|
||||||
--echo #
|
--error ER_OPERAND_COLUMNS
|
||||||
|
SELECT INTERVAL(1,ROW(1,2));
|
||||||
|
--error ER_OPERAND_COLUMNS
|
||||||
|
SELECT INTERVAL(ROW(1,2),1);
|
||||||
|
@ -1740,6 +1740,32 @@ create table t2 (c1 int, c2 int);
|
|||||||
select t1.c1 as c1, t2.c2 as c1 from t1, t2 where t1.c1 < 20 and t2.c2 > 5 group by t1.c1, t2.c2 having t1.c1 < 3;
|
select t1.c1 as c1, t2.c2 as c1 from t1, t2 where t1.c1 < 20 and t2.c2 > 5 group by t1.c1, t2.c2 having t1.c1 < 3;
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
|
||||||
|
#
|
||||||
|
# MDEV-12350: Heap corruption, overrun buffer, ASAN errors, server crash in my_fill_8bit / filesort
|
||||||
|
#
|
||||||
|
|
||||||
|
SET @old_sort_buff_size = @@sort_buffer_size;
|
||||||
|
SET @@sort_buffer_size=256*1024;
|
||||||
|
CREATE TABLE t1 (c INT) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1 VALUES
|
||||||
|
(2011),(1977),(1982),(2027),(2023),(NULL),(NULL),(2004),(1974),(2032),
|
||||||
|
(1993),(NULL),(1995),(2034),(NULL),(2009),(1900),(NULL),(2025),(1900),
|
||||||
|
(2033),(1900),(2012),(NULL),(2009),(1992),(1974),(1974),(2012),(2028),
|
||||||
|
(2007),(2012),(1900),(1983),(1900),(2010),(1987),(1994),(1981),(2032),
|
||||||
|
(2010),(1989),(2014),(1900),(1900),(1976),(1978),(2007),(2030),(NULL),
|
||||||
|
(2002),(1997),(1900),(NULL),(2000),(2027),(1975),(2026),(1975),(2026),
|
||||||
|
(2029),(1977),(1900),(1900),(2031),(1993),(1986),(2012),(1979),(2013),
|
||||||
|
(1994),(2014),(2025),(2006),(1971),(1974),(2021),(2011),(NULL),(1991),
|
||||||
|
(2001),(1977),(2023),(2012),(1900),(1978),(1998),(NULL),(1988),(1999),
|
||||||
|
(2017),(2008),(1976),(1900),(2005),(2030),(2023),(1900),(1978),(1990),
|
||||||
|
(1978),(1987),(2030),(1900),(2034),(2006),(2015),(2001),(2019),(2024),
|
||||||
|
(2030),(1989),(1997),(2007),(2023),(1994),(1971),(2011),(2011),(2015),
|
||||||
|
(1984),(1978),(1979),(1989),(2008),(2030);
|
||||||
|
|
||||||
|
SELECT ExtractValue('<a></a>','/a') AS f1, SPACE(c) AS f2 FROM t1 GROUP BY f1, f2 WITH ROLLUP;
|
||||||
|
SET @@sort_buffer_size = @old_sort_buff_size;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# End of MariaDB 5.5 tests
|
# End of MariaDB 5.5 tests
|
||||||
#
|
#
|
||||||
|
@ -728,6 +728,23 @@ HAVING UPPER(`column_1`) LIKE '8%';
|
|||||||
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # mdev-14368: grouping query with alias for aggregate function in HAVING
|
||||||
|
--echo # when sql_mode = 'ONLY_FULL_GROUP_BY'
|
||||||
|
|
||||||
|
|
||||||
|
set @save_sql_mode= @@sql_mode;
|
||||||
|
set sql_mode = 'ONLY_FULL_GROUP_BY';
|
||||||
|
|
||||||
|
create table t1(a int);
|
||||||
|
insert t1 values (4),(1),(2),(1), (3),(4);
|
||||||
|
|
||||||
|
SELECT a, COUNT(a) as ct FROM t1 GROUP BY a HAVING ct>0;
|
||||||
|
|
||||||
|
set sql_mode=@save_sql_mode;
|
||||||
|
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Bug mdev-5160: two-way join with HAVING over the second table
|
--echo # Bug mdev-5160: two-way join with HAVING over the second table
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -1881,6 +1881,20 @@ DROP FUNCTION f1;
|
|||||||
|
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-10397: Server crashes in key_copy with join_cache_level > 2 and join on BIT fields
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (b1 BIT NOT NULL);
|
||||||
|
INSERT INTO t1 VALUES (0),(1);
|
||||||
|
|
||||||
|
CREATE TABLE t2 (b2 BIT NOT NULL);
|
||||||
|
INSERT INTO t2 VALUES (0),(1);
|
||||||
|
|
||||||
|
SET SESSION JOIN_CACHE_LEVEL = 3;
|
||||||
|
SELECT t1.b1+'0' , t2.b2 + '0' FROM t1 LEFT JOIN t2 ON b1 = b2;
|
||||||
|
DROP TABLE t1, t2;
|
||||||
|
|
||||||
--echo # end of 5.5 tests
|
--echo # end of 5.5 tests
|
||||||
|
|
||||||
SET optimizer_switch=@save_optimizer_switch;
|
SET optimizer_switch=@save_optimizer_switch;
|
||||||
|
@ -5579,6 +5579,18 @@ PREPARE stmt FROM 'REPLACE INTO v2 SELECT a FROM t3';
|
|||||||
drop view v1,v2;
|
drop view v1,v2;
|
||||||
drop table t3;
|
drop table t3;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-14619: VIEW and GROUP_CONCAT
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (str text);
|
||||||
|
INSERT INTO t1 VALUES ("My"),("SQL");
|
||||||
|
CREATE VIEW v1 AS SELECT GROUP_CONCAT(str SEPARATOR '\\') FROM t1;
|
||||||
|
SELECT * FROM v1;
|
||||||
|
SHOW CREATE VIEW v1;
|
||||||
|
drop view v1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
--echo # -----------------------------------------------------------------
|
--echo # -----------------------------------------------------------------
|
||||||
--echo # -- End of 5.5 tests.
|
--echo # -- End of 5.5 tests.
|
||||||
--echo # -----------------------------------------------------------------
|
--echo # -----------------------------------------------------------------
|
||||||
|
@ -874,8 +874,8 @@ if expr "${-}" : '.*x' > /dev/null
|
|||||||
then
|
then
|
||||||
:
|
:
|
||||||
else
|
else
|
||||||
exec 1>&-
|
exec 1>/dev/null
|
||||||
exec 2>&-
|
exec 2>/dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
while true
|
while true
|
||||||
|
@ -987,7 +987,8 @@ static void make_sortkey(register Sort_param *param,
|
|||||||
if (maybe_null)
|
if (maybe_null)
|
||||||
*to++=1;
|
*to++=1;
|
||||||
char *tmp_buffer= param->tmp_buffer ? param->tmp_buffer : (char*)to;
|
char *tmp_buffer= param->tmp_buffer ? param->tmp_buffer : (char*)to;
|
||||||
String tmp(tmp_buffer, param->sort_length, cs);
|
String tmp(tmp_buffer, param->tmp_buffer ? param->sort_length :
|
||||||
|
sort_field->length, cs);
|
||||||
String *res= item->str_result(&tmp);
|
String *res= item->str_result(&tmp);
|
||||||
if (!res)
|
if (!res)
|
||||||
{
|
{
|
||||||
|
@ -96,7 +96,7 @@ uchar **Filesort_buffer::alloc_sort_buffer(uint num_records, uint record_length)
|
|||||||
|
|
||||||
if (m_idx_array.is_null())
|
if (m_idx_array.is_null())
|
||||||
{
|
{
|
||||||
sort_buff_sz= num_records * (record_length + sizeof(uchar*));
|
sort_buff_sz= ((size_t)num_records) * (record_length + sizeof(uchar*));
|
||||||
set_if_bigger(sort_buff_sz, record_length * MERGEBUFF2);
|
set_if_bigger(sort_buff_sz, record_length * MERGEBUFF2);
|
||||||
uchar **sort_keys=
|
uchar **sort_keys=
|
||||||
(uchar**) my_malloc(sort_buff_sz, MYF(MY_THREAD_SPECIFIC));
|
(uchar**) my_malloc(sort_buff_sz, MYF(MY_THREAD_SPECIFIC));
|
||||||
|
@ -4733,7 +4733,8 @@ resolve_ref_in_select_and_group(THD *thd, Item_ident *ref, SELECT_LEX *select)
|
|||||||
|
|
||||||
if (thd->variables.sql_mode & MODE_ONLY_FULL_GROUP_BY &&
|
if (thd->variables.sql_mode & MODE_ONLY_FULL_GROUP_BY &&
|
||||||
select->having_fix_field &&
|
select->having_fix_field &&
|
||||||
select_ref != not_found_item && !group_by_ref)
|
select_ref != not_found_item && !group_by_ref &&
|
||||||
|
!ref->alias_name_used)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
Report the error if fields was found only in the SELECT item list and
|
Report the error if fields was found only in the SELECT item list and
|
||||||
|
@ -2065,6 +2065,19 @@ bool Item_func_opt_neg::eq(const Item *item, bool binary_cmp) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool Item_func_interval::fix_fields(THD *thd, Item **ref)
|
||||||
|
{
|
||||||
|
if (Item_int_func::fix_fields(thd, ref))
|
||||||
|
return true;
|
||||||
|
for (uint i= 0 ; i < row->cols(); i++)
|
||||||
|
{
|
||||||
|
if (row->element_index(i)->check_cols(1))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Item_func_interval::fix_length_and_dec()
|
void Item_func_interval::fix_length_and_dec()
|
||||||
{
|
{
|
||||||
uint rows= row->cols();
|
uint rows= row->cols();
|
||||||
|
@ -729,6 +729,7 @@ public:
|
|||||||
{
|
{
|
||||||
allowed_arg_cols= 0; // Fetch this value from first argument
|
allowed_arg_cols= 0; // Fetch this value from first argument
|
||||||
}
|
}
|
||||||
|
bool fix_fields(THD *, Item **);
|
||||||
longlong val_int();
|
longlong val_int();
|
||||||
void fix_length_and_dec();
|
void fix_length_and_dec();
|
||||||
const char *func_name() const { return "interval"; }
|
const char *func_name() const { return "interval"; }
|
||||||
|
@ -3670,7 +3670,7 @@ void Item_func_group_concat::print(String *str, enum_query_type query_type)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
str->append(STRING_WITH_LEN(" separator \'"));
|
str->append(STRING_WITH_LEN(" separator \'"));
|
||||||
str->append(*separator);
|
str->append_for_single_quote(separator->ptr(), separator->length());
|
||||||
str->append(STRING_WITH_LEN("\')"));
|
str->append(STRING_WITH_LEN("\')"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2747,6 +2747,24 @@ end:
|
|||||||
DBUG_RETURN(result);
|
DBUG_RETURN(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool partition_info::error_if_requires_values() const
|
||||||
|
{
|
||||||
|
switch (part_type) {
|
||||||
|
case NOT_A_PARTITION:
|
||||||
|
case HASH_PARTITION:
|
||||||
|
break;
|
||||||
|
case RANGE_PARTITION:
|
||||||
|
my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0), "RANGE", "LESS THAN");
|
||||||
|
return true;
|
||||||
|
case LIST_PARTITION:
|
||||||
|
my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0), "LIST", "IN");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Fix partition data from parser.
|
Fix partition data from parser.
|
||||||
|
|
||||||
@ -2836,6 +2854,8 @@ bool partition_info::fix_parser_data(THD *thd)
|
|||||||
part_elem= it++;
|
part_elem= it++;
|
||||||
List_iterator<part_elem_value> list_val_it(part_elem->list_val_list);
|
List_iterator<part_elem_value> list_val_it(part_elem->list_val_list);
|
||||||
num_elements= part_elem->list_val_list.elements;
|
num_elements= part_elem->list_val_list.elements;
|
||||||
|
if (!num_elements && error_if_requires_values())
|
||||||
|
DBUG_RETURN(true);
|
||||||
DBUG_ASSERT(part_type == RANGE_PARTITION ?
|
DBUG_ASSERT(part_type == RANGE_PARTITION ?
|
||||||
num_elements == 1U : TRUE);
|
num_elements == 1U : TRUE);
|
||||||
for (j= 0; j < num_elements; j++)
|
for (j= 0; j < num_elements; j++)
|
||||||
|
@ -368,6 +368,7 @@ public:
|
|||||||
bool *prune_needs_default_values,
|
bool *prune_needs_default_values,
|
||||||
MY_BITMAP *used_partitions);
|
MY_BITMAP *used_partitions);
|
||||||
bool has_same_partitioning(partition_info *new_part_info);
|
bool has_same_partitioning(partition_info *new_part_info);
|
||||||
|
bool error_if_requires_values() const;
|
||||||
private:
|
private:
|
||||||
static int list_part_cmp(const void* a, const void* b);
|
static int list_part_cmp(const void* a, const void* b);
|
||||||
bool set_up_default_partitions(handler *file, HA_CREATE_INFO *info,
|
bool set_up_default_partitions(handler *file, HA_CREATE_INFO *info,
|
||||||
|
@ -1735,29 +1735,29 @@ ER_WRONG_AUTO_KEY 42000 S1009
|
|||||||
ER_UNUSED_9
|
ER_UNUSED_9
|
||||||
eng "You should never see it"
|
eng "You should never see it"
|
||||||
ER_NORMAL_SHUTDOWN
|
ER_NORMAL_SHUTDOWN
|
||||||
cze "%s: normální ukončení\n"
|
cze "%s: norm-Bální ukončení"
|
||||||
dan "%s: Normal nedlukning\n"
|
dan "%s: Normal nedlukning"
|
||||||
nla "%s: Normaal afgesloten \n"
|
nla "%s: Normaal afgesloten"
|
||||||
eng "%s: Normal shutdown\n"
|
eng "%s: Normal shutdown"
|
||||||
est "%s: MariaDB lõpetas\n"
|
est "%s: MariaDB lõpetas"
|
||||||
fre "%s: Arrêt normal du serveur\n"
|
fre "%s: Arrêt normal du serveur"
|
||||||
ger "%s: Normal heruntergefahren\n"
|
ger "%s: Normal heruntergefahren"
|
||||||
greek "%s: Φυσιολογική διαδικασία shutdown\n"
|
greek "%s: Φυσιολογική διαδικασία shutdown"
|
||||||
hun "%s: Normal leallitas\n"
|
hun "%s: Normal leallitas"
|
||||||
ita "%s: Shutdown normale\n"
|
ita "%s: Shutdown normale"
|
||||||
jpn "%s: 通常シャットダウン\n"
|
jpn "%s: 通常シャットダウン"
|
||||||
kor "%s: 정상적인 shutdown\n"
|
kor "%s: 정상적인 shutdown"
|
||||||
nor "%s: Normal avslutning\n"
|
nor "%s: Normal avslutning"
|
||||||
norwegian-ny "%s: Normal nedkopling\n"
|
norwegian-ny "%s: Normal nedkopling"
|
||||||
pol "%s: Standardowe zakończenie działania\n"
|
pol "%s: Standardowe zakończenie działania"
|
||||||
por "%s: 'Shutdown' normal\n"
|
por "%s: 'Shutdown' normal"
|
||||||
rum "%s: Terminare normala\n"
|
rum "%s: Terminare normala"
|
||||||
rus "%s: Корректная остановка\n"
|
rus "%s: Корректная остановка"
|
||||||
serbian "%s: Normalno gašenje\n"
|
serbian "%s: Normalno gašenje"
|
||||||
slo "%s: normálne ukončenie\n"
|
slo "%s: normálne ukončenie"
|
||||||
spa "%s: Apagado normal\n"
|
spa "%s: Apagado normal"
|
||||||
swe "%s: Normal avslutning\n"
|
swe "%s: Normal avslutning"
|
||||||
ukr "%s: Нормальне завершення\n"
|
ukr "%s: Нормальне завершення"
|
||||||
ER_GOT_SIGNAL
|
ER_GOT_SIGNAL
|
||||||
cze "%s: přijat signal %d, končím\n"
|
cze "%s: přijat signal %d, končím\n"
|
||||||
dan "%s: Fangede signal %d. Afslutter!!\n"
|
dan "%s: Fangede signal %d. Afslutter!!\n"
|
||||||
|
@ -4886,16 +4886,11 @@ uint prep_alter_part_table(THD *thd, TABLE *table, Alter_info *alter_info,
|
|||||||
my_error(ER_PARTITION_WRONG_VALUES_ERROR, MYF(0),
|
my_error(ER_PARTITION_WRONG_VALUES_ERROR, MYF(0),
|
||||||
"LIST", "IN");
|
"LIST", "IN");
|
||||||
}
|
}
|
||||||
else if (tab_part_info->part_type == RANGE_PARTITION)
|
|
||||||
{
|
|
||||||
my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0),
|
|
||||||
"RANGE", "LESS THAN");
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DBUG_ASSERT(tab_part_info->part_type == LIST_PARTITION);
|
DBUG_ASSERT(tab_part_info->part_type == RANGE_PARTITION ||
|
||||||
my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0),
|
tab_part_info->part_type == LIST_PARTITION);
|
||||||
"LIST", "IN");
|
(void) tab_part_info->error_if_requires_values();
|
||||||
}
|
}
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
@ -5126,18 +5126,8 @@ opt_part_values:
|
|||||||
partition_info *part_info= lex->part_info;
|
partition_info *part_info= lex->part_info;
|
||||||
if (! lex->is_partition_management())
|
if (! lex->is_partition_management())
|
||||||
{
|
{
|
||||||
if (part_info->part_type == RANGE_PARTITION)
|
if (part_info->error_if_requires_values())
|
||||||
{
|
MYSQL_YYABORT;
|
||||||
my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0),
|
|
||||||
"RANGE", "LESS THAN");
|
|
||||||
MYSQL_YYABORT;
|
|
||||||
}
|
|
||||||
if (part_info->part_type == LIST_PARTITION)
|
|
||||||
{
|
|
||||||
my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0),
|
|
||||||
"LIST", "IN");
|
|
||||||
MYSQL_YYABORT;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
part_info->part_type= HASH_PARTITION;
|
part_info->part_type= HASH_PARTITION;
|
||||||
|
@ -6123,6 +6123,14 @@ void TABLE::create_key_part_by_field(KEY_PART_INFO *key_part_info,
|
|||||||
might be reused.
|
might be reused.
|
||||||
*/
|
*/
|
||||||
key_part_info->store_length= key_part_info->length;
|
key_part_info->store_length= key_part_info->length;
|
||||||
|
/*
|
||||||
|
For BIT fields null_bit is not set to 0 even if the field is defined
|
||||||
|
as NOT NULL, look at Field_bit::Field_bit
|
||||||
|
*/
|
||||||
|
if (!field->real_maybe_null())
|
||||||
|
{
|
||||||
|
key_part_info->null_bit= 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The total store length of the key part is the raw length of the field +
|
The total store length of the key part is the raw length of the field +
|
||||||
|
Loading…
x
Reference in New Issue
Block a user