Commit 70e053fb authored by monty@hundin.mysql.fi's avatar monty@hundin.mysql.fi
Browse files

Fixed problem with default & InnoDB tables.

parent 12058c29
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -46839,6 +46839,8 @@ not yet 100% confident in this code.
@appendixsubsec Changes in release 3.23.47
@itemize @bullet
@item
Fix default values for InnoDB tables.
@item
Fixed that @code{GROUP BY expr DESC} works.
@item
Fixed bug when using @code{t1 LEFT JOIN t2 ON t2.key=constant}.
+2 −0
Original line number Diff line number Diff line
@@ -499,3 +499,5 @@ table type possible_keys key key_len ref rows Extra
t1	index	NULL	b	4	NULL	4	Using index
table	type	possible_keys	key	key_len	ref	rows	Extra
t1	ALL	NULL	NULL	NULL	NULL	4	
Field	Type	Null	Key	Default	Extra
testint	int(11)			1	
+8 −0
Original line number Diff line number Diff line
@@ -529,3 +529,11 @@ explain select a,b from t1 order by b;
explain select a,b from t1;
explain select a,b,c from t1;
drop table t1;

#
# Check describe
#

create table t1 (testint int not null default 1) type=innodb;
desc t1;
drop table t1;
+2 −4
Original line number Diff line number Diff line
@@ -120,10 +120,8 @@ int openfrm(const char *name, const char *alias, uint db_stat, uint prgflag,
  outparam->db_record_offset=1;
  if (db_create_options & HA_OPTION_LONG_BLOB_PTR)
    outparam->blob_ptr_size=portable_sizeof_char_ptr;
  outparam->db_low_byte_first=test(outparam->db_type == DB_TYPE_MYISAM ||
				   outparam->db_type == DB_TYPE_BERKELEY_DB ||
				   outparam->db_type == DB_TYPE_HEAP);

  /* Set temporaryly a good value for db_low_byte_first */
  outparam->db_low_byte_first=test(outparam->db_type != DB_TYPE_ISAM);
  error=4;
  outparam->max_rows=uint4korr(head+18);
  outparam->min_rows=uint4korr(head+22);
+15 −5
Original line number Diff line number Diff line
@@ -515,16 +515,23 @@ static bool make_empty_rec(File file,enum db_type table_type,
  uchar *buff,*null_pos;
  TABLE table;
  create_field *field;
  handler *handler;
  DBUG_ENTER("make_empty_rec");

  /* We need a table to generate columns for default values */
  bzero((char*) &table,sizeof(table));
  table.db_low_byte_first=test(table_type == DB_TYPE_MYISAM ||
			       table_type == DB_TYPE_HEAP);
  table.blob_ptr_size=portable_sizeof_char_ptr;
  handler= get_new_handler((TABLE*) 0, table_type);

  if (!(buff=(uchar*) my_malloc((uint) reclength,MYF(MY_WME | MY_ZEROFILL))))
  if (!handler ||
      !(buff=(uchar*) my_malloc((uint) reclength,MYF(MY_WME | MY_ZEROFILL))))
  {
    delete handler;
    DBUG_RETURN(1);
  }

  table.db_low_byte_first= handler->low_byte_first();
  table.blob_ptr_size=portable_sizeof_char_ptr;

  firstpos=reclength;
  null_count=0;
  if (!(table_options & HA_OPTION_PACK_RECORD))
@@ -574,8 +581,11 @@ static bool make_empty_rec(File file,enum db_type table_type,
      regfield->reset();
    delete regfield;
  }
  bfill((byte*) buff+null_length,firstpos-null_length,255);/* Fill not used startpos */

  /* Fill not used startpos */
  bfill((byte*) buff+null_length,firstpos-null_length,255);
  error=(int) my_write(file,(byte*) buff,(uint) reclength,MYF_RW);
  my_free((gptr) buff,MYF(MY_FAE));
  delete handler;
  DBUG_RETURN(error);
} /* make_empty_rec */