Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into magare.gmz:/home/kgeorge/mysql/autopush/B27099-5.1-opt
This commit is contained in:
commit
5f5b7cc311
@ -1742,25 +1742,13 @@ NULL
|
|||||||
Warnings:
|
Warnings:
|
||||||
Error 1300 Invalid utf8 character string: 'FF'
|
Error 1300 Invalid utf8 character string: 'FF'
|
||||||
select hex(_utf8 0x616263FF);
|
select hex(_utf8 0x616263FF);
|
||||||
hex(_utf8 0x616263FF)
|
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||||
NULL
|
|
||||||
Warnings:
|
|
||||||
Error 1300 Invalid utf8 character string: 'FF'
|
|
||||||
select hex(_utf8 X'616263FF');
|
select hex(_utf8 X'616263FF');
|
||||||
hex(_utf8 X'616263FF')
|
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||||
NULL
|
|
||||||
Warnings:
|
|
||||||
Error 1300 Invalid utf8 character string: 'FF'
|
|
||||||
select hex(_utf8 B'001111111111');
|
select hex(_utf8 B'001111111111');
|
||||||
hex(_utf8 B'001111111111')
|
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||||
NULL
|
|
||||||
Warnings:
|
|
||||||
Error 1300 Invalid utf8 character string: 'FF'
|
|
||||||
select (_utf8 X'616263FF');
|
select (_utf8 X'616263FF');
|
||||||
(_utf8 X'616263FF')
|
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||||
NULL
|
|
||||||
Warnings:
|
|
||||||
Error 1300 Invalid utf8 character string: 'FF'
|
|
||||||
set sql_mode=default;
|
set sql_mode=default;
|
||||||
select hex(char(0xFF using utf8));
|
select hex(char(0xFF using utf8));
|
||||||
hex(char(0xFF using utf8))
|
hex(char(0xFF using utf8))
|
||||||
@ -1773,22 +1761,10 @@ hex(convert(0xFF using utf8))
|
|||||||
Warnings:
|
Warnings:
|
||||||
Warning 1300 Invalid utf8 character string: 'FF'
|
Warning 1300 Invalid utf8 character string: 'FF'
|
||||||
select hex(_utf8 0x616263FF);
|
select hex(_utf8 0x616263FF);
|
||||||
hex(_utf8 0x616263FF)
|
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||||
616263
|
|
||||||
Warnings:
|
|
||||||
Warning 1300 Invalid utf8 character string: 'FF'
|
|
||||||
select hex(_utf8 X'616263FF');
|
select hex(_utf8 X'616263FF');
|
||||||
hex(_utf8 X'616263FF')
|
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||||
616263
|
|
||||||
Warnings:
|
|
||||||
Warning 1300 Invalid utf8 character string: 'FF'
|
|
||||||
select hex(_utf8 B'001111111111');
|
select hex(_utf8 B'001111111111');
|
||||||
hex(_utf8 B'001111111111')
|
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||||
03
|
|
||||||
Warnings:
|
|
||||||
Warning 1300 Invalid utf8 character string: 'FF'
|
|
||||||
select (_utf8 X'616263FF');
|
select (_utf8 X'616263FF');
|
||||||
(_utf8 X'616263FF')
|
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||||
abc
|
|
||||||
Warnings:
|
|
||||||
Warning 1300 Invalid utf8 character string: 'FF'
|
|
||||||
|
@ -1560,4 +1560,8 @@ SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA
|
|||||||
WHERE SCHEMA_NAME ='information_schema';
|
WHERE SCHEMA_NAME ='information_schema';
|
||||||
SCHEMA_NAME
|
SCHEMA_NAME
|
||||||
information_schema
|
information_schema
|
||||||
|
SELECT TABLE_COLLATION FROM INFORMATION_SCHEMA.TABLES
|
||||||
|
WHERE TABLE_SCHEMA='mysql' and TABLE_NAME= 'db';
|
||||||
|
TABLE_COLLATION
|
||||||
|
utf8_bin
|
||||||
End of 5.1 tests.
|
End of 5.1 tests.
|
||||||
|
@ -1412,14 +1412,22 @@ DROP TABLE t1, t2;
|
|||||||
set sql_mode=traditional;
|
set sql_mode=traditional;
|
||||||
select hex(char(0xFF using utf8));
|
select hex(char(0xFF using utf8));
|
||||||
select hex(convert(0xFF using utf8));
|
select hex(convert(0xFF using utf8));
|
||||||
|
--error ER_INVALID_CHARACTER_STRING
|
||||||
select hex(_utf8 0x616263FF);
|
select hex(_utf8 0x616263FF);
|
||||||
|
--error ER_INVALID_CHARACTER_STRING
|
||||||
select hex(_utf8 X'616263FF');
|
select hex(_utf8 X'616263FF');
|
||||||
|
--error ER_INVALID_CHARACTER_STRING
|
||||||
select hex(_utf8 B'001111111111');
|
select hex(_utf8 B'001111111111');
|
||||||
|
--error ER_INVALID_CHARACTER_STRING
|
||||||
select (_utf8 X'616263FF');
|
select (_utf8 X'616263FF');
|
||||||
set sql_mode=default;
|
set sql_mode=default;
|
||||||
select hex(char(0xFF using utf8));
|
select hex(char(0xFF using utf8));
|
||||||
select hex(convert(0xFF using utf8));
|
select hex(convert(0xFF using utf8));
|
||||||
|
--error ER_INVALID_CHARACTER_STRING
|
||||||
select hex(_utf8 0x616263FF);
|
select hex(_utf8 0x616263FF);
|
||||||
|
--error ER_INVALID_CHARACTER_STRING
|
||||||
select hex(_utf8 X'616263FF');
|
select hex(_utf8 X'616263FF');
|
||||||
|
--error ER_INVALID_CHARACTER_STRING
|
||||||
select hex(_utf8 B'001111111111');
|
select hex(_utf8 B'001111111111');
|
||||||
|
--error ER_INVALID_CHARACTER_STRING
|
||||||
select (_utf8 X'616263FF');
|
select (_utf8 X'616263FF');
|
||||||
|
@ -1202,4 +1202,10 @@ DROP VIEW v1;
|
|||||||
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA
|
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA
|
||||||
WHERE SCHEMA_NAME ='information_schema';
|
WHERE SCHEMA_NAME ='information_schema';
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#31381 Error in retrieving Data from INFORMATION_SCHEMA
|
||||||
|
#
|
||||||
|
SELECT TABLE_COLLATION FROM INFORMATION_SCHEMA.TABLES
|
||||||
|
WHERE TABLE_SCHEMA='mysql' and TABLE_NAME= 'db';
|
||||||
|
|
||||||
--echo End of 5.1 tests.
|
--echo End of 5.1 tests.
|
||||||
|
12
sql/item.cc
12
sql/item.cc
@ -4313,7 +4313,7 @@ bool Item::is_datetime()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
String *Item::check_well_formed_result(String *str)
|
String *Item::check_well_formed_result(String *str, bool send_error)
|
||||||
{
|
{
|
||||||
/* Check whether we got a well-formed string */
|
/* Check whether we got a well-formed string */
|
||||||
CHARSET_INFO *cs= str->charset();
|
CHARSET_INFO *cs= str->charset();
|
||||||
@ -4329,8 +4329,14 @@ String *Item::check_well_formed_result(String *str)
|
|||||||
uint diff= str->length() - wlen;
|
uint diff= str->length() - wlen;
|
||||||
set_if_smaller(diff, 3);
|
set_if_smaller(diff, 3);
|
||||||
octet2hex(hexbuf, str->ptr() + wlen, diff);
|
octet2hex(hexbuf, str->ptr() + wlen, diff);
|
||||||
if (thd->variables.sql_mode &
|
if (send_error)
|
||||||
(MODE_STRICT_TRANS_TABLES | MODE_STRICT_ALL_TABLES))
|
{
|
||||||
|
my_error(ER_INVALID_CHARACTER_STRING, MYF(0),
|
||||||
|
cs->csname, hexbuf);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if ((thd->variables.sql_mode &
|
||||||
|
(MODE_STRICT_TRANS_TABLES | MODE_STRICT_ALL_TABLES)))
|
||||||
{
|
{
|
||||||
level= MYSQL_ERROR::WARN_LEVEL_ERROR;
|
level= MYSQL_ERROR::WARN_LEVEL_ERROR;
|
||||||
null_value= 1;
|
null_value= 1;
|
||||||
|
@ -1003,7 +1003,7 @@ public:
|
|||||||
bool is_datetime();
|
bool is_datetime();
|
||||||
virtual Field::geometry_type get_geometry_type() const
|
virtual Field::geometry_type get_geometry_type() const
|
||||||
{ return Field::GEOM_GEOMETRY; };
|
{ return Field::GEOM_GEOMETRY; };
|
||||||
String *check_well_formed_result(String *str);
|
String *check_well_formed_result(String *str, bool send_error= 0);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -3487,6 +3487,10 @@ static int get_schema_tables_record(THD *thd, TABLE_LIST *tables,
|
|||||||
(ptr == option_buff ? 0 :
|
(ptr == option_buff ? 0 :
|
||||||
(uint) (ptr-option_buff)-1), cs);
|
(uint) (ptr-option_buff)-1), cs);
|
||||||
|
|
||||||
|
tmp_buff= (share->table_charset ?
|
||||||
|
share->table_charset->name : "default");
|
||||||
|
table->field[17]->store(tmp_buff, strlen(tmp_buff), cs);
|
||||||
|
|
||||||
if (share->comment.str)
|
if (share->comment.str)
|
||||||
table->field[20]->store(share->comment.str, share->comment.length, cs);
|
table->field[20]->store(share->comment.str, share->comment.length, cs);
|
||||||
|
|
||||||
@ -3564,9 +3568,6 @@ static int get_schema_tables_record(THD *thd, TABLE_LIST *tables,
|
|||||||
table->field[16]->store_time(&time, MYSQL_TIMESTAMP_DATETIME);
|
table->field[16]->store_time(&time, MYSQL_TIMESTAMP_DATETIME);
|
||||||
table->field[16]->set_notnull();
|
table->field[16]->set_notnull();
|
||||||
}
|
}
|
||||||
tmp_buff= (share->table_charset ?
|
|
||||||
share->table_charset->name : "default");
|
|
||||||
table->field[17]->store(tmp_buff, strlen(tmp_buff), cs);
|
|
||||||
if (file->ha_table_flags() & (ulong) HA_HAS_CHECKSUM)
|
if (file->ha_table_flags() & (ulong) HA_HAS_CHECKSUM)
|
||||||
{
|
{
|
||||||
table->field[18]->store((longlong) file->checksum(), TRUE);
|
table->field[18]->store((longlong) file->checksum(), TRUE);
|
||||||
|
@ -9935,15 +9935,11 @@ literal:
|
|||||||
str ? str->ptr() : "",
|
str ? str->ptr() : "",
|
||||||
str ? str->length() : 0,
|
str ? str->length() : 0,
|
||||||
$1);
|
$1);
|
||||||
if ($$)
|
if (!$$ || !$$->check_well_formed_result(&$$->str_value, TRUE))
|
||||||
{
|
{
|
||||||
|
MYSQL_YYABORT;
|
||||||
|
}
|
||||||
((Item_string *) $$)->set_repertoire_from_value();
|
((Item_string *) $$)->set_repertoire_from_value();
|
||||||
if (!$$->check_well_formed_result(&$$->str_value))
|
|
||||||
{
|
|
||||||
$$= new Item_null();
|
|
||||||
$$->set_name(NULL, 0, system_charset_info);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
| UNDERSCORE_CHARSET BIN_NUM
|
| UNDERSCORE_CHARSET BIN_NUM
|
||||||
{
|
{
|
||||||
@ -9959,10 +9955,9 @@ literal:
|
|||||||
str ? str->ptr() : "",
|
str ? str->ptr() : "",
|
||||||
str ? str->length() : 0,
|
str ? str->length() : 0,
|
||||||
$1);
|
$1);
|
||||||
if ($$ && !$$->check_well_formed_result(&$$->str_value))
|
if (!$$ || !$$->check_well_formed_result(&$$->str_value, TRUE))
|
||||||
{
|
{
|
||||||
$$= new Item_null();
|
MYSQL_YYABORT;
|
||||||
$$->set_name(NULL, 0, system_charset_info);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
| DATE_SYM text_literal { $$ = $2; }
|
| DATE_SYM text_literal { $$ = $2; }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user