Commit 66f4e1b9 authored by unknown's avatar unknown

merged


BitKeeper/deleted/.del-compile-pentium-valgrind-max:
  Delete: BUILD/compile-pentium-valgrind-max
Build-tools/Do-compile:
  Auto merged
sql/field.h:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/ha_myisammrg.cc:
  Auto merged
sql/item_cmpfunc.cc:
  Auto merged
sql/mysqld.cc:
  Auto merged
sql/stacktrace.c:
  Auto merged
parents c0309e5a ec2df916
...@@ -51770,6 +51770,8 @@ not yet 100% confident in this code. ...@@ -51770,6 +51770,8 @@ not yet 100% confident in this code.
Allow one to start multiple MySQL servers on windows (code backported Allow one to start multiple MySQL servers on windows (code backported
from 4.0.2). from 4.0.2).
@item @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}. Fixed a problem with BDB and @code{ALTER TABLE}.
@item @item
Fixed reference to freed memory when doing complicated @code{GROUP BY 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. ...@@ -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 Fixed problem with @code{GROUP BY} on result with expression that created a
@code{BLOB} field. @code{BLOB} field.
@item @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. Fixed problem with privilege tables when downgrading from 4.0.2 to 3.23.
@item @item
Fixed thread bug in @code{SLAVE START}, @code{SLAVE STOP} and automatic repair Fixed thread bug in @code{SLAVE START}, @code{SLAVE STOP} and automatic repair
...@@ -185,3 +185,22 @@ CREATE TABLE t ( a int(11) NOT NULL default '0', b int(11) NOT NULL default '0 ...@@ -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 t where a = 2;
select max(b) from t1 where a = 2; select max(b) from t1 where a = 2;
drop table if exists t,t1,t2; 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;
...@@ -371,7 +371,28 @@ int ha_myisammrg::create(const char *name, register TABLE *form, ...@@ -371,7 +371,28 @@ int ha_myisammrg::create(const char *name, register TABLE *form,
sizeof(char*)))) sizeof(char*))))
DBUG_RETURN(1); DBUG_RETURN(1);
for (pos=table_names ; tables ; tables=tables->next) 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; *pos=0;
DBUG_RETURN(myrg_create(fn_format(buff,name,"","",2+4+16), DBUG_RETURN(myrg_create(fn_format(buff,name,"","",2+4+16),
(const char **) table_names, (const char **) table_names,
......
...@@ -1404,7 +1404,11 @@ information that should help you find out what is causing the crash.\n"); ...@@ -1404,7 +1404,11 @@ information that should help you find out what is causing the crash.\n");
#endif /* HAVE_STACKTRACE */ #endif /* HAVE_STACKTRACE */
if (test_flags & TEST_CORE_ON_SIGNAL) if (test_flags & TEST_CORE_ON_SIGNAL)
{
fprintf(stderr, "Writing a core file\n");
fflush(stderr);
write_core(sig); write_core(sig);
}
exit(1); exit(1);
} }
......
...@@ -206,7 +206,7 @@ resolve it\n"); ...@@ -206,7 +206,7 @@ resolve it\n");
/* Produce a core for the thread */ /* Produce a core for the thread */
#ifdef HAVE_LINUXTHREADS #ifdef NOT_USED /* HAVE_LINUXTHREADS */
void write_core(int sig) void write_core(int sig)
{ {
signal(sig, SIG_DFL); signal(sig, SIG_DFL);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment