Commit 7187fa9e authored by bell@sanja.is.com.ua's avatar bell@sanja.is.com.ua

Merge sanja.is.com.ua:/home/bell/mysql/mysql-4.1

into sanja.is.com.ua:/home/bell/mysql/work-crash-4.1
parents 8a7acf8a 3fac3a25
...@@ -3892,10 +3892,10 @@ static void set_options(void) ...@@ -3892,10 +3892,10 @@ static void set_options(void)
/* Set default values for some variables */ /* Set default values for some variables */
global_system_variables.table_type=DB_TYPE_MYISAM; global_system_variables.table_type=DB_TYPE_MYISAM;
global_system_variables.tx_isolation=ISO_READ_COMMITTED; global_system_variables.tx_isolation=ISO_READ_COMMITTED;
global_system_variables.select_limit= (ulong) HA_POS_ERROR; global_system_variables.select_limit= (ulonglong) HA_POS_ERROR;
max_system_variables.select_limit= (ulong) HA_POS_ERROR; max_system_variables.select_limit= (ulong) HA_POS_ERROR;
global_system_variables.max_join_size= (ulong) HA_POS_ERROR; global_system_variables.max_join_size= (ulonglong) HA_POS_ERROR;
max_system_variables.max_join_size= (ulong) HA_POS_ERROR; max_system_variables.max_join_size= (ulonglong) HA_POS_ERROR;
#ifdef __WIN__ #ifdef __WIN__
/* Allow Win32 users to move MySQL anywhere */ /* Allow Win32 users to move MySQL anywhere */
......
...@@ -154,11 +154,11 @@ sys_var_thd_ulong sys_max_error_count("max_error_count", ...@@ -154,11 +154,11 @@ sys_var_thd_ulong sys_max_error_count("max_error_count",
&SV::max_error_count); &SV::max_error_count);
sys_var_thd_ulong sys_max_heap_table_size("max_heap_table_size", sys_var_thd_ulong sys_max_heap_table_size("max_heap_table_size",
&SV::max_heap_table_size); &SV::max_heap_table_size);
sys_var_thd_ulong sys_max_join_size("max_join_size", sys_var_thd_ulonglong sys_max_join_size("max_join_size",
&SV::max_join_size, &SV::max_join_size,
fix_max_join_size); fix_max_join_size);
#ifndef TO_BE_DELETED /* Alias for max_join_size */ #ifndef TO_BE_DELETED /* Alias for max_join_size */
sys_var_thd_ulong sys_sql_max_join_size("sql_max_join_size", sys_var_thd_ulonglong sys_sql_max_join_size("sql_max_join_size",
&SV::max_join_size, &SV::max_join_size,
fix_max_join_size); fix_max_join_size);
#endif #endif
...@@ -282,7 +282,7 @@ static sys_var_thd_bit sys_unique_checks("unique_checks", ...@@ -282,7 +282,7 @@ static sys_var_thd_bit sys_unique_checks("unique_checks",
/* Local state variables */ /* Local state variables */
static sys_var_thd_ulong sys_select_limit("sql_select_limit", static sys_var_thd_ulonglong sys_select_limit("sql_select_limit",
&SV::select_limit); &SV::select_limit);
static sys_var_timestamp sys_timestamp("timestamp"); static sys_var_timestamp sys_timestamp("timestamp");
static sys_var_last_insert_id sys_last_insert_id("last_insert_id"); static sys_var_last_insert_id sys_last_insert_id("last_insert_id");
...@@ -594,7 +594,7 @@ static void fix_max_join_size(THD *thd, enum_var_type type) ...@@ -594,7 +594,7 @@ static void fix_max_join_size(THD *thd, enum_var_type type)
{ {
if (type != OPT_GLOBAL) if (type != OPT_GLOBAL)
{ {
if (thd->variables.max_join_size == (ulong) HA_POS_ERROR) if (thd->variables.max_join_size == (ulonglong) HA_POS_ERROR)
thd->options|= OPTION_BIG_SELECTS; thd->options|= OPTION_BIG_SELECTS;
else else
thd->options&= ~OPTION_BIG_SELECTS; thd->options&= ~OPTION_BIG_SELECTS;
...@@ -769,7 +769,7 @@ bool sys_var_thd_ulonglong::update(THD *thd, set_var *var) ...@@ -769,7 +769,7 @@ bool sys_var_thd_ulonglong::update(THD *thd, set_var *var)
void sys_var_thd_ulonglong::set_default(THD *thd, enum_var_type type) void sys_var_thd_ulonglong::set_default(THD *thd, enum_var_type type)
{ {
if (type == OPT_GLOBAL) if (type == OPT_GLOBAL)
global_system_variables.*offset= (ulong) option_limits->def_value; global_system_variables.*offset= (ulonglong) option_limits->def_value;
else else
thd->variables.*offset= global_system_variables.*offset; thd->variables.*offset= global_system_variables.*offset;
} }
......
...@@ -203,6 +203,10 @@ public: ...@@ -203,6 +203,10 @@ public:
sys_var_thd_ulonglong(const char *name_arg, ulonglong SV::*offset_arg) sys_var_thd_ulonglong(const char *name_arg, ulonglong SV::*offset_arg)
:sys_var_thd(name_arg), offset(offset_arg) :sys_var_thd(name_arg), offset(offset_arg)
{} {}
sys_var_thd_ulonglong(const char *name_arg, ulonglong SV::*offset_arg,
sys_after_update_func func)
:sys_var_thd(name_arg,func), offset(offset_arg)
{}
bool update(THD *thd, set_var *var); bool update(THD *thd, set_var *var);
void set_default(THD *thd, enum_var_type type); void set_default(THD *thd, enum_var_type type);
SHOW_TYPE type() { return SHOW_LONGLONG; } SHOW_TYPE type() { return SHOW_LONGLONG; }
......
...@@ -341,13 +341,14 @@ struct system_variables ...@@ -341,13 +341,14 @@ struct system_variables
{ {
ulonglong myisam_max_extra_sort_file_size; ulonglong myisam_max_extra_sort_file_size;
ulonglong myisam_max_sort_file_size; ulonglong myisam_max_sort_file_size;
ulonglong select_limit;
ulonglong max_join_size;
ulong bulk_insert_buff_size; ulong bulk_insert_buff_size;
ulong join_buff_size; ulong join_buff_size;
ulong long_query_time; ulong long_query_time;
ulong max_allowed_packet; ulong max_allowed_packet;
ulong max_error_count; ulong max_error_count;
ulong max_heap_table_size; ulong max_heap_table_size;
ulong max_join_size;
ulong max_prep_stmt_count; ulong max_prep_stmt_count;
ulong max_sort_length; ulong max_sort_length;
ulong max_tmp_tables; ulong max_tmp_tables;
...@@ -361,7 +362,6 @@ struct system_variables ...@@ -361,7 +362,6 @@ struct system_variables
ulong query_cache_type; ulong query_cache_type;
ulong read_buff_size; ulong read_buff_size;
ulong read_rnd_buff_size; ulong read_rnd_buff_size;
ulong select_limit;
ulong sortbuff_size; ulong sortbuff_size;
ulong table_type; ulong table_type;
ulong tmp_table_size; ulong tmp_table_size;
......
...@@ -660,7 +660,7 @@ pthread_handler_decl(handle_one_connection,arg) ...@@ -660,7 +660,7 @@ pthread_handler_decl(handle_one_connection,arg)
goto end_thread; goto end_thread;
} }
if ((ulong) thd->variables.max_join_size == (ulong) HA_POS_ERROR) if ((ulong) thd->variables.max_join_size == (ulonglong) HA_POS_ERROR)
thd->options |= OPTION_BIG_SELECTS; thd->options |= OPTION_BIG_SELECTS;
if (thd->client_capabilities & CLIENT_COMPRESS) if (thd->client_capabilities & CLIENT_COMPRESS)
net->compress=1; // Use compression net->compress=1; // Use compression
...@@ -736,7 +736,7 @@ pthread_handler_decl(handle_bootstrap,arg) ...@@ -736,7 +736,7 @@ pthread_handler_decl(handle_bootstrap,arg)
#endif #endif
if ((ulong) thd->variables.max_join_size == (ulong) HA_POS_ERROR) if ((ulong) thd->variables.max_join_size == (ulonglong) HA_POS_ERROR)
thd->options |= OPTION_BIG_SELECTS; thd->options |= OPTION_BIG_SELECTS;
thd->proc_info=0; thd->proc_info=0;
...@@ -1373,10 +1373,11 @@ mysql_execute_command(THD *thd) ...@@ -1373,10 +1373,11 @@ mysql_execute_command(THD *thd)
break; // Error message is given break; // Error message is given
} }
unit->offset_limit_cnt= unit->global_parameters->offset_limit; unit->offset_limit_cnt= (ha_rows) unit->global_parameters->offset_limit;
unit->select_limit_cnt= unit->global_parameters->select_limit+ unit->select_limit_cnt= (ha_rows) (unit->global_parameters->select_limit+
unit->global_parameters->offset_limit; unit->global_parameters->offset_limit);
if (unit->select_limit_cnt < unit->global_parameters->select_limit) if (unit->select_limit_cnt <
(ha_rows) unit->global_parameters->select_limit)
unit->select_limit_cnt= HA_POS_ERROR; // no limit unit->select_limit_cnt= HA_POS_ERROR; // no limit
if (unit->select_limit_cnt == HA_POS_ERROR) if (unit->select_limit_cnt == HA_POS_ERROR)
select_lex->options&= ~OPTION_FOUND_ROWS; select_lex->options&= ~OPTION_FOUND_ROWS;
......
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