mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
auto merge
This commit is contained in:
@ -556,3 +556,49 @@ 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|
|
||||||
|
@ -593,6 +593,39 @@ 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|
|
||||||
|
|
||||||
#
|
#
|
||||||
# BUG#NNNN: New bug synopsis
|
# BUG#NNNN: New bug synopsis
|
||||||
#
|
#
|
||||||
|
@ -2616,6 +2616,12 @@ mysql_execute_command(THD *thd)
|
|||||||
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).
|
||||||
|
@ -1838,7 +1838,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;
|
||||||
@ -1847,7 +1846,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,
|
||||||
|
Reference in New Issue
Block a user