summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Docs/manual.texi5
-rw-r--r--client/mysqltest.c7
-rw-r--r--configure.in2
-rw-r--r--mysql-test/r/user_var.result6
-rw-r--r--mysql-test/t/kill.test19
-rw-r--r--mysql-test/t/user_var.test10
-rw-r--r--sql-bench/run-all-tests.sh3
-rw-r--r--sql/item_func.h2
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