mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
Merge sinisa@work.mysql.com:/home/bk/mysql
into sinisa.nasamreza.org:/mnt/work/mysql
This commit is contained in:
commit
891a62eafb
4 changed files with 21 additions and 14 deletions
|
@ -449,17 +449,19 @@ public:
|
|||
void update_used_tables()
|
||||
{
|
||||
if (!args[0]->maybe_null)
|
||||
used_tables_cache=0; /* is always false */
|
||||
{
|
||||
used_tables_cache= 0; /* is always false */
|
||||
cached_value= (longlong) 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
args[0]->update_used_tables();
|
||||
used_tables_cache=args[0]->used_tables();
|
||||
}
|
||||
if (!used_tables_cache)
|
||||
{
|
||||
/* Remember if the value is always NULL or never NULL */
|
||||
args[0]->val();
|
||||
cached_value= args[0]->null_value ? (longlong) 1 : (longlong) 0;
|
||||
if (!(used_tables_cache=args[0]->used_tables()))
|
||||
{
|
||||
/* Remember if the value is always NULL or never NULL */
|
||||
args[0]->val();
|
||||
cached_value= args[0]->null_value ? (longlong) 1 : (longlong) 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
optimize_type select_optimize() const { return OPTIMIZE_NULL; }
|
||||
|
|
|
@ -58,6 +58,7 @@ proc_analyse_init(THD *thd, ORDER *param, select_result *result,
|
|||
if ((*param->item)->type() != Item::INT_ITEM ||
|
||||
(*param->item)->val() < 0)
|
||||
{
|
||||
delete pc;
|
||||
net_printf(&thd->net, ER_WRONG_PARAMETERS_TO_PROCEDURE, proc_name);
|
||||
return 0;
|
||||
}
|
||||
|
@ -65,6 +66,7 @@ proc_analyse_init(THD *thd, ORDER *param, select_result *result,
|
|||
param = param->next;
|
||||
if (param->next) // no third parameter possible
|
||||
{
|
||||
delete pc;
|
||||
net_printf(&thd->net, ER_WRONG_PARAMCOUNT_TO_PROCEDURE, proc_name);
|
||||
return 0;
|
||||
}
|
||||
|
@ -72,6 +74,7 @@ proc_analyse_init(THD *thd, ORDER *param, select_result *result,
|
|||
if ((*param->item)->type() != Item::INT_ITEM ||
|
||||
(*param->item)->val() < 0)
|
||||
{
|
||||
delete pc;
|
||||
net_printf(&thd->net, ER_WRONG_PARAMETERS_TO_PROCEDURE, proc_name);
|
||||
return 0;
|
||||
}
|
||||
|
@ -80,6 +83,7 @@ proc_analyse_init(THD *thd, ORDER *param, select_result *result,
|
|||
else if ((*param->item)->type() != Item::INT_ITEM ||
|
||||
(*param->item)->val() < 0)
|
||||
{
|
||||
delete pc;
|
||||
net_printf(&thd->net, ER_WRONG_PARAMETERS_TO_PROCEDURE, proc_name);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -288,13 +288,14 @@ protected:
|
|||
public:
|
||||
uint max_tree_elements, max_treemem;
|
||||
|
||||
analyse(select_result *res) :Procedure(res, PROC_NO_SORT), rows(0),
|
||||
output_str_length(0) {}
|
||||
analyse(select_result *res) :Procedure(res, PROC_NO_SORT), f_info(0),
|
||||
rows(0), output_str_length(0) {}
|
||||
|
||||
~analyse()
|
||||
{
|
||||
for (field_info **f=f_info; f != f_end; f++)
|
||||
delete (*f);
|
||||
{
|
||||
if (f_info)
|
||||
for (field_info **f=f_info; f != f_end; f++)
|
||||
delete (*f);
|
||||
}
|
||||
virtual void add() {}
|
||||
virtual bool change_columns(List<Item> &fields);
|
||||
|
|
|
@ -156,7 +156,7 @@ THD::THD():user_time(0),fatal_error(0),last_insert_id_used(0),
|
|||
*/
|
||||
{
|
||||
pthread_mutex_lock(&LOCK_thread_count);
|
||||
ulong tmp=(ulong) (rnd(&sql_rand) * ((ulong)~0L));
|
||||
ulong tmp=(ulong) (rnd(&sql_rand) * ((ulong)0xffffffff));
|
||||
randominit(&rand, tmp + (ulong) start_time,
|
||||
tmp + (ulong) thread_id);
|
||||
pthread_mutex_unlock(&LOCK_thread_count);
|
||||
|
|
Loading…
Reference in a new issue