Merge bk@192.168.21.1:mysql-4.1
into mysql.com:/home/hf/work/mrg/mysql-4.1-opt
This commit is contained in:
commit
55f991c24d
@ -69,10 +69,14 @@ void embedded_get_error(MYSQL *mysql)
|
||||
|
||||
static void emb_free_rows(THD *thd)
|
||||
{
|
||||
if (!thd->data)
|
||||
return;
|
||||
|
||||
if (thd->current_stmt)
|
||||
free_root(&thd->data->alloc,MYF(0));
|
||||
else
|
||||
free_rows(thd->data);
|
||||
thd->data= NULL;
|
||||
}
|
||||
|
||||
|
||||
@ -86,11 +90,8 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command,
|
||||
THD *thd=(THD *) mysql->thd;
|
||||
NET *net= &mysql->net;
|
||||
|
||||
if (thd->data)
|
||||
{
|
||||
emb_free_rows(thd);
|
||||
thd->data= 0;
|
||||
}
|
||||
emb_free_rows(thd);
|
||||
|
||||
/* Check that we are calling the client functions in right order */
|
||||
if (mysql->status != MYSQL_STATUS_READY)
|
||||
{
|
||||
@ -143,13 +144,7 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command,
|
||||
|
||||
static void emb_flush_use_result(MYSQL *mysql)
|
||||
{
|
||||
MYSQL_DATA *data= ((THD*)(mysql->thd))->data;
|
||||
|
||||
if (data)
|
||||
{
|
||||
free_rows(data);
|
||||
((THD*)(mysql->thd))->data= NULL;
|
||||
}
|
||||
emb_free_rows((THD*) (mysql->thd));
|
||||
}
|
||||
|
||||
static MYSQL_DATA *
|
||||
@ -304,8 +299,7 @@ int emb_unbuffered_fetch(MYSQL *mysql, char **row)
|
||||
static void emb_free_embedded_thd(MYSQL *mysql)
|
||||
{
|
||||
THD *thd= (THD*)mysql->thd;
|
||||
if (thd->data)
|
||||
emb_free_rows(thd);
|
||||
emb_free_rows(thd);
|
||||
thread_count--;
|
||||
delete thd;
|
||||
mysql->thd=0;
|
||||
|
@ -166,3 +166,6 @@ dt
|
||||
0000-00-00 00:00:00
|
||||
0000-00-00 00:00:00
|
||||
drop table t1;
|
||||
select cast('2006-12-05 22:10:10' as datetime) + 0;
|
||||
cast('2006-12-05 22:10:10' as datetime) + 0
|
||||
20061205221010.000000
|
||||
|
@ -113,4 +113,10 @@ insert into t1 values ("00-00-00"), ("00-00-00 00:00:00");
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #16546 DATETIME+0 not always coerced the same way
|
||||
#
|
||||
select cast('2006-12-05 22:10:10' as datetime) + 0;
|
||||
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@ -751,12 +751,19 @@ public:
|
||||
String *val_str(String *str);
|
||||
const char *cast_type() const { return "datetime"; }
|
||||
enum_field_types field_type() const { return MYSQL_TYPE_DATETIME; }
|
||||
void fix_length_and_dec()
|
||||
{
|
||||
Item_typecast_maybe_null::fix_length_and_dec();
|
||||
decimals= DATETIME_DEC;
|
||||
}
|
||||
|
||||
Field *tmp_table_field(TABLE *t_arg)
|
||||
{
|
||||
return (new Field_datetime(maybe_null, name, t_arg, &my_charset_bin));
|
||||
}
|
||||
bool result_as_longlong() { return TRUE; }
|
||||
longlong val_int();
|
||||
double val() { return (double) val_int(); }
|
||||
};
|
||||
|
||||
class Item_func_makedate :public Item_str_func
|
||||
|
Loading…
x
Reference in New Issue
Block a user