merge of bug#35765 into mysql-next-mr-bugfixing
This commit is contained in:
parent
ca59582149
commit
f52280cc42
@ -247,13 +247,10 @@ set global general_log='OFF';
|
|||||||
set global slow_query_log='OFF';
|
set global slow_query_log='OFF';
|
||||||
set @save_storage_engine= @@session.storage_engine;
|
set @save_storage_engine= @@session.storage_engine;
|
||||||
set storage_engine= MEMORY;
|
set storage_engine= MEMORY;
|
||||||
alter table mysql.slow_log engine=ndb;
|
alter table mysql.slow_log engine=NonExistentEngine;
|
||||||
ERROR HY000: This storage engine cannot be used for log tables"
|
Warnings:
|
||||||
alter table mysql.slow_log engine=innodb;
|
Warning 1286 Unknown table engine 'NonExistentEngine'
|
||||||
ERROR HY000: This storage engine cannot be used for log tables"
|
alter table mysql.slow_log engine=memory;
|
||||||
alter table mysql.slow_log engine=archive;
|
|
||||||
ERROR HY000: This storage engine cannot be used for log tables"
|
|
||||||
alter table mysql.slow_log engine=blackhole;
|
|
||||||
ERROR HY000: This storage engine cannot be used for log tables"
|
ERROR HY000: This storage engine cannot be used for log tables"
|
||||||
set storage_engine= @save_storage_engine;
|
set storage_engine= @save_storage_engine;
|
||||||
drop table mysql.slow_log;
|
drop table mysql.slow_log;
|
||||||
|
@ -81,6 +81,42 @@ INSERT INTO t1 VALUES (NULL);
|
|||||||
SELECT * FROM t1 WHERE pk < 0 ORDER BY pk;
|
SELECT * FROM t1 WHERE pk < 0 ORDER BY pk;
|
||||||
pk
|
pk
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
ENGINE=NonExistentEngine;
|
||||||
|
Warnings:
|
||||||
|
Warning 1286 Unknown table engine 'NonExistentEngine'
|
||||||
|
Warning 1266 Using storage engine MyISAM for table 't1'
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
ENGINE=NonExistentEngine
|
||||||
|
PARTITION BY HASH (a);
|
||||||
|
Warnings:
|
||||||
|
Warning 1286 Unknown table engine 'NonExistentEngine'
|
||||||
|
Warning 1266 Using storage engine MyISAM for table 't1'
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
ENGINE=Memory;
|
||||||
|
ALTER TABLE t1 ENGINE=NonExistentEngine;
|
||||||
|
Warnings:
|
||||||
|
Warning 1286 Unknown table engine 'NonExistentEngine'
|
||||||
|
ALTER TABLE t1
|
||||||
|
PARTITION BY HASH (a)
|
||||||
|
(PARTITION p0 ENGINE=Memory,
|
||||||
|
PARTITION p1 ENGINE=NonExistentEngine);
|
||||||
|
Warnings:
|
||||||
|
Warning 1286 Unknown table engine 'NonExistentEngine'
|
||||||
|
ALTER TABLE t1 ENGINE=NonExistentEngine;
|
||||||
|
Warnings:
|
||||||
|
Warning 1286 Unknown table engine 'NonExistentEngine'
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`a` int(11) DEFAULT NULL
|
||||||
|
) ENGINE=MEMORY DEFAULT CHARSET=latin1
|
||||||
|
/*!50100 PARTITION BY HASH (a)
|
||||||
|
(PARTITION p0 ENGINE = MEMORY,
|
||||||
|
PARTITION p1 ENGINE = MEMORY) */
|
||||||
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1 (a INT NOT NULL, KEY(a))
|
CREATE TABLE t1 (a INT NOT NULL, KEY(a))
|
||||||
PARTITION BY RANGE(a)
|
PARTITION BY RANGE(a)
|
||||||
(PARTITION p1 VALUES LESS THAN (200), PARTITION pmax VALUES LESS THAN MAXVALUE);
|
(PARTITION p1 VALUES LESS THAN (200), PARTITION pmax VALUES LESS THAN MAXVALUE);
|
||||||
|
@ -210,7 +210,8 @@ engine = innodb
|
|||||||
partition by list (a)
|
partition by list (a)
|
||||||
(partition p0 values in (0));
|
(partition p0 values in (0));
|
||||||
alter table t1 engine = x;
|
alter table t1 engine = x;
|
||||||
ERROR HY000: The mix of handlers in the partitions is not allowed in this version of MySQL
|
Warnings:
|
||||||
|
Warning 1286 Unknown table engine 'x'
|
||||||
show create table t1;
|
show create table t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
|
@ -258,14 +258,21 @@ set global slow_query_log='OFF';
|
|||||||
# check that alter table doesn't work for other engines
|
# check that alter table doesn't work for other engines
|
||||||
set @save_storage_engine= @@session.storage_engine;
|
set @save_storage_engine= @@session.storage_engine;
|
||||||
set storage_engine= MEMORY;
|
set storage_engine= MEMORY;
|
||||||
|
# After fixing bug#35765 the error behaivor changed:
|
||||||
|
# If compiled in/enabled ER_UNSUPORTED_LOG_ENGINE
|
||||||
|
# If not (i.e. not existant) it will show a warning
|
||||||
|
# and use the current one.
|
||||||
|
alter table mysql.slow_log engine=NonExistentEngine;
|
||||||
--error ER_UNSUPORTED_LOG_ENGINE
|
--error ER_UNSUPORTED_LOG_ENGINE
|
||||||
alter table mysql.slow_log engine=ndb;
|
alter table mysql.slow_log engine=memory;
|
||||||
--error ER_UNSUPORTED_LOG_ENGINE
|
#--error ER_UNSUPORTED_LOG_ENGINE
|
||||||
alter table mysql.slow_log engine=innodb;
|
#alter table mysql.slow_log engine=ndb;
|
||||||
--error ER_UNSUPORTED_LOG_ENGINE
|
#--error ER_UNSUPORTED_LOG_ENGINE
|
||||||
alter table mysql.slow_log engine=archive;
|
#alter table mysql.slow_log engine=innodb;
|
||||||
--error ER_UNSUPORTED_LOG_ENGINE
|
#--error ER_UNSUPORTED_LOG_ENGINE
|
||||||
alter table mysql.slow_log engine=blackhole;
|
#alter table mysql.slow_log engine=archive;
|
||||||
|
#--error ER_UNSUPORTED_LOG_ENGINE
|
||||||
|
#alter table mysql.slow_log engine=blackhole;
|
||||||
set storage_engine= @save_storage_engine;
|
set storage_engine= @save_storage_engine;
|
||||||
|
|
||||||
drop table mysql.slow_log;
|
drop table mysql.slow_log;
|
||||||
|
@ -97,6 +97,29 @@ INSERT INTO t1 VALUES (NULL);
|
|||||||
SELECT * FROM t1 WHERE pk < 0 ORDER BY pk;
|
SELECT * FROM t1 WHERE pk < 0 ORDER BY pk;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#35765: ALTER TABLE produces wrong error when non-existent storage engine
|
||||||
|
# used
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
ENGINE=NonExistentEngine;
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
ENGINE=NonExistentEngine
|
||||||
|
PARTITION BY HASH (a);
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a INT)
|
||||||
|
ENGINE=Memory;
|
||||||
|
ALTER TABLE t1 ENGINE=NonExistentEngine;
|
||||||
|
# OK to only specify one partitions engine, since it is already assigned at
|
||||||
|
# table level (after create, it is specified on all levels and all parts).
|
||||||
|
ALTER TABLE t1
|
||||||
|
PARTITION BY HASH (a)
|
||||||
|
(PARTITION p0 ENGINE=Memory,
|
||||||
|
PARTITION p1 ENGINE=NonExistentEngine);
|
||||||
|
ALTER TABLE t1 ENGINE=NonExistentEngine;
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#40494: Crash MYSQL server crashes on range access with partitioning
|
# Bug#40494: Crash MYSQL server crashes on range access with partitioning
|
||||||
# and order by
|
# and order by
|
||||||
|
@ -250,7 +250,6 @@ engine = innodb
|
|||||||
partition by list (a)
|
partition by list (a)
|
||||||
(partition p0 values in (0));
|
(partition p0 values in (0));
|
||||||
|
|
||||||
-- error ER_MIX_HANDLER_ERROR
|
|
||||||
alter table t1 engine = x;
|
alter table t1 engine = x;
|
||||||
show create table t1;
|
show create table t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@ -411,8 +411,8 @@ bool net_send_error_packet(THD *thd, uint sql_errno, const char *err,
|
|||||||
thd->variables.character_set_results,
|
thd->variables.character_set_results,
|
||||||
err, strlen(err),
|
err, strlen(err),
|
||||||
system_charset_info, &error);
|
system_charset_info, &error);
|
||||||
length= (uint) (strmake((char*) pos, (char*)converted_err, MYSQL_ERRMSG_SIZE) -
|
length= (uint) (strmake((char*) pos, (char*)converted_err,
|
||||||
(char*) buff);
|
MYSQL_ERRMSG_SIZE - 1) - (char*) buff);
|
||||||
err= (char*) buff;
|
err= (char*) buff;
|
||||||
DBUG_RETURN(net_write_command(net,(uchar) 255, (uchar*) "", 0, (uchar*) err,
|
DBUG_RETURN(net_write_command(net,(uchar) 255, (uchar*) "", 0, (uchar*) err,
|
||||||
length));
|
length));
|
||||||
|
@ -4820,6 +4820,7 @@ create_table_option:
|
|||||||
ENGINE_SYM opt_equal storage_engines
|
ENGINE_SYM opt_equal storage_engines
|
||||||
{
|
{
|
||||||
Lex->create_info.db_type= $3;
|
Lex->create_info.db_type= $3;
|
||||||
|
if ($3)
|
||||||
Lex->create_info.used_fields|= HA_CREATE_USED_ENGINE;
|
Lex->create_info.used_fields|= HA_CREATE_USED_ENGINE;
|
||||||
}
|
}
|
||||||
| TYPE_SYM opt_equal storage_engines
|
| TYPE_SYM opt_equal storage_engines
|
||||||
|
Loading…
x
Reference in New Issue
Block a user