mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Merge zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.0-maint
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-maint
This commit is contained in:
@ -258,3 +258,4 @@ t1 CREATE TABLE `t1` (
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1(a char character set latin1 default _cp1251 0xFF);
|
create table t1(a char character set latin1 default _cp1251 0xFF);
|
||||||
ERROR 42000: Invalid default value for 'a'
|
ERROR 42000: Invalid default value for 'a'
|
||||||
|
End of 4.1 tests
|
||||||
|
@ -187,7 +187,7 @@ select rpad(c1,3,'
|
|||||||
#select case c1 when '<27>' then '<27>' when '<27>' then '<27>' else 'c' end from t1;
|
#select case c1 when '<27>' then '<27>' when '<27>' then '<27>' else 'c' end from t1;
|
||||||
#select export_set(5,c1,'<27>'), export_set(5,'<27>',c1) from t1;
|
#select export_set(5,c1,'<27>'), export_set(5,'<27>',c1) from t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug 20695: problem with field default value's character set
|
# Bug 20695: problem with field default value's character set
|
||||||
#
|
#
|
||||||
@ -199,4 +199,4 @@ drop table t1;
|
|||||||
--error 1067
|
--error 1067
|
||||||
create table t1(a char character set latin1 default _cp1251 0xFF);
|
create table t1(a char character set latin1 default _cp1251 0xFF);
|
||||||
|
|
||||||
# End of 4.1 tests
|
--echo End of 4.1 tests
|
||||||
|
@ -2225,30 +2225,30 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Convert the default value character
|
Convert the default value from client character
|
||||||
set into the column character set if necessary.
|
set into the column character set if necessary.
|
||||||
*/
|
*/
|
||||||
if (sql_field->def &&
|
if (sql_field->def &&
|
||||||
savecs != sql_field->def->collation.collation &&
|
save_cs != sql_field->def->collation.collation &&
|
||||||
(sql_field->sql_type == FIELD_TYPE_VAR_STRING ||
|
(sql_field->sql_type == FIELD_TYPE_VAR_STRING ||
|
||||||
sql_field->sql_type == FIELD_TYPE_STRING ||
|
sql_field->sql_type == FIELD_TYPE_STRING ||
|
||||||
sql_field->sql_type == FIELD_TYPE_SET ||
|
sql_field->sql_type == FIELD_TYPE_SET ||
|
||||||
sql_field->sql_type == FIELD_TYPE_ENUM))
|
sql_field->sql_type == FIELD_TYPE_ENUM))
|
||||||
{
|
{
|
||||||
Item_arena backup_arena;
|
Query_arena backup_arena;
|
||||||
bool need_to_change_arena=
|
bool need_to_change_arena= !thd->stmt_arena->is_conventional();
|
||||||
!thd->current_arena->is_conventional_execution();
|
|
||||||
if (need_to_change_arena)
|
if (need_to_change_arena)
|
||||||
{
|
{
|
||||||
/* Assert that we don't do that at every PS execute */
|
/* Asser that we don't do that at every PS execute */
|
||||||
DBUG_ASSERT(thd->current_arena->is_first_stmt_execute());
|
DBUG_ASSERT(thd->stmt_arena->is_first_stmt_execute() ||
|
||||||
thd->set_n_backup_item_arena(thd->current_arena, &backup_arena);
|
thd->stmt_arena->is_first_sp_execute());
|
||||||
|
thd->set_n_backup_active_arena(thd->stmt_arena, &backup_arena);
|
||||||
}
|
}
|
||||||
|
|
||||||
sql_field->def= sql_field->def->safe_charset_converter(savecs);
|
sql_field->def= sql_field->def->safe_charset_converter(save_cs);
|
||||||
|
|
||||||
if (need_to_change_arena)
|
if (need_to_change_arena)
|
||||||
thd->restore_backup_item_arena(thd->current_arena, &backup_arena);
|
thd->restore_active_arena(thd->stmt_arena, &backup_arena);
|
||||||
|
|
||||||
if (sql_field->def == NULL)
|
if (sql_field->def == NULL)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user