Commit 0a72f99e authored by unknown's avatar unknown
Browse files

Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0

into mysql.com:/usr/home/ram/work/5.0.bit_class

parents de8b4991 27b2b1fa
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -380,3 +380,25 @@ drop table t1;
create table t1(a int, b bit not null) engine=innodb;
alter table t1 add primary key (a);
drop table t1;
create table t1 (a bit, b bit(10)) engine=innodb;
show create table t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `a` bit(1) default NULL,
  `b` bit(10) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
alter table t1 engine=heap;
show create table t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `a` bit(1) default NULL,
  `b` bit(10) default NULL
) ENGINE=MEMORY DEFAULT CHARSET=latin1
alter table t1 engine=innodb;
show create table t1;
Table	Create Table
t1	CREATE TABLE `t1` (
  `a` bit(1) default NULL,
  `b` bit(10) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
drop table t1;
+12 −0
Original line number Diff line number Diff line
@@ -121,3 +121,15 @@ drop table t1;
create table t1(a int, b bit not null) engine=innodb;
alter table t1 add primary key (a);
drop table t1;

#
# altering tables
#

create table t1 (a bit, b bit(10)) engine=innodb;
show create table t1;
alter table t1 engine=heap;
show create table t1;
alter table t1 engine=innodb;
show create table t1;
drop table t1;
+3 −1
Original line number Diff line number Diff line
@@ -8358,7 +8358,9 @@ create_field::create_field(Field *old_field,Field *orig_field)
    break;
#endif
  case FIELD_TYPE_BIT:
    length= ((Field_bit *) old_field)->bit_len + length * 8;
    length= (old_field->key_type() == HA_KEYTYPE_BIT) ?
            ((Field_bit *) old_field)->bit_len + length * 8 :
            ((Field_bit_as_char *) old_field)->create_length;
    break;
  default:
    break;
+1 −2
Original line number Diff line number Diff line
@@ -1313,9 +1313,8 @@ class Field_bit :public Field {

  
class Field_bit_as_char: public Field_bit {
protected:
  uchar create_length;
public:
  uchar create_length;
  Field_bit_as_char(char *ptr_arg, uint32 len_arg, uchar *null_ptr_arg,
                    uchar null_bit_arg, uchar *bit_ptr_arg, uchar bit_ofs_arg,
                    enum utype unireg_check_arg, const char *field_name_arg,