mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
merged
This commit is contained in:
@ -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.
|
|||||||
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
|
|||||||
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,
|
|||||||
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");
|
|||||||
#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");
|
|||||||
|
|
||||||
/* 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);
|
||||||
|
Reference in New Issue
Block a user