mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
fixed Field::eq() to work with CHAR(0) fields
This commit is contained in:
@ -333,3 +333,5 @@ innobase/autom4te.cache/requests
|
|||||||
innobase/autom4te.cache/traces.0
|
innobase/autom4te.cache/traces.0
|
||||||
innobase/stamp-h1
|
innobase/stamp-h1
|
||||||
stamp-h1
|
stamp-h1
|
||||||
|
configure.lineno
|
||||||
|
innobase/configure.lineno
|
||||||
|
4
mysql-test/r/delete.result
Normal file
4
mysql-test/r/delete.result
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
bool not_null misc
|
||||||
|
NULL c 6
|
||||||
|
NULL d 7
|
||||||
|
bool not_null misc
|
@ -35,3 +35,23 @@ create table t1 (a bigint not null, primary key (a,a,a,a,a,a,a,a,a,a));
|
|||||||
insert into t1 values (2),(4),(6),(8),(10),(12),(14),(16),(18),(20),(22),(24),(26),(23),(27);
|
insert into t1 values (2),(4),(6),(8),(10),(12),(14),(16),(18),(20),(22),(24),(26),(23),(27);
|
||||||
delete from t1 where a=27;
|
delete from t1 where a=27;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# CHAR(0) bug - not actually DELETE bug, but anyway...
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
bool char(0) default NULL,
|
||||||
|
not_null varchar(20) binary NOT NULL default '',
|
||||||
|
misc integer not null,
|
||||||
|
PRIMARY KEY (not_null)
|
||||||
|
) TYPE=MyISAM;
|
||||||
|
|
||||||
|
INSERT INTO t1 VALUES (NULL,'a',4), (NULL,'b',5), (NULL,'c',6), (NULL,'d',7);
|
||||||
|
|
||||||
|
select * from t1 where misc > 5 and bool is null;
|
||||||
|
delete from t1 where misc > 5 and bool is null;
|
||||||
|
select * from t1 where misc > 5 and bool is null;
|
||||||
|
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ public:
|
|||||||
virtual String *val_str(String*,String *)=0;
|
virtual String *val_str(String*,String *)=0;
|
||||||
virtual Item_result result_type () const=0;
|
virtual Item_result result_type () const=0;
|
||||||
virtual Item_result cmp_type () const { return result_type(); }
|
virtual Item_result cmp_type () const { return result_type(); }
|
||||||
bool eq(Field *field) { return ptr == field->ptr; }
|
bool eq(Field *field) { return ptr == field->ptr && null_ptr == field->null_ptr; }
|
||||||
virtual bool eq_def(Field *field);
|
virtual bool eq_def(Field *field);
|
||||||
virtual uint32 pack_length() const { return (uint32) field_length; }
|
virtual uint32 pack_length() const { return (uint32) field_length; }
|
||||||
virtual void reset(void) { bzero(ptr,pack_length()); }
|
virtual void reset(void) { bzero(ptr,pack_length()); }
|
||||||
|
Reference in New Issue
Block a user