mirror of
https://github.com/MariaDB/server.git
synced 2025-01-20 05:52:27 +01:00
Merge witty.ndb.mysql.com:/Users/mattiasj/Public/shared-vms/mysql-5.1-bug33379
into witty.ndb.mysql.com:/Users/mattiasj/clones/51-topush
This commit is contained in:
commit
11923a5ec2
4 changed files with 42 additions and 10 deletions
|
@ -1,4 +1,11 @@
|
|||
drop table if exists t1;
|
||||
# test with not null
|
||||
create table t1 (a bit not null) partition by key (a);
|
||||
insert into t1 values (b'1');
|
||||
select hex(a) from t1 where a = b'1';
|
||||
hex(a)
|
||||
1
|
||||
drop table t1;
|
||||
create table t1 (a tinyint not null) partition by key (a);
|
||||
insert into t1 values (2);
|
||||
select * from t1 where a = 2;
|
||||
|
@ -125,6 +132,13 @@ select * from t1 where a = 'y';
|
|||
a
|
||||
y
|
||||
drop table t1;
|
||||
# test with null allowed
|
||||
create table t1 (a bit) partition by key (a);
|
||||
insert into t1 values (b'1');
|
||||
select hex(a) from t1 where a = b'1';
|
||||
hex(a)
|
||||
1
|
||||
drop table t1;
|
||||
create table t1 (a tinyint) partition by key (a);
|
||||
insert into t1 values (2);
|
||||
select * from t1 where a = 2;
|
||||
|
|
|
@ -11,11 +11,11 @@
|
|||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
# FIXME: disabled this test because of valgrind error
|
||||
#create table t1 (a bit not null) partition by key (a);
|
||||
#insert into t1 values (b'1');
|
||||
#select * from t1 where a = b'1';
|
||||
#drop table t1;
|
||||
-- echo # test with not null
|
||||
create table t1 (a bit not null) partition by key (a);
|
||||
insert into t1 values (b'1');
|
||||
select hex(a) from t1 where a = b'1';
|
||||
drop table t1;
|
||||
create table t1 (a tinyint not null) partition by key (a);
|
||||
insert into t1 values (2);
|
||||
select * from t1 where a = 2;
|
||||
|
@ -100,11 +100,11 @@ create table t1 (a set('y','n') not null) partition by key (a);
|
|||
insert into t1 values ('y');
|
||||
select * from t1 where a = 'y';
|
||||
drop table t1;
|
||||
# FIXME: disabled this test because of valgrind error
|
||||
#create table t1 (a bit) partition by key (a);
|
||||
#insert into t1 values (b'1');
|
||||
#select * from t1 where a = b'1';
|
||||
#drop table t1;
|
||||
-- echo # test with null allowed
|
||||
create table t1 (a bit) partition by key (a);
|
||||
insert into t1 values (b'1');
|
||||
select hex(a) from t1 where a = b'1';
|
||||
drop table t1;
|
||||
create table t1 (a tinyint) partition by key (a);
|
||||
insert into t1 values (2);
|
||||
select * from t1 where a = 2;
|
||||
|
|
17
sql/field.cc
17
sql/field.cc
|
@ -8793,6 +8793,23 @@ Field_bit::Field_bit(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg,
|
|||
}
|
||||
|
||||
|
||||
void Field_bit::hash(ulong *nr, ulong *nr2)
|
||||
{
|
||||
if (is_null())
|
||||
{
|
||||
*nr^= (*nr << 1) | 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
CHARSET_INFO *cs= &my_charset_bin;
|
||||
longlong value= Field_bit::val_int();
|
||||
uchar tmp[8];
|
||||
mi_int8store(tmp,value);
|
||||
cs->coll->hash_sort(cs, tmp, 8, nr, nr2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
size_t
|
||||
Field_bit::do_last_null_byte() const
|
||||
{
|
||||
|
|
|
@ -1904,6 +1904,7 @@ public:
|
|||
Field::move_field_offset(ptr_diff);
|
||||
bit_ptr= ADD_TO_PTR(bit_ptr, ptr_diff, uchar*);
|
||||
}
|
||||
void hash(ulong *nr, ulong *nr2);
|
||||
|
||||
private:
|
||||
virtual size_t do_last_null_byte() const;
|
||||
|
|
Loading…
Reference in a new issue