diff options
-rw-r--r-- | BitKeeper/etc/logging_ok | 5 | ||||
-rw-r--r-- | Docs/manual.texi | 107 | ||||
-rw-r--r-- | client/mysqltest.c | 7 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | include/mysql_com.h | 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 | ||||
-rw-r--r-- | sql/mysqld.cc | 8 |
11 files changed, 130 insertions, 41 deletions
diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index 6f6dc95a208..049e31bff81 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -1,11 +1,12 @@ heikki@donna.mysql.fi +jcole@abel.spaceapes.com jcole@tetra.spaceapes.com monty@donna.mysql.fi +monty@tik.mysql.fi mwagner@evoq.mwagner.org +paul@central.snake.net sasha@mysql.sashanet.com sasha@work.mysql.com serg@serg.mysql.com tim@threads.polyesthetic.msg tim@work.mysql.com -jcole@abel.spaceapes.com -paul@central.snake.net diff --git a/Docs/manual.texi b/Docs/manual.texi index 2e18d62c02b..a90a1b5e9d0 100644 --- a/Docs/manual.texi +++ b/Docs/manual.texi @@ -206,6 +206,8 @@ Types of Commercial Support * Extended email support:: Extended email support * Login support:: Login support * Extended login support:: Extended login support +* Telephone support:: Telephone support +* Table handler support:: Support for other table handlers Installing MySQL @@ -595,7 +597,7 @@ Replication in MySQL * Replication Options:: Replication Options in my.cnf * Replication SQL:: SQL Commands related to replication * Replication FAQ:: Frequently Asked Questions about replication -* Troubleshooting Replication:: Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication +* Troubleshooting Replication:: Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Getting Maximum Performance from MySQL @@ -2457,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. @@ -3700,18 +3705,18 @@ EURO (European Union Euro) so the prices will differ slightly. @multitable @columnfractions .3 .3 .3 @item @strong{Number of licenses} @tab @strong{Per copy} @tab @strong{Total} -@item 1 @tab US $200 @tab US $200 -@item 10 pack @tab US $150 @tab US $1500 -@item 50 pack @tab US $120 @tab US $6000 +@item 1 @tab 200 EURO @tab 200 EURO +@item 10 pack @tab 150 EURO @tab 1500 EURO +@item 50 pack @tab 120 EURO @tab 6000 EURO @end multitable For high volume (OEM) purchases, the following prices apply: @multitable @columnfractions .25 .2 .3 .25 @item @strong{Number of licenses} @tab @strong{Per copy} @tab @strong{Minimum } @tab @strong{Minimum payment} -@item 100-999 @tab US $40 @tab 100 @tab US $4000 -@item 1000-2499 @tab US $25 @tab 200 @tab US $5000 -@item 2500-4999 @tab US $20 @tab 400 @tab US $8000 +@item 100-999 @tab 40 EURO @tab 100 @tab 4000 EURO +@item 1000-2499 @tab 25 EURO @tab 200 @tab 5000 EURO +@item 2500-4999 @tab 20 EURO @tab 400 @tab 8000 EURO @end multitable For OEM purchases, you must act as the middle-man for eventual problems @@ -3740,14 +3745,15 @@ status instead of just fixing it in a later release. More comprehensive support is sold separately. Descriptions of what each level of support includes are given in @ref{Support}. Costs for the various types of commercial support are shown below. Support level prices are in -EURO (European Union Euro). One EURO is about 1.17 USD. +EURO (European Union Euro). One EURO is about 1.06 USD. @multitable @columnfractions .5 .5 @item @strong{Type of support} @tab @strong{Cost per year} -@item Basic e-mail support. @xref{Basic email support}. @tab EURO 170 +@item Basic e-mail support. @xref{Basic email support}. @tab EURO 200 @item Extended e-mail support @xref{Extended email support}. @tab EURO 1000 @item Login support @xref{Login support}. @tab EURO 2000 @item Extended login support @xref{Extended login support}. @tab EURO 5000 +@item Telephone support @xref{Telephone support}. @tab EURO 12000 @end multitable You may upgrade from any lower level of support to a higher level of @@ -3859,6 +3865,8 @@ please send e-mail to @email{webmaster@@mysql.com}. * Extended email support:: Extended email support * Login support:: Login support * Extended login support:: Extended login support +* Telephone support:: Telephone support +* Table handler support:: Support for other table handlers @end menu @cindex email, technical support @@ -4023,7 +4031,7 @@ before talking on phone, to be able to work as efficiently as possible on solving the problem. @end itemize -@node Extended login support, , Login support, Support +@node Extended login support, Telephone support, Login support, Support @subsection Extended Login Support Extended login support includes everything in login support with these @@ -4060,6 +4068,45 @@ without charge. For the hours above 8 hours, you will be charged with a rate that is at least 20 % less than our standard rates. @end itemize +@node Telephone support, Table handler support, Extended login support, Support +@subsection Telephone Support + +Telephone support includes everything in extended login support with +these additions: + +@itemize @bullet +@item +We will provide you with a dynamic web page showing the current list of +@code{MySQL} developers that you can phone when you have a critical +problem. +@item +For non critical problem, you can request a @strong{MySQL} developer to +phone back within 48 hours to discuss @code{MySQL} related issues. +@end itemize + +@cindex support, BDB Tables +@cindex support, INNOBASE Tables +@cindex support, GEMENI Tables +@node Table handler support, , Telephone support, Support +@subsection Support for other table handlers + +To get support for @code{BDB} tables, @code{INNOBASE} tables or +@code{GEMINI} tales you has to pay and additional 30 % on the basic +support price for each of the table handlers you want to get support on. +This extra cost is cover the back support cost for the other table +handlers. + +We at @code{MySQL AB} will help you create a proper bug report for the +table handler and submit it to the developers for to specific table +handler. We will also do our best to ensure that you will get a timely +answer/solution from the developers of the table handler. + +Even if we are quite confident that we can solve most problems within a +timely manner, we can't guarantee a quick solution for any problems you +can get with the different table handlers. We will however do our best +to help you get the problem solved. + + @node Installing, Compatibility, Licensing and Support, Top @chapter Installing MySQL @cindex installing, overview @@ -6176,11 +6223,8 @@ Once @strong{BitKeeper} is installed, if you want to clone 3.23 branch, @code{bk clone bk://work.mysql.com:7000 mysql}, and @code{bk clone bk://work.mysql.com:7001 mysql-4.0} for 4.0 branch -- the initial download -may take a while, depending on the speed of your connection. If you have the -most -recent beta version of @strong{BitKeeper}, replace @code{clone} with -@code{oclone}. +The initial download may take a while, depending on the speed of your +connection. @item You will need GNU autoconf/automake, libtool, and m4 to do the next stage. If you get some strange error during the first stage, check that you really @@ -6206,8 +6250,7 @@ you @code{./configure} with different values for @code{prefix}, @code{tcp-port}, and @code{unix-socket-path}. @item Play hard with your new installation and try to make the new features -crash. Start by running @code{make test}. Report bugs to @email{bugs@@lists.mysql.com}. As always, make -sure you have a full test case for the bug that we can run. +crash. Start by running @code{make test}. @xref{MySQL test suite}. @item If you have gotten to the @code{make} stage and it does not compile, please report it to @email{bugs@@lists.mysql.com}. If you have @@ -23387,8 +23430,9 @@ SUM_OVER_ALL_KEYS(max_length_of_key + sizeof(char*) * 2) @node BDB overview, BDB install, BDB, BDB @subsection Overview over BDB tables -BDB is included in the @strong{MySQL} source distribution starting -from 3.23.34 and will be activated in the @strong{MySQL}-max binary. +BDB tables are included in the @strong{MySQL} source distribution +starting from 3.23.34 and will be activated in the @strong{MySQL}-max +binary. Berkeley DB (@uref{http://www.sleepycat.com}) has provided @strong{MySQL} with a transaction-safe table handler. This will survive @@ -23680,8 +23724,9 @@ NuSphere is working on removing these limitations. @node INNOBASE overview, INNOBASE start, INNOBASE, INNOBASE @subsection INNOBASE Tables overview -Innobase is included in the @strong{MySQL} source distribution starting -from 3.23.34a and will be activated in the @strong{MySQL}-max binary. +Innobase tables are included in the @strong{MySQL} source distribution +starting from 3.23.34 and will be activated in the @strong{MySQL}-max +binary. If you have downloaded a binary version of @strong{MySQL} that includes support for Innobase, simply follow the instructions for @@ -26631,7 +26676,7 @@ tables}. * Replication Options:: Replication Options in my.cnf * Replication SQL:: SQL Commands related to replication * Replication FAQ:: Frequently Asked Questions about replication -* Troubleshooting Replication:: Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication +* Troubleshooting Replication:: Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. Troubleshooting Replication. @end menu @node Replication Intro, Replication Implementation, Replication, Replication @@ -42062,7 +42107,6 @@ users uses this code as the rest of the code and because of this we are not yet 100 % confident in this code. @menu - * News-3.23.35:: Changes in release 3.23.35 * News-3.23.34a:: Changes in release 3.23.34a * News-3.23.34:: Changes in release 3.23.34 @@ -42105,6 +42149,14 @@ not yet 100 % confident in this code. @node News-3.23.35, News-3.23.34a, News-3.23.x, News-3.23.x @appendixsubsec Changes in release 3.23.35 @itemize @bullet +@item +Fixed newly introduce bug in @code{ORDER BY}. +@item +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 @@ -42126,6 +42178,8 @@ Updated the documentation about @code{GEMINI} tables. Fixed thread-hang-bug in @code{INSERT DELAYED} when inserting @code{NULL} into an @code{AUTO_INCREMENT} column. @item +Fixed thread-hang bug in @code{CHECK TABLE} / @code{REPAIR TABLE}. +@item @code{REPLACE} will not replace a row that conflicts with an @code{auto_increment} generated key. @item @@ -46937,6 +46991,10 @@ in a database, it will take a long time to use the @code{mysql} client on the database if you are not using the @code{-A} option or if you are using @code{rehash}. This is especially notable when you have a big table cache. + +@item +Th current replication protocol cannot deal with @code{LOAD DATA INFILE} +and line terminator characters of more than 1 character. @end itemize The following problems are known and will be fixed in due time: @@ -47244,6 +47302,9 @@ at the same time. @item Change @code{INSERT ... SELECT} to use concurrent inserts. @item +Return the original field types() when doing @code{SELECT MIN(column) +... GROUP BY}. +@item Add range checking to @code{MERGE} tables. @item Port of @strong{MySQL} to BeOS. 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/include/mysql_com.h b/include/mysql_com.h index f03dc0bf96e..8a5eea1024c 100644 --- a/include/mysql_com.h +++ b/include/mysql_com.h @@ -90,7 +90,7 @@ enum enum_server_command {COM_SLEEP,COM_QUIT,COM_INIT_DB,COM_QUERY, #define CLIENT_INTERACTIVE 1024 /* This is an interactive client */ #define CLIENT_SSL 2048 /* Switch to SSL after handshake */ #define CLIENT_IGNORE_SIGPIPE 4096 /* IGNORE sigpipes */ -#define CLIENT_TRANSACTIONS 8196 /* Client knows about transactions */ +#define CLIENT_TRANSACTIONS 8192 /* Client knows about transactions */ #define SERVER_STATUS_IN_TRANS 1 /* Transaction has started */ #define SERVER_STATUS_AUTOCOMMIT 2 /* Server in auto_commit mode */ 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 diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 2f672c6f409..e85afd6b856 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -2717,12 +2717,12 @@ struct show_var_st init_vars[]= { {"have_ssl", (char*) &have_ssl, SHOW_HAVE}, {"init_file", (char*) &opt_init_file, SHOW_CHAR_PTR}, #ifdef HAVE_INNOBASE_DB - {"innobase_data_file_path", innobase_data_file_path, SHOW_CHAR}, - {"innobase_data_home_dir", innobase_data_home_dir, SHOW_CHAR}, + {"innobase_data_file_path", (char*) &innobase_data_file_path, SHOW_CHAR_PTR}, + {"innobase_data_home_dir", (char*) &innobase_data_home_dir, SHOW_CHAR_PTR}, {"innobase_flush_log_at_trx_commit", (char*) &innobase_flush_log_at_trx_commit, SHOW_MY_BOOL}, - {"innobase_log_arch_dir", innobase_log_arch_dir, SHOW_CHAR}, + {"innobase_log_arch_dir", (char*) &innobase_log_arch_dir, SHOW_CHAR_PTR}, {"innobase_log_archive", (char*) &innobase_log_archive, SHOW_MY_BOOL}, - {"innobase_log_group_home_dir", innobase_log_group_home_dir, SHOW_CHAR}, + {"innobase_log_group_home_dir", (char*) &innobase_log_group_home_dir, SHOW_CHAR_PTR}, #endif {"interactive_timeout", (char*) &net_interactive_timeout, SHOW_LONG}, {"join_buffer_size", (char*) &join_buff_size, SHOW_LONG}, |