Commit 4016096b authored by unknown's avatar unknown
Browse files

Merge work:/home/bk/mysql into serg.mysql.com:/usr/home/serg/Abk/mysql

parents 374ea106 8529b744
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -333,3 +333,5 @@ innobase/autom4te.cache/requests
innobase/autom4te.cache/traces.0
innobase/stamp-h1
stamp-h1
configure.lineno
innobase/configure.lineno
+4 −0
Original line number Diff line number Diff line
bool	not_null	misc
NULL	c	6
NULL	d	7
bool	not_null	misc
+20 −0
Original line number Diff line number Diff line
@@ -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);
delete from t1 where a=27;
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;
+1 −1
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ class Field {
  virtual String *val_str(String*,String *)=0;
  virtual Item_result result_type () const=0;
  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 uint32 pack_length() const { return (uint32) field_length; }
  virtual void reset(void) { bzero(ptr,pack_length()); }