summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <jimw@mysql.com>2005-08-01 17:54:57 -0700
committerunknown <jimw@mysql.com>2005-08-01 17:54:57 -0700
commitd083e4ac1b1450e99984dcf488cfd95cefaf78cb (patch)
treec2a4f1c838bccde279f578e1d54a016a0d377f51
parent8fc1e27fb7604b93358a15f26a0c849faa21a1ca (diff)
parentc679cb67bc8958a15dab68febf236ea1edeff5c5 (diff)
downloadmariadb-git-d083e4ac1b1450e99984dcf488cfd95cefaf78cb.tar.gz
Merge mysql.com:/home/jimw/my/mysql-4.1-clean
into mysql.com:/home/jimw/my/mysql-5.0-clean mysql-test/r/key_cache.result: Auto merged mysql-test/r/ps_1general.result: Auto merged mysql-test/r/variables.result: Auto merged mysql-test/r/func_math.result: Resolve conflicts mysql-test/r/user_var.result: Resolve conflicts mysql-test/t/func_math.test: Resolve conflicts mysql-test/t/user_var.test: Resolve conflicts sql/item_func.cc: Resolve conflicts sql/sql_parse.cc: Resolve conflicts
-rw-r--r--mysql-test/r/func_math.result3
-rw-r--r--mysql-test/r/key_cache.result6
-rw-r--r--mysql-test/r/ps_1general.result2
-rw-r--r--mysql-test/r/user_var.result24
-rw-r--r--mysql-test/r/variables.result12
-rw-r--r--mysql-test/t/func_math.test15
-rw-r--r--mysql-test/t/user_var.test21
-rw-r--r--sql/item_func.cc24
-rw-r--r--sql/sql_parse.cc26
9 files changed, 92 insertions, 41 deletions
diff --git a/mysql-test/r/func_math.result b/mysql-test/r/func_math.result
index b7188092b41..c84b26ce24e 100644
--- a/mysql-test/r/func_math.result
+++ b/mysql-test/r/func_math.result
@@ -152,3 +152,6 @@ ceil(0.09)
select ceil(0.000000000000000009);
ceil(0.000000000000000009)
1
+select abs(-2) * -2;
+abs(-2) * -2
+-4
diff --git a/mysql-test/r/key_cache.result b/mysql-test/r/key_cache.result
index 7c286ced58a..b3aa4c5061c 100644
--- a/mysql-test/r/key_cache.result
+++ b/mysql-test/r/key_cache.result
@@ -23,13 +23,13 @@ SELECT @@global.default.key_buffer_size;
@@global.default.key_buffer_size
16777216
SELECT @@global.default.`key_buffer_size`;
-@@global.default.key_buffer_size
+@@global.default.`key_buffer_size`
16777216
SELECT @@global.`default`.`key_buffer_size`;
-@@global.default.key_buffer_size
+@@global.`default`.`key_buffer_size`
16777216
SELECT @@`default`.key_buffer_size;
-@@default.key_buffer_size
+@@`default`.key_buffer_size
16777216
SELECT @@small.key_buffer_size;
@@small.key_buffer_size
diff --git a/mysql-test/r/ps_1general.result b/mysql-test/r/ps_1general.result
index f2d60ac5025..7fb1e1b4df4 100644
--- a/mysql-test/r/ps_1general.result
+++ b/mysql-test/r/ps_1general.result
@@ -349,7 +349,7 @@ execute stmt1 ;
ERROR 42S02: Unknown table 't5'
prepare stmt1 from ' SELECT @@version ' ;
execute stmt1 ;
-@@VERSION
+@@version
<version>
prepare stmt_do from ' do @var:= (1 in (select a from t1)) ' ;
prepare stmt_set from ' set @var= (1 in (select a from t1)) ' ;
diff --git a/mysql-test/r/user_var.result b/mysql-test/r/user_var.result
index df71c97033f..893e024719b 100644
--- a/mysql-test/r/user_var.result
+++ b/mysql-test/r/user_var.result
@@ -224,3 +224,27 @@ t1 CREATE TABLE `t1` (
`@first_var` longtext
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1;
+select @@local.max_allowed_packet;
+@@local.max_allowed_packet
+#
+select @@session.max_allowed_packet;
+@@session.max_allowed_packet
+#
+select @@global.max_allowed_packet;
+@@global.max_allowed_packet
+#
+select @@max_allowed_packet;
+@@max_allowed_packet
+#
+select @@Max_Allowed_Packet;
+@@Max_Allowed_Packet
+#
+select @@version;
+@@version
+#
+select @@global.version;
+@@global.version
+#
+select @@session.VERSION;
+@@session.VERSION
+#
diff --git a/mysql-test/r/variables.result b/mysql-test/r/variables.result
index 7307f911dbf..a7c96d89f0d 100644
--- a/mysql-test/r/variables.result
+++ b/mysql-test/r/variables.result
@@ -92,7 +92,7 @@ Variable_name Value
max_join_size HA_POS_ERROR
set @@max_join_size=1000, @@global.max_join_size=2000;
select @@local.max_join_size, @@global.max_join_size;
-@@session.max_join_size @@global.max_join_size
+@@local.max_join_size @@global.max_join_size
1000 2000
select @@identity, length(@@version)>0;
@@identity length(@@version)>0
@@ -428,23 +428,23 @@ Variable_name Value
myisam_max_sort_file_size MAX_FILE_SIZE
set global myisam_max_sort_file_size=default;
select @@global.max_user_connections,@@local.max_join_size;
-@@global.max_user_connections @@session.max_join_size
+@@global.max_user_connections @@local.max_join_size
100 200
set @svc=@@global.max_user_connections, @svj=@@local.max_join_size;
select @@global.max_user_connections,@@local.max_join_size;
-@@global.max_user_connections @@session.max_join_size
+@@global.max_user_connections @@local.max_join_size
100 200
set @@global.max_user_connections=111,@@local.max_join_size=222;
select @@global.max_user_connections,@@local.max_join_size;
-@@global.max_user_connections @@session.max_join_size
+@@global.max_user_connections @@local.max_join_size
111 222
set @@global.max_user_connections=@@local.max_join_size,@@local.max_join_size=@@global.max_user_connections;
select @@global.max_user_connections,@@local.max_join_size;
-@@global.max_user_connections @@session.max_join_size
+@@global.max_user_connections @@local.max_join_size
222 111
set @@global.max_user_connections=@svc, @@local.max_join_size=@svj;
select @@global.max_user_connections,@@local.max_join_size;
-@@global.max_user_connections @@session.max_join_size
+@@global.max_user_connections @@local.max_join_size
100 200
set @a=1, @b=2;
set @a=@b, @b=@a;
diff --git a/mysql-test/t/func_math.test b/mysql-test/t/func_math.test
index bc3a1cd239c..bf692325a6a 100644
--- a/mysql-test/t/func_math.test
+++ b/mysql-test/t/func_math.test
@@ -93,3 +93,18 @@ select round(150, 2);
select ceil(0.09);
select ceil(0.000000000000000009);
+#
+# Bug #9837: problem with round()
+#
+
+create table t1 select round(1, 6);
+show create table t1;
+select * from t1;
+drop table t1;
+
+#
+# Bug #11402: abs() forces rest of calculation to unsigned
+#
+select abs(-2) * -2;
+
+# End of 4.1 tests
diff --git a/mysql-test/t/user_var.test b/mysql-test/t/user_var.test
index 91372b67f5e..e3b5b4ef33e 100644
--- a/mysql-test/t/user_var.test
+++ b/mysql-test/t/user_var.test
@@ -121,6 +121,27 @@ set session @honk=99;
--error 1382
set one_shot @honk=99;
+#
+# Bug #10724 @@local not preserved in column name of select
+#
+# The value doesn't actually matter, we just care about the column name
+--replace_column 1 #
+select @@local.max_allowed_packet;
+--replace_column 1 #
+select @@session.max_allowed_packet;
+--replace_column 1 #
+select @@global.max_allowed_packet;
+--replace_column 1 #
+select @@max_allowed_packet;
+--replace_column 1 #
+select @@Max_Allowed_Packet;
+--replace_column 1 #
+select @@version;
+--replace_column 1 #
+select @@global.version;
+--replace_column 1 #
+select @@session.VERSION;
+
# End of 4.1 tests
#
diff --git a/sql/item_func.cc b/sql/item_func.cc
index d2fabf4167a..f0af5b82a87 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -1368,8 +1368,6 @@ my_decimal *Item_func_abs::decimal_op(my_decimal *decimal_value)
void Item_func_abs::fix_length_and_dec()
{
Item_func_num1::fix_length_and_dec();
- if (hybrid_type == INT_RESULT)
- unsigned_flag= 1;
}
@@ -4437,7 +4435,7 @@ Item *get_system_var(THD *thd, enum_var_type var_type, LEX_STRING name,
if (component.str == 0 &&
!my_strcasecmp(system_charset_info, name.str, "VERSION"))
- return new Item_string("@@VERSION", server_version,
+ return new Item_string(NULL, server_version,
(uint) strlen(server_version),
system_charset_info, DERIVATION_SYSCONST);
@@ -4464,28 +4462,10 @@ Item *get_system_var(THD *thd, enum_var_type var_type, LEX_STRING name,
}
thd->lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
- buff[0]='@';
- buff[1]='@';
- pos=buff+2;
- if (var_type == OPT_SESSION)
- pos=strmov(pos,"session.");
- else if (var_type == OPT_GLOBAL)
- pos=strmov(pos,"global.");
-
set_if_smaller(component_name->length, MAX_SYS_VAR_LENGTH);
- set_if_smaller(base_name->length, MAX_SYS_VAR_LENGTH);
-
- if (component_name->str)
- {
- memcpy(pos, component_name->str, component_name->length);
- pos+= component_name->length;
- *pos++= '.';
- }
- memcpy(pos, base_name->str, base_name->length);
- pos+= base_name->length;
return new Item_func_get_system_var(var, var_type, component_name,
- buff, pos - buff);
+ NULL, 0);
}
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index 1c220ccb9f3..f1950d36b23 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -193,7 +193,7 @@ static int get_or_create_user_conn(THD *thd, const char *user,
const char *host,
USER_RESOURCES *mqh)
{
- int return_val=0;
+ int return_val= 0;
uint temp_len, user_len;
char temp_user[USERNAME_LENGTH+HOSTNAME_LENGTH+2];
struct user_conn *uc;
@@ -201,7 +201,7 @@ static int get_or_create_user_conn(THD *thd, const char *user,
DBUG_ASSERT(user != 0);
DBUG_ASSERT(host != 0);
- user_len=strlen(user);
+ user_len= strlen(user);
temp_len= (strmov(strmov(temp_user, user)+1, host) - temp_user)+1;
(void) pthread_mutex_lock(&LOCK_user_conn);
if (!(uc = (struct user_conn *) hash_search(&hash_user_connections,
@@ -213,21 +213,21 @@ static int get_or_create_user_conn(THD *thd, const char *user,
MYF(MY_WME)))))
{
net_send_error(thd, 0, NullS); // Out of memory
- return_val=1;
+ return_val= 1;
goto end;
}
uc->user=(char*) (uc+1);
memcpy(uc->user,temp_user,temp_len+1);
uc->host= uc->user + user_len + 1;
- uc->len = temp_len;
+ uc->len= temp_len;
uc->connections= uc->questions= uc->updates= uc->conn_per_hour= 0;
- uc->user_resources=*mqh;
- uc->intime=thd->thr_create_time;
+ uc->user_resources= *mqh;
+ uc->intime= thd->thr_create_time;
if (my_hash_insert(&hash_user_connections, (byte*) uc))
{
my_free((char*) uc,0);
net_send_error(thd, 0, NullS); // Out of memory
- return_val=1;
+ return_val= 1;
goto end;
}
}
@@ -5305,6 +5305,8 @@ void create_select_for_variable(const char *var_name)
THD *thd;
LEX *lex;
LEX_STRING tmp, null_lex_string;
+ Item *var;
+ char buff[MAX_SYS_VAR_LENGTH*2+4+8], *end;
DBUG_ENTER("create_select_for_variable");
thd= current_thd;
@@ -5314,8 +5316,14 @@ void create_select_for_variable(const char *var_name)
tmp.str= (char*) var_name;
tmp.length=strlen(var_name);
bzero((char*) &null_lex_string.str, sizeof(null_lex_string));
- add_item_to_list(thd, get_system_var(thd, OPT_SESSION, tmp,
- null_lex_string));
+ /*
+ We set the name of Item to @@session.var_name because that then is used
+ as the column name in the output.
+ */
+ var= get_system_var(thd, OPT_SESSION, tmp, null_lex_string);
+ end= strxmov(buff, "@@session.", var_name, NullS);
+ var->set_name(buff, end-buff, system_charset_info);
+ add_item_to_list(thd, var);
DBUG_VOID_RETURN;
}