mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
add option default-week-format and variable default_week_format
(SCRUM) mysql-test/r/func_time.result: result of test default_week_format mysql-test/t/func_time.test: test of default_week_format sql/mysqld.cc: add option default-week-format sql/set_var.cc: add system variable default_week_format sql/sql_class.h: add default_week_format into structure system_variables sql/sql_yacc.yy: change lex of week() with one parameter
This commit is contained in:
@ -96,6 +96,11 @@ week(19981231,2) week(19981231,3) week(20000101,2) week(20000101,3)
|
|||||||
select week(20001231,2),week(20001231,3);
|
select week(20001231,2),week(20001231,3);
|
||||||
week(20001231,2) week(20001231,3)
|
week(20001231,2) week(20001231,3)
|
||||||
1 52
|
1 52
|
||||||
|
set default_week_format = 2;
|
||||||
|
select week(20001231),week(20001231,2),week(20001231,0);
|
||||||
|
week(20001231) week(20001231,2) week(20001231,0)
|
||||||
|
1 1 53
|
||||||
|
set default_week_format = 0;
|
||||||
select date_format('1998-12-31','%x-%v'),date_format('1999-01-01','%x-%v');
|
select date_format('1998-12-31','%x-%v'),date_format('1999-01-01','%x-%v');
|
||||||
date_format('1998-12-31','%x-%v') date_format('1999-01-01','%x-%v')
|
date_format('1998-12-31','%x-%v') date_format('1999-01-01','%x-%v')
|
||||||
1998-53 1998-53
|
1998-53 1998-53
|
||||||
|
@ -41,6 +41,10 @@ select yearweek("2000-01-06",1) as '2000', yearweek("2001-01-06",1) as '2001', y
|
|||||||
select week(19981231,2), week(19981231,3), week(20000101,2), week(20000101,3);
|
select week(19981231,2), week(19981231,3), week(20000101,2), week(20000101,3);
|
||||||
select week(20001231,2),week(20001231,3);
|
select week(20001231,2),week(20001231,3);
|
||||||
|
|
||||||
|
set default_week_format = 2;
|
||||||
|
select week(20001231),week(20001231,2),week(20001231,0);
|
||||||
|
set default_week_format = 0;
|
||||||
|
|
||||||
select date_format('1998-12-31','%x-%v'),date_format('1999-01-01','%x-%v');
|
select date_format('1998-12-31','%x-%v'),date_format('1999-01-01','%x-%v');
|
||||||
select date_format('1999-12-31','%x-%v'),date_format('2000-01-01','%x-%v');
|
select date_format('1999-12-31','%x-%v'),date_format('2000-01-01','%x-%v');
|
||||||
|
|
||||||
|
@ -3465,7 +3465,8 @@ enum options
|
|||||||
OPT_ERROR_LOG_FILE,
|
OPT_ERROR_LOG_FILE,
|
||||||
OPT_ENABLE_SHARED_MEMORY,
|
OPT_ENABLE_SHARED_MEMORY,
|
||||||
OPT_SHARED_MEMORY_BASE_NAME,
|
OPT_SHARED_MEMORY_BASE_NAME,
|
||||||
OPT_OLD_PASSWORDS
|
OPT_OLD_PASSWORDS,
|
||||||
|
OPT_DEFAULT_WEEK_FORMAT
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -4282,6 +4283,11 @@ struct my_option my_long_options[] =
|
|||||||
(gptr*) &global_system_variables.net_wait_timeout,
|
(gptr*) &global_system_variables.net_wait_timeout,
|
||||||
(gptr*) &max_system_variables.net_wait_timeout, 0, GET_ULONG,
|
(gptr*) &max_system_variables.net_wait_timeout, 0, GET_ULONG,
|
||||||
REQUIRED_ARG, NET_WAIT_TIMEOUT, 1, LONG_TIMEOUT, 0, 1, 0},
|
REQUIRED_ARG, NET_WAIT_TIMEOUT, 1, LONG_TIMEOUT, 0, 1, 0},
|
||||||
|
{ "default-week-format", OPT_DEFAULT_WEEK_FORMAT,
|
||||||
|
"The default week format used by WEEK() functions.",
|
||||||
|
(gptr*) &global_system_variables.default_week_format,
|
||||||
|
(gptr*) &max_system_variables.default_week_format,
|
||||||
|
0, GET_ULONG, REQUIRED_ARG, 0, 0, 3L, 0, 1, 0},
|
||||||
{0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
|
{0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -311,6 +311,8 @@ static sys_var_slave_skip_counter sys_slave_skip_counter("sql_slave_skip_counter
|
|||||||
static sys_var_rand_seed1 sys_rand_seed1("rand_seed1");
|
static sys_var_rand_seed1 sys_rand_seed1("rand_seed1");
|
||||||
static sys_var_rand_seed2 sys_rand_seed2("rand_seed2");
|
static sys_var_rand_seed2 sys_rand_seed2("rand_seed2");
|
||||||
|
|
||||||
|
static sys_var_thd_ulong sys_default_week_format("default_week_format",
|
||||||
|
&SV::default_week_format);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
List of all variables for initialisation and storage in hash
|
List of all variables for initialisation and storage in hash
|
||||||
@ -332,6 +334,7 @@ sys_var *sys_variables[]=
|
|||||||
&sys_concurrent_insert,
|
&sys_concurrent_insert,
|
||||||
&sys_connect_timeout,
|
&sys_connect_timeout,
|
||||||
&sys_convert_charset,
|
&sys_convert_charset,
|
||||||
|
&sys_default_week_format,
|
||||||
&sys_delay_key_write,
|
&sys_delay_key_write,
|
||||||
&sys_delayed_insert_limit,
|
&sys_delayed_insert_limit,
|
||||||
&sys_delayed_insert_timeout,
|
&sys_delayed_insert_timeout,
|
||||||
@ -438,6 +441,7 @@ struct show_var_st init_vars[]= {
|
|||||||
{sys_connect_timeout.name, (char*) &sys_connect_timeout, SHOW_SYS},
|
{sys_connect_timeout.name, (char*) &sys_connect_timeout, SHOW_SYS},
|
||||||
{sys_convert_charset.name, (char*) &sys_convert_charset, SHOW_SYS},
|
{sys_convert_charset.name, (char*) &sys_convert_charset, SHOW_SYS},
|
||||||
{"datadir", mysql_real_data_home, SHOW_CHAR},
|
{"datadir", mysql_real_data_home, SHOW_CHAR},
|
||||||
|
{"default_week_format", (char*) &sys_default_week_format, SHOW_SYS},
|
||||||
{sys_delay_key_write.name, (char*) &sys_delay_key_write, SHOW_SYS},
|
{sys_delay_key_write.name, (char*) &sys_delay_key_write, SHOW_SYS},
|
||||||
{sys_delayed_insert_limit.name, (char*) &sys_delayed_insert_limit,SHOW_SYS},
|
{sys_delayed_insert_limit.name, (char*) &sys_delayed_insert_limit,SHOW_SYS},
|
||||||
{sys_delayed_insert_timeout.name, (char*) &sys_delayed_insert_timeout, SHOW_SYS},
|
{sys_delayed_insert_timeout.name, (char*) &sys_delayed_insert_timeout, SHOW_SYS},
|
||||||
|
@ -391,6 +391,7 @@ struct system_variables
|
|||||||
ulong tmp_table_size;
|
ulong tmp_table_size;
|
||||||
ulong tx_isolation;
|
ulong tx_isolation;
|
||||||
ulong sql_mode;
|
ulong sql_mode;
|
||||||
|
ulong default_week_format;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
In slave thread we need to know in behalf of which
|
In slave thread we need to know in behalf of which
|
||||||
|
@ -2421,7 +2421,10 @@ simple_expr:
|
|||||||
| USER '(' ')'
|
| USER '(' ')'
|
||||||
{ $$= new Item_func_user(); Lex->safe_to_cache_query=0; }
|
{ $$= new Item_func_user(); Lex->safe_to_cache_query=0; }
|
||||||
| WEEK_SYM '(' expr ')'
|
| WEEK_SYM '(' expr ')'
|
||||||
{ $$= new Item_func_week($3,new Item_int((char*) "0",0,1)); }
|
{
|
||||||
|
$$= new Item_func_week($3,new Item_int((char*) "0",
|
||||||
|
YYTHD->variables.default_week_format,1));
|
||||||
|
}
|
||||||
| WEEK_SYM '(' expr ',' expr ')'
|
| WEEK_SYM '(' expr ',' expr ')'
|
||||||
{ $$= new Item_func_week($3,$5); }
|
{ $$= new Item_func_week($3,$5); }
|
||||||
| YEAR_SYM '(' expr ')'
|
| YEAR_SYM '(' expr ')'
|
||||||
|
Reference in New Issue
Block a user