diff options
-rw-r--r-- | Docs/manual.texi | 5 | ||||
-rw-r--r-- | client/mysqltest.c | 7 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | mysql-test/r/user_var.result | 6 | ||||
-rw-r--r-- | mysql-test/t/kill.test | 19 | ||||
-rw-r--r-- | mysql-test/t/user_var.test | 10 | ||||
-rw-r--r-- | sql-bench/run-all-tests.sh | 3 | ||||
-rw-r--r-- | sql/item_func.h | 2 |
8 files changed, 43 insertions, 11 deletions
diff --git a/Docs/manual.texi b/Docs/manual.texi index 8cb5f524028..48a291e4da7 100644 --- a/Docs/manual.texi +++ b/Docs/manual.texi @@ -2459,6 +2459,9 @@ A Windows GUI client by David Ecker. Kiosk; a @strong{MySQL} client for database management. Written in Perl. Will be a part of Bazaar. +@item @uref{http://www.casestudio.com/} +Db design tool that supports MySQL 3.23. + @item @uref{http://home.skif.net/~voland/zeos/eng/index.html}@* Zeos - A client that supports @strong{MySQL}, Interbase and PostgreSQL. @@ -42152,6 +42155,8 @@ Fixed newly introduce bug in @code{ORDER BY}. Fixed wrong define @code{CLIENT_TRANSACTIONS}. @item Fixed bug in @code{SHOW VARIABLES} when using INNOBASE tables. +@item +Setting and using user variables in @code{SELECT DISTINCT} didn't work. @end itemize @node News-3.23.34a, News-3.23.34, News-3.23.35, News-3.23.x diff --git a/client/mysqltest.c b/client/mysqltest.c index 9e50fb064cb..d38bf40a678 100644 --- a/client/mysqltest.c +++ b/client/mysqltest.c @@ -43,7 +43,7 @@ **********************************************************************/ -#define MTEST_VERSION "1.6" +#define MTEST_VERSION "1.7" #include <global.h> #include <my_sys.h> @@ -156,6 +156,7 @@ struct st_query Q_SYNC_WITH_MASTER, Q_ERROR, Q_SEND, Q_REAP, Q_DIRTY_CLOSE, Q_REPLACE, + Q_PING, Q_UNKNOWN, /* Unknown command. */ Q_COMMENT, /* Comments, ignored. */ Q_COMMENT_WITH_COMMAND @@ -174,6 +175,7 @@ const char *command_names[] = { "sync_with_master", "error", "send", "reap", "dirty_close", "replace_result", + "ping", 0 }; @@ -1662,6 +1664,9 @@ int main(int argc, char** argv) case Q_SYNC_WITH_MASTER: do_sync_with_master(q); break; case Q_COMMENT: /* Ignore row */ case Q_COMMENT_WITH_COMMAND: + case Q_PING: + (void) mysql_ping(&cur_con->mysql); + break; default: processed = 0; break; } } diff --git a/configure.in b/configure.in index 05392da9a61..6cacea83f36 100644 --- a/configure.in +++ b/configure.in @@ -4,7 +4,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(sql/mysqld.cc) AC_CANONICAL_SYSTEM # The Docs Makefile.am parses this line! -AM_INIT_AUTOMAKE(mysql, 3.23.34a) +AM_INIT_AUTOMAKE(mysql, 3.23.35) AM_CONFIG_HEADER(config.h) PROTOCOL_VERSION=10 diff --git a/mysql-test/r/user_var.result b/mysql-test/r/user_var.result index f1bfdf9116d..1be79d90cd6 100644 --- a/mysql-test/r/user_var.result +++ b/mysql-test/r/user_var.result @@ -1,2 +1,8 @@ @a - connection_id() 3 +i +1 +2 +i @vv1:=if(sv1.i,1,0) @vv2:=if(sv2.i,1,0) @vv3:=if(sv3.i,1,0) @vv1+@vv2+@vv3 +1 1 0 1 2 +2 1 0 0 1 diff --git a/mysql-test/t/kill.test b/mysql-test/t/kill.test index 19739c88673..0191461f73f 100644 --- a/mysql-test/t/kill.test +++ b/mysql-test/t/kill.test @@ -3,21 +3,24 @@ connect (con2, localhost, root,,test,0, mysql-master.sock); #remember id of con1 connection con1; -drop table if exists connection_kill; -create table connection_kill (kill_id int); -insert into connection_kill values(connection_id()); +drop table if exists t1; +create table t1 (kill_id int); +insert into t1 values(connection_id()); #kill con1 connection con2; -select ((@id := kill_id) - kill_id) from connection_kill; +select ((@id := kill_id) - kill_id) from t1; kill @id; -# verify that con1 is really dead +# Wait for thread to do. +--sleep 5 +# verify that con1 is doning a reconnect connection con1; -error 2013; -select 1; +ping +ping +select @id != connection_id(); #make sure the server is still alive connection con2; select 4; -drop table connection_kill; +drop table t1; diff --git a/mysql-test/t/user_var.test b/mysql-test/t/user_var.test index 711b23b7ac1..4cef5ea6ce9 100644 --- a/mysql-test/t/user_var.test +++ b/mysql-test/t/user_var.test @@ -3,3 +3,13 @@ set @a := foo; set @a := connection_id() + 3; select @a - connection_id(); +# Check using and setting variables with SELECT DISTINCT + +drop table if exists t1,t2; +CREATE TABLE t1 ( i int not null, v int not null,index (i)); +insert into t1 values (1,1),(1,3),(2,1); +create table t2 (i int not null, unique (i)); +insert into t2 select distinct i from t1; +select * from t2; +select distinct t2.i,@vv1:=if(sv1.i,1,0),@vv2:=if(sv2.i,1,0),@vv3:=if(sv3.i,1,0), @vv1+@vv2+@vv3 from t2 left join t1 as sv1 on sv1.i=t2.i and sv1.v=1 left join t1 as sv2 on sv2.i=t2.i and sv2.v=2 left join t1 as sv3 on sv3.i=t2.i and sv3.v=3; +drop table t1,t2; diff --git a/sql-bench/run-all-tests.sh b/sql-bench/run-all-tests.sh index 31d48c837df..c2f687a9375 100644 --- a/sql-bench/run-all-tests.sh +++ b/sql-bench/run-all-tests.sh @@ -37,6 +37,7 @@ use DBI; $opt_silent=1; # Don't write header +@ORG_ARGV=@ARGV; chomp($pwd = `pwd`); $pwd = "." if ($pwd eq ''); require "$pwd/bench-init.pl" || die "Can't read Configuration file: $!\n"; $opt_silent=0; @@ -46,7 +47,7 @@ $redirect= !($machine =~ /windows/i || $machine =~ "^NT\s") ? "2>&1" : ""; $dir= ($pwd =~ /\\/) ? '\\' : '/'; # directory symbol for shell $prog_args=""; -foreach $arg (@ARGV) +foreach $arg (@ORG_ARGV) { if ($redirect) { diff --git a/sql/item_func.h b/sql/item_func.h index 71eab66270e..595329d4bf4 100644 --- a/sql/item_func.h +++ b/sql/item_func.h @@ -835,6 +835,8 @@ public: void fix_length_and_dec(); enum Item_result result_type() const; const char *func_name() const { return "get_user_var"; } + bool const_item() const { return 0; } + table_map used_tables() const { return RAND_TABLE_BIT; } }; class Item_func_inet_aton : public Item_int_func |