auto-merge
This commit is contained in:
commit
9771919259
@ -558,6 +558,52 @@ f1 bug13575(f1)
|
|||||||
3 ccc
|
3 ccc
|
||||||
drop function bug13575|
|
drop function bug13575|
|
||||||
drop table t3|
|
drop table t3|
|
||||||
|
SELECT @@GLOBAL.storage_engine INTO @old_engine|
|
||||||
|
SET @@GLOBAL.storage_engine=InnoDB|
|
||||||
|
SET @@SESSION.storage_engine=InnoDB|
|
||||||
|
SHOW GLOBAL VARIABLES LIKE 'storage_engine'|
|
||||||
|
Variable_name Value
|
||||||
|
storage_engine InnoDB
|
||||||
|
SHOW SESSION VARIABLES LIKE 'storage_engine'|
|
||||||
|
Variable_name Value
|
||||||
|
storage_engine InnoDB
|
||||||
|
CREATE PROCEDURE bug11758414()
|
||||||
|
BEGIN
|
||||||
|
SET @@GLOBAL.storage_engine="MyISAM";
|
||||||
|
SET @@SESSION.storage_engine="MyISAM";
|
||||||
|
# show defaults at execution time / that setting them worked
|
||||||
|
SHOW GLOBAL VARIABLES LIKE 'storage_engine';
|
||||||
|
SHOW SESSION VARIABLES LIKE 'storage_engine';
|
||||||
|
CREATE TABLE t1 (id int);
|
||||||
|
CREATE TABLE t2 (id int) ENGINE=InnoDB;
|
||||||
|
# show we're heeding the default (at run-time, not parse-time!)
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
# show that we didn't break explicit override with ENGINE=...
|
||||||
|
SHOW CREATE TABLE t2;
|
||||||
|
END;
|
||||||
|
|
|
||||||
|
CALL bug11758414|
|
||||||
|
Variable_name Value
|
||||||
|
storage_engine MyISAM
|
||||||
|
Variable_name Value
|
||||||
|
storage_engine MyISAM
|
||||||
|
Table Create Table
|
||||||
|
t1 CREATE TABLE `t1` (
|
||||||
|
`id` int(11) DEFAULT NULL
|
||||||
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||||
|
Table Create Table
|
||||||
|
t2 CREATE TABLE `t2` (
|
||||||
|
`id` int(11) DEFAULT NULL
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||||
|
SHOW GLOBAL VARIABLES LIKE 'storage_engine'|
|
||||||
|
Variable_name Value
|
||||||
|
storage_engine MyISAM
|
||||||
|
SHOW SESSION VARIABLES LIKE 'storage_engine'|
|
||||||
|
Variable_name Value
|
||||||
|
storage_engine MyISAM
|
||||||
|
DROP PROCEDURE bug11758414|
|
||||||
|
DROP TABLE t1, t2|
|
||||||
|
SET @@GLOBAL.storage_engine=@old_engine|
|
||||||
#
|
#
|
||||||
# End of 5.1 tests
|
# End of 5.1 tests
|
||||||
#
|
#
|
||||||
|
@ -598,6 +598,39 @@ select distinct f1, bug13575(f1) from t3 order by f1|
|
|||||||
drop function bug13575|
|
drop function bug13575|
|
||||||
drop table t3|
|
drop table t3|
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#11758414: Default storage_engine not honored when set
|
||||||
|
# from within a stored procedure
|
||||||
|
#
|
||||||
|
SELECT @@GLOBAL.storage_engine INTO @old_engine|
|
||||||
|
SET @@GLOBAL.storage_engine=InnoDB|
|
||||||
|
SET @@SESSION.storage_engine=InnoDB|
|
||||||
|
# show defaults at define-time
|
||||||
|
SHOW GLOBAL VARIABLES LIKE 'storage_engine'|
|
||||||
|
SHOW SESSION VARIABLES LIKE 'storage_engine'|
|
||||||
|
CREATE PROCEDURE bug11758414()
|
||||||
|
BEGIN
|
||||||
|
SET @@GLOBAL.storage_engine="MyISAM";
|
||||||
|
SET @@SESSION.storage_engine="MyISAM";
|
||||||
|
# show defaults at execution time / that setting them worked
|
||||||
|
SHOW GLOBAL VARIABLES LIKE 'storage_engine';
|
||||||
|
SHOW SESSION VARIABLES LIKE 'storage_engine';
|
||||||
|
CREATE TABLE t1 (id int);
|
||||||
|
CREATE TABLE t2 (id int) ENGINE=InnoDB;
|
||||||
|
# show we're heeding the default (at run-time, not parse-time!)
|
||||||
|
SHOW CREATE TABLE t1;
|
||||||
|
# show that we didn't break explicit override with ENGINE=...
|
||||||
|
SHOW CREATE TABLE t2;
|
||||||
|
END;
|
||||||
|
|
|
||||||
|
CALL bug11758414|
|
||||||
|
# show that changing defaults within SP stuck
|
||||||
|
SHOW GLOBAL VARIABLES LIKE 'storage_engine'|
|
||||||
|
SHOW SESSION VARIABLES LIKE 'storage_engine'|
|
||||||
|
DROP PROCEDURE bug11758414|
|
||||||
|
DROP TABLE t1, t2|
|
||||||
|
SET @@GLOBAL.storage_engine=@old_engine|
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of 5.1 tests
|
--echo # End of 5.1 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -2347,6 +2347,12 @@ case SQLCOM_PREPARE:
|
|||||||
create_table->table_name))
|
create_table->table_name))
|
||||||
goto end_with_restore_list;
|
goto end_with_restore_list;
|
||||||
#endif
|
#endif
|
||||||
|
/*
|
||||||
|
If no engine type was given, work out the default now
|
||||||
|
rather than at parse-time.
|
||||||
|
*/
|
||||||
|
if (!(create_info.used_fields & HA_CREATE_USED_ENGINE))
|
||||||
|
create_info.db_type= ha_default_handlerton(thd);
|
||||||
/*
|
/*
|
||||||
If we are using SET CHARSET without DEFAULT, add an implicit
|
If we are using SET CHARSET without DEFAULT, add an implicit
|
||||||
DEFAULT to not confuse old users. (This may change).
|
DEFAULT to not confuse old users. (This may change).
|
||||||
|
@ -2038,7 +2038,6 @@ create:
|
|||||||
lex->change=NullS;
|
lex->change=NullS;
|
||||||
bzero((char*) &lex->create_info,sizeof(lex->create_info));
|
bzero((char*) &lex->create_info,sizeof(lex->create_info));
|
||||||
lex->create_info.options=$2 | $4;
|
lex->create_info.options=$2 | $4;
|
||||||
lex->create_info.db_type= ha_default_handlerton(thd);
|
|
||||||
lex->create_info.default_table_charset= NULL;
|
lex->create_info.default_table_charset= NULL;
|
||||||
lex->name.str= 0;
|
lex->name.str= 0;
|
||||||
lex->name.length= 0;
|
lex->name.length= 0;
|
||||||
@ -2048,7 +2047,8 @@ create:
|
|||||||
{
|
{
|
||||||
LEX *lex= YYTHD->lex;
|
LEX *lex= YYTHD->lex;
|
||||||
lex->current_select= &lex->select_lex;
|
lex->current_select= &lex->select_lex;
|
||||||
if (!lex->create_info.db_type)
|
if ((lex->create_info.used_fields & HA_CREATE_USED_ENGINE) &&
|
||||||
|
!lex->create_info.db_type)
|
||||||
{
|
{
|
||||||
lex->create_info.db_type= ha_default_handlerton(YYTHD);
|
lex->create_info.db_type= ha_default_handlerton(YYTHD);
|
||||||
push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
|
push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
|
||||||
@ -5036,7 +5036,6 @@ 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;
|
||||||
}
|
}
|
||||||
| MAX_ROWS opt_equal ulonglong_num
|
| MAX_ROWS opt_equal ulonglong_num
|
||||||
@ -6748,6 +6747,11 @@ alter_list_item:
|
|||||||
{
|
{
|
||||||
LEX *lex=Lex;
|
LEX *lex=Lex;
|
||||||
lex->alter_info.flags|= ALTER_OPTIONS;
|
lex->alter_info.flags|= ALTER_OPTIONS;
|
||||||
|
if ((lex->create_info.used_fields & HA_CREATE_USED_ENGINE) &&
|
||||||
|
!lex->create_info.db_type)
|
||||||
|
{
|
||||||
|
lex->create_info.used_fields&= ~HA_CREATE_USED_ENGINE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
| FORCE_SYM
|
| FORCE_SYM
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user