Commit d4783821 authored by serg@sergbook.mysql.com's avatar serg@sergbook.mysql.com
Browse files

merged

parents 6f963dad 57152522
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -51770,6 +51770,8 @@ not yet 100% confident in this code.
Allow one to start multiple MySQL servers on windows (code backported
from 4.0.2).
@item
Fixed that @code{--core-file} works on Linux (at least on kernel 2.4.18).
@item
Fixed a problem with BDB and @code{ALTER TABLE}.
@item
Fixed reference to freed memory when doing complicated @code{GROUP BY
@@ -51855,6 +51857,11 @@ Changed initialisation of @code{RND()} to make it less predicatable.
Fixed problem with @code{GROUP BY} on result with expression that created a
@code{BLOB} field.
@item
Fixed problem with @code{GROUP BY} on columns that have NULL values.  To
solve this we now create an MyISAM temporary table when doing a group by
on a possible NULL item.  In MySQL 4.0.5 we can again use in memory HEAP
tables for this case.
@item
Fixed problem with privilege tables when downgrading from 4.0.2 to 3.23.
@item
Fixed thread bug in @code{SLAVE START}, @code{SLAVE STOP} and automatic repair
+19 −0
Original line number Diff line number Diff line
@@ -185,3 +185,22 @@ CREATE TABLE t ( a int(11) NOT NULL default '0', b int(11) NOT NULL default '0
select max(b) from t where a = 2;
select max(b) from t1 where a = 2;
drop table if exists t,t1,t2;

#
# temporary merge tables
#
drop table if exists t1, t2, t3, t4, t5, t6;
create table t1 (a int not null);
create table t2 (a int not null);
insert into t1 values (1);
insert into t2 values (2);
create temporary table t3 (a int not null) TYPE=MERGE UNION=(t1,t2);
select * from t3;
create temporary table t4 (a int not null);
create temporary table t5 (a int not null);
insert into t4 values (1);
insert into t5 values (2);
create temporary table t6 (a int not null) TYPE=MERGE UNION=(t4,t5);
select * from t6;
drop table if exists t1, t2, t3, t4, t5, t6;
+22 −1
Original line number Diff line number Diff line
@@ -371,7 +371,28 @@ int ha_myisammrg::create(const char *name, register TABLE *form,
					sizeof(char*))))
    DBUG_RETURN(1);
  for (pos=table_names ; tables ; tables=tables->next)
    *pos++= tables->real_name;
  {
    char *table_name;
    if (create_info->options & HA_LEX_CREATE_TMP_TABLE)
    {
      TABLE **tbl=find_temporary_table(current_thd,
          tables->db, tables->real_name);
      if (!tbl)
      {
        table_name=sql_alloc(1+
            my_snprintf(buff,FN_REFLEN,"%s/%s/%s",mysql_real_data_home,
                        tables->db, tables->real_name));
        if (!table_name)
          DBUG_RETURN(1);
        strcpy(table_name, buff);
      }
      else
        table_name=(*tbl)->path;
    }
    else
      table_name=tables->real_name;
    *pos++= table_name;
  }
  *pos=0;
  DBUG_RETURN(myrg_create(fn_format(buff,name,"","",2+4+16),
			  (const char **) table_names,
+4 −0
Original line number Diff line number Diff line
@@ -1404,7 +1404,11 @@ information that should help you find out what is causing the crash.\n");
#endif /* HAVE_STACKTRACE */

 if (test_flags & TEST_CORE_ON_SIGNAL)
 {
   fprintf(stderr, "Writing a core file\n");
   fflush(stderr);
   write_core(sig);
 }
 exit(1);
}

+1 −1
Original line number Diff line number Diff line
@@ -206,7 +206,7 @@ resolve it\n");

/* Produce a core for the thread */

#ifdef HAVE_LINUXTHREADS
#ifdef NOT_USED /* HAVE_LINUXTHREADS */
void write_core(int sig)
{
  signal(sig, SIG_DFL);