Commit bf79f362 authored by unknown's avatar unknown
Browse files

Merge lthalmann@bk-internal.mysql.com:/home/bk/mysql-4.1

into mysql.com:/home/bkroot/mysql-4.1

parents 34b8db05 b3a5e5b1
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -512,7 +512,7 @@ collation(make_set(255,_latin2'a',_latin2'b',_latin2'c')) coercibility(make_set(
latin2_general_ci	4
select collation(export_set(255,_latin2'y',_latin2'n',_latin2' ')), coercibility(export_set(255,_latin2'y',_latin2'n',_latin2' '));
collation(export_set(255,_latin2'y',_latin2'n',_latin2' '))	coercibility(export_set(255,_latin2'y',_latin2'n',_latin2' '))
binary	4
latin2_general_ci	4
select collation(trim(_latin2' a ')), coercibility(trim(_latin2' a '));
collation(trim(_latin2' a '))	coercibility(trim(_latin2' a '))
latin2_general_ci	4
@@ -627,6 +627,15 @@ t1 CREATE TABLE `t1` (
  `encode('abcd','ab')` binary(4) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
create table t1 (a char character set latin2);
insert into t1 values (null);
select charset(a), collation(a), coercibility(a) from t1;
charset(a)	collation(a)	coercibility(a)
latin2	latin2_general_ci	2
drop table t1;
select charset(null), collation(null), coercibility(null);
charset(null)	collation(null)	coercibility(null)
binary	binary	5
select SUBSTR('abcdefg',3,2);
SUBSTR('abcdefg',3,2)
cd
+9 −0
Original line number Diff line number Diff line
@@ -368,6 +368,15 @@ select
show create table t1;
drop table t1;

#
# Bug#9129
#
create table t1 (a char character set latin2);
insert into t1 values (null);
select charset(a), collation(a), coercibility(a) from t1;
drop table t1;
select charset(null), collation(null), coercibility(null);

#
# test for SUBSTR
#
+0 −5
Original line number Diff line number Diff line
@@ -1346,11 +1346,6 @@ longlong Item_func_char_length::val_int()
longlong Item_func_coercibility::val_int()
{
  DBUG_ASSERT(fixed == 1);
  if (args[0]->null_value)
  {
    null_value= 1;
    return 0;
  }
  null_value= 0;
  return (longlong) args[0]->collation.derivation;
}
+7 −8
Original line number Diff line number Diff line
@@ -2290,12 +2290,11 @@ bool Item_func_set_collation::eq(const Item *item, bool binary_cmp) const
String *Item_func_charset::val_str(String *str)
{
  DBUG_ASSERT(fixed == 1);
  String *res = args[0]->val_str(str);
  uint dummy_errors;

  if ((null_value=(args[0]->null_value || !res->charset())))
    return 0;
  str->copy(res->charset()->csname,strlen(res->charset()->csname),
  CHARSET_INFO *cs= args[0]->collation.collation; 
  null_value= 0;
  str->copy(cs->csname, strlen(cs->csname),
	    &my_charset_latin1, collation.collation, &dummy_errors);
  return str;
}
@@ -2303,12 +2302,11 @@ String *Item_func_charset::val_str(String *str)
String *Item_func_collation::val_str(String *str)
{
  DBUG_ASSERT(fixed == 1);
  String *res = args[0]->val_str(str);
  uint dummy_errors;
  CHARSET_INFO *cs= args[0]->collation.collation; 

  if ((null_value=(args[0]->null_value || !res->charset())))
    return 0;
  str->copy(res->charset()->name,strlen(res->charset()->name),
  null_value= 0;
  str->copy(cs->name, strlen(cs->name),
	    &my_charset_latin1, collation.collation, &dummy_errors);
  return str;
}
@@ -2472,6 +2470,7 @@ String* Item_func_export_set::val_str(String* str)
  uint num_set_values = 64;
  ulonglong mask = 0x1;
  str->length(0);
  str->set_charset(collation.collation);

  /* Check if some argument is a NULL value */
  if (args[0]->null_value || args[1]->null_value || args[2]->null_value)