summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkonstantin@mysql.com <>2004-02-06 15:23:41 +0300
committerkonstantin@mysql.com <>2004-02-06 15:23:41 +0300
commit2a4cfe8b4f09b97133893fa5423c4cf2ce589ade (patch)
tree7230fe81c62fa6a2bc488216ab3775d11795f3a5
parent650580698f7f473b1ccb5a520a17fc8b269c7c9f (diff)
parent2093624a732c5bec57db3460d2297356e07c4946 (diff)
downloadmariadb-git-2a4cfe8b4f09b97133893fa5423c4cf2ce589ade.tar.gz
merge 3.23 -> 4.0, 2003/02/06
-rw-r--r--.bzrignore26
-rw-r--r--COPYING.LIB (renamed from mysys/COPYING.LIB)0
-rw-r--r--mysql-test/r/alter_table.result8
-rw-r--r--mysql-test/r/func_math.result12
-rw-r--r--mysql-test/r/insert_select.result12
-rw-r--r--mysql-test/t/alter_table.test17
-rw-r--r--mysql-test/t/func_math.test11
-rw-r--r--mysql-test/t/insert_select.test29
-rw-r--r--sql/item_func.cc6
-rw-r--r--sql/sql_select.cc8
-rw-r--r--sql/sql_table.cc19
11 files changed, 125 insertions, 23 deletions
diff --git a/.bzrignore b/.bzrignore
index 356418e3617..79a4d5b1ffd 100644
--- a/.bzrignore
+++ b/.bzrignore
@@ -38,7 +38,11 @@ COPYING.LIB
Docs/#manual.texi#
Docs/INSTALL-BINARY
Docs/include.texi
+Docs/internals.html
Docs/internals.info
+Docs/internals.pdf
+Docs/internals.txt
+Docs/internals_toc.html
Docs/manual.aux
Docs/manual.cp
Docs/manual.cps
@@ -221,6 +225,7 @@ extra/replace
extra/resolve_stack_dump
extra/resolveip
gmon.out
+hardcopy.0
heap/hp_test1
heap/hp_test2
include/my_config.h
@@ -251,11 +256,13 @@ libmysql/conf_to_src
libmysql/my_static.h
libmysql/mysys_priv.h
libmysql/net.c
+libmysql/vio_priv.h
libmysql_r/*.c
libmysql_r/acconfig.h
libmysql_r/conf_to_src
libmysql_r/my_static.h
libmysql_r/mysys_priv.h
+libmysql_r/vio_priv.h
libmysqld/backup_dir
libmysqld/convert.cc
libmysqld/derror.cc
@@ -363,6 +370,7 @@ linked_libmysqldex_sources
linked_server_sources
linked_tools_sources
locked
+man/*.1
mit-pthreads/config.flags
mit-pthreads/include/bits
mit-pthreads/include/pthread/machdep.h
@@ -382,6 +390,7 @@ myisam/mi_test2
myisam/mi_test3
myisam/mi_test_all
myisam/myisam.log
+myisam/myisam_ftdump
myisam/myisamchk
myisam/myisamlog
myisam/myisampack
@@ -429,6 +438,8 @@ repl-tests/test-repl/sum-wlen-slave.master.
repl-tests/test-repl/sum-wlen-slave.master.re
repl-tests/test-repl/sum-wlen-slave.master.reje
scripts/make_binary_distribution
+scripts/make_sharedlib_distribution
+scripts/make_win_src_distribution
scripts/msql2mysql
scripts/mysql_config
scripts/mysql_convert_table_format
@@ -496,6 +507,7 @@ sql/share/norwegian/errmsg.sys
sql/sql_select.cc.orig
sql/sql_yacc.cc
sql/sql_yacc.h
+sql/udf_example.so
stamp-h
stamp-h.in
stamp-h1
@@ -504,6 +516,7 @@ strings/ctype_autoconf.c
strings/ctype_extra_sources.c
support-files/MacOSX/Description.plist
support-files/MacOSX/Info.plist
+support-files/MacOSX/ReadMe.txt
support-files/MacOSX/StartupParameters.plist
support-files/MacOSX/postinstall
support-files/MacOSX/preinstall
@@ -530,16 +543,3 @@ vio/test-ssl
vio/test-sslclient
vio/test-sslserver
vio/viotest-ssl
-support-files/MacOSX/ReadMe.txt
-Docs/internals.html
-Docs/internals.pdf
-Docs/internals.txt
-Docs/internals_toc.html
-scripts/make_win_src_distribution
-libmysql/vio_priv.h
-libmysql_r/vio_priv.h
-hardcopy.0
-scripts/make_sharedlib_distribution
-sql/udf_example.so
-man/*.1
-myisam/myisam_ftdump
diff --git a/mysys/COPYING.LIB b/COPYING.LIB
index eb685a5ec98..eb685a5ec98 100644
--- a/mysys/COPYING.LIB
+++ b/COPYING.LIB
diff --git a/mysql-test/r/alter_table.result b/mysql-test/r/alter_table.result
index 7ade3313abe..b32e100df55 100644
--- a/mysql-test/r/alter_table.result
+++ b/mysql-test/r/alter_table.result
@@ -350,3 +350,11 @@ t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
t1 1 Host 1 Host A NULL NULL NULL BTREE disabled
DROP TABLE t1;
+name
+current
+name
+mysqltest
+name
+current
+name
+mysqltest
diff --git a/mysql-test/r/func_math.result b/mysql-test/r/func_math.result
index d6596e51db4..e37862d0176 100644
--- a/mysql-test/r/func_math.result
+++ b/mysql-test/r/func_math.result
@@ -41,3 +41,15 @@ pi() sin(pi()/2) cos(pi()/2) abs(tan(pi())) cot(1) asin(1) acos(0) atan(1)
select degrees(pi()),radians(360);
degrees(pi()) radians(360)
180 6.2831853071796
+ACOS(1.0)
+0.000000
+ASIN(1.0)
+1.570796
+ACOS(0.2*5.0)
+0.000000
+ACOS(0.5*2.0)
+0.000000
+ASIN(0.8+0.2)
+1.570796
+ASIN(1.2-0.2)
+1.570796
diff --git a/mysql-test/r/insert_select.result b/mysql-test/r/insert_select.result
index 23cb7244f48..c5b98976fd6 100644
--- a/mysql-test/r/insert_select.result
+++ b/mysql-test/r/insert_select.result
@@ -592,3 +592,15 @@ CREATE TABLE t2 ( USID INTEGER UNSIGNED AUTO_INCREMENT, ServerID TINYINT UNSIGNE
INSERT INTO t1 VALUES (39,42,'Access-Granted','46','491721000045',2130706433,17690,NULL,NULL,'Localnet','491721000045','49172200000',754974766,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2003-07-18 00:11:21',NULL,NULL,20030718001121);
INSERT INTO t2 SELECT USID, ServerID, State, SessionID, User, NASAddr, NASPort, NASPortType, ConnectSpeed, CarrierType, CallingStationID, CalledStationID, AssignedAddr, SessionTime, PacketsIn, OctetsIn, PacketsOut, OctetsOut, TerminateCause, UnauthTime, AccessRequestTime, AcctStartTime, AcctLastTime, LastModification from t1 LIMIT 1;
drop table t1,t2;
+Month Type Field Count
+2003-09-01 1 1 100
+2003-09-01 1 2 100
+2003-09-01 2 1 100
+2003-09-01 2 2 100
+2003-09-01 3 1 100
+NULL Field Count
+NULL 1 100
+NULL 2 100
+No Field Count
+0 1 100
+0 2 100
diff --git a/mysql-test/t/alter_table.test b/mysql-test/t/alter_table.test
index d438f2d5825..1937cdbe985 100644
--- a/mysql-test/t/alter_table.test
+++ b/mysql-test/t/alter_table.test
@@ -204,3 +204,20 @@ LOCK TABLES t1 WRITE;
ALTER TABLE t1 DISABLE KEYS;
SHOW INDEX FROM t1;
DROP TABLE t1;
+#
+# Bug #2628: 'alter table t1 rename mysqltest.t1' silently drops mysqltest.t1
+# if it exists
+#
+create table t1 (name char(15));
+insert into t1 (name) values ("current");
+create database mysqltest;
+create table mysqltest.t1 (name char(15));
+insert into mysqltest.t1 (name) values ("mysqltest");
+select * from t1;
+select * from mysqltest.t1;
+--error 1050
+alter table t1 rename mysqltest.t1;
+select * from t1;
+select * from mysqltest.t1;
+drop table t1;
+drop database mysqltest;
diff --git a/mysql-test/t/func_math.test b/mysql-test/t/func_math.test
index bd125dafd53..2de692d4389 100644
--- a/mysql-test/t/func_math.test
+++ b/mysql-test/t/func_math.test
@@ -17,3 +17,14 @@ set @@rand_seed1=10000000,@@rand_seed2=1000000;
select rand(999999),rand();
select pi(),sin(pi()/2),cos(pi()/2),abs(tan(pi())),cot(1),asin(1),acos(0),atan(1);
select degrees(pi()),radians(360);
+
+#
+# Bug #2338 Trignometric arithmatic problems
+#
+
+SELECT ACOS(1.0);
+SELECT ASIN(1.0);
+SELECT ACOS(0.2*5.0);
+SELECT ACOS(0.5*2.0);
+SELECT ASIN(0.8+0.2);
+SELECT ASIN(1.2-0.2);
diff --git a/mysql-test/t/insert_select.test b/mysql-test/t/insert_select.test
index 5c63f3b3bb7..3a8118f7fff 100644
--- a/mysql-test/t/insert_select.test
+++ b/mysql-test/t/insert_select.test
@@ -132,3 +132,32 @@ CREATE TABLE t2 ( USID INTEGER UNSIGNED AUTO_INCREMENT, ServerID TINYINT UNSIGNE
INSERT INTO t1 VALUES (39,42,'Access-Granted','46','491721000045',2130706433,17690,NULL,NULL,'Localnet','491721000045','49172200000',754974766,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2003-07-18 00:11:21',NULL,NULL,20030718001121);
INSERT INTO t2 SELECT USID, ServerID, State, SessionID, User, NASAddr, NASPort, NASPortType, ConnectSpeed, CarrierType, CallingStationID, CalledStationID, AssignedAddr, SessionTime, PacketsIn, OctetsIn, PacketsOut, OctetsOut, TerminateCause, UnauthTime, AccessRequestTime, AcctStartTime, AcctLastTime, LastModification from t1 LIMIT 1;
drop table t1,t2;
+# Another problem from Bug #2012
+#
+
+CREATE TABLE t1(
+ Month date NOT NULL,
+ Type tinyint(3) unsigned NOT NULL auto_increment,
+ Field int(10) unsigned NOT NULL,
+ Count int(10) unsigned NOT NULL,
+ UNIQUE KEY Month (Month,Type,Field)
+);
+
+insert into t1 Values
+(20030901, 1, 1, 100),
+(20030901, 1, 2, 100),
+(20030901, 2, 1, 100),
+(20030901, 2, 2, 100),
+(20030901, 3, 1, 100);
+
+select * from t1;
+
+Select null, Field, Count From t1 Where Month=20030901 and Type=2;
+
+create table t2(No int not null, Field int not null, Count int not null);
+
+insert into t2 Select null, Field, Count From t1 Where Month=20030901 and Type=2;
+
+select * from t2;
+
+drop table t1, t2;
diff --git a/sql/item_func.cc b/sql/item_func.cc
index 64b1c5d4d8a..656dff63609 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -551,7 +551,8 @@ double Item_func_pow::val()
double Item_func_acos::val()
{
- double value=args[0]->val();
+ // the volatile's for BUG #2338 to calm optimizer down (because of gcc's bug)
+ volatile double value=args[0]->val();
if ((null_value=(args[0]->null_value || (value < -1.0 || value > 1.0))))
return 0.0;
return fix_result(acos(value));
@@ -559,7 +560,8 @@ double Item_func_acos::val()
double Item_func_asin::val()
{
- double value=args[0]->val();
+ // the volatile's for BUG #2338 to calm optimizer down (because of gcc's bug)
+ volatile double value=args[0]->val();
if ((null_value=(args[0]->null_value || (value < -1.0 || value > 1.0))))
return 0.0;
return fix_result(asin(value));
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 3e824ddc9f5..ae493c0cb16 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -2596,9 +2596,15 @@ store_val_in_field(Field *field,Item *item)
bool error;
THD *thd=current_thd;
ha_rows cuted_fields=thd->cuted_fields;
+ /*
+ we should restore old value of count_cuted_fields because
+ store_val_in_field can be called from mysql_insert
+ with select_insert, which make count_cuted_fields= 1
+ */
+ bool old_count_cuted_fields= thd->count_cuted_fields;
thd->count_cuted_fields=1;
error= item->save_in_field(field, 1);
- thd->count_cuted_fields=0;
+ thd->count_cuted_fields= old_count_cuted_fields;
return error || cuted_fields != thd->cuted_fields;
}
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index 774801c094a..9aa2180b5dd 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -1478,7 +1478,7 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
alias= (lower_case_table_names == 2) ? table_list->alias : table_name;
db=table_list->db;
- if (!new_db || !strcmp(new_db,db))
+ if (!new_db || !strcmp(new_db, db))
new_db=db;
used_fields=create_info->used_fields;
@@ -1490,8 +1490,6 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
if (new_name)
{
strmov(new_name_buff,new_name);
- strmov(new_alias= new_alias_buff, new_name);
- fn_same(new_name_buff,table_name,3);
if (lower_case_table_names)
{
if (lower_case_table_names != 2)
@@ -1501,11 +1499,18 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
}
casedn_str(new_name);
}
- if ((lower_case_table_names &&
- !my_strcasecmp(new_name_buff,table_name)) ||
- (!lower_case_table_names &&
+ if (new_db == db &&
+ (lower_case_table_names &&
+ !my_strcasecmp(new_name_buff,table_name) ||
+ !lower_case_table_names &&
!strcmp(new_name_buff,table_name)))
- new_alias= new_name= table_name; // No change. Make later check easier
+ {
+ /*
+ Source and destination table names are equal: make later check
+ easier.
+ */
+ new_alias= new_name= table_name;
+ }
else
{
if (table->tmp_table)