Loading BitKeeper/etc/logging_ok +4 −1 Original line number Diff line number Diff line jcole@tetra.spaceapes.com monty@donna.mysql.com mwagner@work.mysql.com paul@central.snake.net sasha@mysql.sashanet.com sasha@work.mysql.com serg@donna.mysql.com tim@cane.mysql.fi monty@donna.mysql.com Docs/Makefile.am +2 −2 Original line number Diff line number Diff line Loading @@ -39,8 +39,8 @@ paper: manual_a4.ps manual_letter.ps $(PDFMANUAL) # The Makefile contains the previous version so we can not use that include.texi: ../configure.in echo -n "@c This file is autogenerated by the Makefile" > $@ echo -n "@set mysql_version " > $@ echo "@c This file is autogenerated by the Makefile" > $@ echo -n "@set mysql_version " >> $@ grep "AM_INIT_AUTOMAKE(mysql, " ../configure.in | \ sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;' >> $@ echo -n "@set default_port " >> $@ Loading Docs/Support/test-make-manual +68 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,54 @@ function die exit 1 } needed_flags=0 needed_texi2html=0 needed_texinfo_tex=0 needed_include_texi=0 if [ -e Flags/usa.txt ]; then echo "Good, Flags are there." else echo -n "Checking out Flags..." bk edit Flags >/dev/null 2>&1 echo " Done." needed_flags=1 fi if [ -e Support/texi2html ]; then echo "Good, texi2html is there." else echo -n "Checking out texi2html..." bk edit Support/texi2html >/dev/null 2>&1 echo " Done." needed_texi2html=1 fi if [ -e Support/texinfo.tex ]; then echo "Good, texinfo.tex is there." else echo -n "Checking out texinfo.tex..." bk edit Support/texinfo.tex >/dev/null 2>&1 echo " Done." needed_texinfo_tex=1 fi if [ -e include.texi ]; then echo "Good, include.texi is there." else echo -n "Creating include.texi..." bk edit ../configure.in >/dev/null 2>&1 echo "@c This file was generated by test-make-manual" > include.texi echo -n "@set mysql_version " >> include.texi grep "AM_INIT_AUTOMAKE(mysql, " ../configure.in | \ sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;' >> include.texi echo -n "@set default_port " >> include.texi grep "MYSQL_TCP_PORT_DEFAULT=" ../configure.in | \ sed -e 's;MYSQL_TCP_PORT_DEFAULT=;;' >> include.texi echo " Done." needed_include_texi=1 fi echo -n "Running makeinfo..." makeinfo --no-split -I . manual.texi Loading Loading @@ -36,6 +84,26 @@ else echo " Looks good." fi needed_flags=0 needed_texi2html=0 needed_texinfo_tex=0 needed_include_texi=0 if [ $needed_flags ]; then bk clean Flags fi if [ $needed_texi2html ]; then bk clean Support/texi2html fi if [ $needed_texinfo_tex ]; then bk clean Support/texinfo.tex fi if [ $needed_include_texi ]; then rm -f include.texi fi [ -z $BROWSER ] && BROWSER=netscape Loading Docs/manual.texi +52 −40 Original line number Diff line number Diff line Loading @@ -17998,6 +17998,12 @@ The different table types are: @end multitable @xref{Table types}. If a table type is specified, and that particular type is not available, @strong{MySQL} will choose the closest table type to the one that you have specified. For example, if @code{TYPE=BDB} is specified, and that distribution of @strong{MySQL} does not support @code{BDB} tables, the table will be created as @code{MyISAM} instead. The other table options are used to optimize the behavior of the table. In most cases, you don't have to specify any of them. The options work for all table types, if not otherwise indicated: Loading Loading @@ -40716,7 +40722,14 @@ Added missing @file{my_config.h} to RPM distribution. @item Added @code{--with-version-suffix} to configure. @item Added MASTER_POS_WAIT() Fixed coredump when client aborted connection without @code{mysql_close()}. @item Fixed bug in @code{RESTORE TABLE} when trying to restore from a non-existing directory. @item Fixed coredump on the slave replicating @code{SET PASSWORD}. @item Added @code{MASTER_POS_WAIT()}. @end itemize @node News-3.23.31, News-3.23.30, News-3.23.32, News-3.23.x Loading @@ -40724,19 +40737,19 @@ Added MASTER_POS_WAIT() @itemize @bullet @item The test suite now tests all reachable BDB interface code. During testing we found and fixed a lot of errors in the interface code. testing we found and fixed many errors in the interface code. @item Using @code{HAVING} on an empty table could produce one result row when it shouldn't. @item Fixed that the @strong{MySQL} RPM is not depending on perl5 anymore. Fixed that the @strong{MySQL} RPM is not dependent on Perl5 anymore. @item Fixed some problems with @code{HEAP} tables on windows. Fixed some problems with @code{HEAP} tables on Windows. @item @code{SHOW TABLE STATUS} didn't show correct average row length for tables bigger than 4G. larger than 4G. @item @code{CHECK TABLE .. EXTENED} didn't check row links for fixed size tables. @code{CHECK TABLE ... EXTENDED} didn't check row links for fixed size tables. @item Added option @code{MEDIUM} to @code{CHECK TABLE}. @item Loading @@ -40753,19 +40766,19 @@ Fixed buffer overflow bug when writing a certain error message. Added usage of @code{getrlimit()} on Linux to get @code{-O --open-files-limit=#} to work on Linux. @item Added new mysqld variable: bdb_version. Added new @code{mysqld} variable: @code{bdb_version}. @item Fixed bug when using expression of type @code{SELECT ... FROM t1 left join t2 on (t1.a=t2.a) WHERE t1.a=t2.a}. In this @code{SELECT ... FROM t1 LEFT JOIN t2 ON (t1.a=t2.a) WHERE t1.a=t2.a}. In this case the test in the @code{WHERE} clause was wrongly optimized away. @item Fixed bug in @code{MyISAM} when deleting keys with possible @code{NULL} values, but the first key-column was not a prefix-compressed text column. @item Fixed that @code{mysql.server} reads the @code{mysql.server} option section Fixed @code{mysql.server} to read the @code{mysql.server} option section instead of @code{mysql_server}. @item Fixed that @code{safe_mysqld} and @code{mysql.server} also reads the Fixed @code{safe_mysqld} and @code{mysql.server} to also read the @code{server} option section. @item Added @code{Threads_created} status variable to @code{mysqld}. Loading @@ -40775,36 +40788,36 @@ Added @code{Threads_created} status variable to @code{mysqld}. @appendixsubsec Changes in release 3.23.30 @itemize @bullet @item Fixed that @code{myisamdump} works against old mysqld servers. Fixed that @code{myisamdump} works against old @code{mysqld} servers. @item Fixed that @code{myisamchk -k#} works again. Fixed @code{myisamchk -k#} so that it works again. @item Fixed a problem with replication when the binary log file went over 2G on 32 bit systems. on 32-bit systems. @item @code{LOCK TABLES} will now automaticly start a new transaction. @code{LOCK TABLES} will now automatically start a new transaction. @item Changed BDB tables to not use internal subtransactions and reuse open files to get more speed. @item Added option @code{--mysqld=#} to @code{safe_mysqld} Added option @code{--mysqld=#} to @code{safe_mysqld}. @item Allow hex constants in the @code{--fields-*-by} and @code{--lines-terminated-by} options to @code{mysqldump} and @code{mysqlimport}. By Paul DuBois. @item Added option @code{--safe-show-databases}. Added option @code{--safe-show-database} to @code{mysqld}. @item Added @code{have_bdb}, @code{have_gemini}, @code{have_innobase}, @code{have_raid} and @code{have_ssl} to @code{SHOW VARIABLES} to make it easy to test for supported extensions. @item Added option @code{open-files-limit} to @code{mysqld}. Added option @code{--open-files-limit} to @code{mysqld}. @item Changed option @code{open-files} to @code{open-files-limit} in Changed option @code{--open-files} to @code{--open-files-limit} in @code{safe_mysqld}. @item Item fixed a bug where some rows where not found with @code{HEAP} tables Fixed a bug where some rows were not found with @code{HEAP} tables that had many keys. @item Fixed that @code{--bdb-no-sync} works. Loading Loading @@ -40856,7 +40869,7 @@ specified all key parts both in the update and the @code{WHERE} part. In this case @strong{MySQL} could try to update a record that didn't match the whole @code{WHERE} part. @item Changed drop table to first drop the tables and then the @code{.frm} file. Changed drop table to first drop the tables and then the @file{.frm} file. @item Fixed a bug in the hostname cache which caused @code{mysqld} to report the hostname as @code{''} in some error messages. Loading @@ -40871,11 +40884,11 @@ to make it easier to use the binary log. @item Renamed variable @code{bdb_lock_max} to @code{bdb_max_lock}. @item Added support for @code{auto_increment} on sub fields for BDB tables. Added support for @code{auto_increment} on sub-fields for BDB tables. @item Added @code{ANALYZE} of BDB tables. @item Store in BDB tables the number of rows; This helps to optimize queries In BDB tables, we now store the number of rows; This helps to optimize queries when we need an approximation of the number of rows. @item If we get an error in a multi-row statement, we now only rollback the Loading Loading @@ -40911,7 +40924,7 @@ slave server restart. @item @code{SHOW KEYS} now shows whether or not key is @code{FULLTEXT}. @item New script @code{mysqld_multi}. @xref{mysqld_multi}. New script @file{mysqld_multi}. @xref{mysqld_multi}. @item Added new script, @file{mysql-multi.server.sh}. Thanks to Tim Bunce @email{Tim.Bunce@@ig.co.uk} for modifying @file{mysql.server} to Loading @@ -40933,12 +40946,12 @@ Added a warning if number of rows changes on @code{REPAIR}/@code{OPTIMIZE}. Applied patches for OS/2 by @code{Yuri Dario}. @item @code{FLUSH TABLES table_name} didn't always flush the index tree properly to disk. to disk properly. @item @code{--bootstrap} is now run in a separate thread. This fixes the problem that @code{mysql_install_db} core dumped on some Linux machines. @code{--bootstrap} is now run in a separate thread. This fixes a problem that caused @code{mysql_install_db} to core dump on some Linux machines. @item Changed @code{mi_create()} to use less stack. Changed @code{mi_create()} to use less stack space. @item Fixed bug with optimizer trying to over-optimize @code{MATCH} when used with @code{UNIQUE} key. Loading Loading @@ -40972,10 +40985,10 @@ Fixed crash when automatic repair of @code{MyISAM} table failed. Fixed a major performance bug in the table locking code when one constantly had a LOT of @code{SELECT}, @code{UPDATE} and @code{INSERT} statements running. The symptom was that the @code{UPDATE} and @code{INSERT} queries was locked a long time while new @code{SELECT} statements where executed before the updates. @code{INSERT} queries were locked for a long time while new @code{SELECT} statements were executed before the updates. @item When reading options_files with @code{mysql_options()} the When reading @code{options_files} with @code{mysql_options()} the @code{return-found-rows} option was ignored. @item One can now specify @code{interactive-timeout} in the option file that Loading @@ -40985,7 +40998,7 @@ programs that run for a long time (like @code{mysqlhotcopy}) to use @item Added to the slow query log the time and the user name for each logged query. If you are using @code{--log-long-format} then also queries that are not using indexes are logged, even the query takes less than do not use an index are logged, even if the query takes less than @code{long_query_time} seconds. @item Fixed a problem in @code{LEFT JOIN} which caused all columns in a reference Loading @@ -41006,16 +41019,16 @@ the compiler submitted with RedHat 7.0. (Reported by Trond Eivind Glomsr @item The option @code{--skip-networking} now works properly on NT. @item Fixed long outstanding bug in the @code{ISAM} tables when a row with a length Fixed a long outstanding bug in the @code{ISAM} tables when a row with a length of more than 65K was shortened by a single byte. @item Fixed bug in @code{MyISAM} when running multiple updating processes on Fixed a bug in @code{MyISAM} when running multiple updating processes on the same table. @item Allow one to use @code{FLUSH TABLE tablename}. @item Added @code{--replicate-ignore-table}, @code{--replicate-do-table}, @code{--replicate-wild-ignore-table}, @code{--replicate-wild-do-table} @code{--replicate-wild-ignore-table}, @code{--replicate-wild-do-table}. @item Changed all log files to use our own @code{IO_CACHE} mechanism instead of @code{FILE} to avoid OS problems when there are many files open. Loading Loading @@ -41050,8 +41063,7 @@ Fixed an overflow bug in the client code when using overly long database names. @code{timeout} seconds. @item @code{SLAVE START} did not work if you started with @code{--skip-slave-start} and had not explicitly run @code{CHANGE MASTER TO}. @code{--skip-slave-start} and had not explicitly run @code{CHANGE MASTER TO}. @item Fixed the output of @code{SHOW MASTER STATUS} to be consistent with @code{SHOW SLAVE STATUS}. (It now has no directory in the log name.) Loading @@ -41065,7 +41077,7 @@ shortage when compiled @code{--with-debug=full}. @item Fixed several coredumps in out-of-memory conditions. @item @code{SHOW SLAVE STATUS} was using an unititialized mutex if the slave had @code{SHOW SLAVE STATUS} was using an uninitialized mutex if the slave had not been started yet. @item Fixed bug in @code{ELT()} and @code{MAKE_SET()} when the query used Loading Loading @@ -41174,7 +41186,7 @@ on a patch from John Jones. @appendixsubsec Changes in release 3.23.25 @itemize @bullet @item Fixed that databasename works as second argument to @code{mysqlhotcopy}. Fixed that @code{databasename} works as second argument to @code{mysqlhotcopy}. @item @code{UMASK} and @code{UMASK_DIR} can now be specified in octal. @item Loading Loading @@ -41930,8 +41942,6 @@ Fixed optimization bug in @code{SELECT ... LEFT JOIN ... key_column IS NULL}, when @code{key_column} could contain @code{NULL} values. @item Fixed problem with 8-bit characters as separators in @code{LOAD DATA INFILE}. @item @end itemize @node News-3.23.8, News-3.23.7, News-3.23.9, News-3.23.x Loading Loading @@ -42181,6 +42191,7 @@ Some configure issues to fix problems with big file system detection. @appendixsubsec Changes in release 3.23.3 @itemize @bullet @item Added patches for MIT-pthreads on NetBSD. @item Fixed range bug in MyISAM. Loading Loading @@ -42295,6 +42306,7 @@ Fixed some compilation problems. @appendixsubsec Changes in release 3.23.0 @itemize @bullet @item A new table handler library (@code{MyISAM}) with a lot of new features. @xref{MyISAM}. @item client/mysqltest.c +38 −7 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ #include <sys/stat.h> #include <unistd.h> #include <errno.h> #include <violite.h> #define MAX_QUERY 65536 #define PAD_SIZE 128 Loading @@ -71,6 +72,8 @@ #define MIN_VAR_ALLOC 32 #define BLOCK_STACK_DEPTH 32 #define MAX_EXPECTED_ERRORS 10 #define QUERY_SEND 1 #define QUERY_REAP 2 static int record = 0, verbose = 0, silent = 0, opt_sleep=0; static char *db = 0, *pass=0; Loading Loading @@ -147,14 +150,14 @@ struct st_query Q_SLEEP, Q_INC, Q_DEC,Q_SOURCE, Q_DISCONNECT,Q_LET, Q_ECHO, Q_WHILE, Q_END_BLOCK, Q_SYSTEM, Q_RESULT, Q_REQUIRE, Q_SAVE_MASTER_POS, Q_SYNC_WITH_MASTER, Q_ERROR, Q_SYNC_WITH_MASTER, Q_ERROR, Q_SEND, Q_REAP, Q_DIRTY_CLOSE, Q_UNKNOWN, Q_COMMENT, Q_COMMENT_WITH_COMMAND} type; }; const char *command_names[] = { "connection", "query","connect","sleep","inc","dec","source","disconnect", "let","echo","while","end","system","result", "require", "save_master_pos", "sync_with_master", "error", 0 "sync_with_master", "error", "send", "reap", "dirty_close", 0 }; TYPELIB command_typelib= {array_elements(command_names),"", Loading Loading @@ -661,6 +664,15 @@ int close_connection(struct st_query* q) { if (!strcmp(con->name, name)) { if(q->type == Q_DIRTY_CLOSE) { if(con->mysql.net.vio) { vio_delete(con->mysql.net.vio); con->mysql.net.vio = 0; } } mysql_close(&con->mysql); DBUG_RETURN(0); } Loading Loading @@ -1211,7 +1223,7 @@ void reject_dump(const char* record_file, char* buf, int size) } int run_query(MYSQL* mysql, struct st_query* q) int run_query(MYSQL* mysql, struct st_query* q, int flags) { MYSQL_RES* res = 0; MYSQL_FIELD* fields; Loading @@ -1220,6 +1232,7 @@ int run_query(MYSQL* mysql, struct st_query* q) unsigned long* lengths; char* val; int len; int q_error = 0 ; DYNAMIC_STRING *ds; DYNAMIC_STRING ds_tmp; DBUG_ENTER("run_query"); Loading @@ -1232,7 +1245,13 @@ int run_query(MYSQL* mysql, struct st_query* q) else ds= &ds_res; if (mysql_query(mysql, q->query)) if((flags & QUERY_SEND) && (q_error = mysql_send_query(mysql, q->query))) die("At line %u: unable to send query '%s'", start_lineno, q->query); if(!(flags & QUERY_REAP)) return 0; if (mysql_reap_query(mysql)) { if (q->require_file) abort_not_supported_test(); Loading Loading @@ -1416,7 +1435,9 @@ int main(int argc, char** argv) switch (q->type) { case Q_CONNECT: do_connect(q); break; case Q_CONNECTION: select_connection(q); break; case Q_DISCONNECT: close_connection(q); break; case Q_DISCONNECT: case Q_DIRTY_CLOSE: close_connection(q); break; case Q_SOURCE: do_source(q); break; case Q_SLEEP: do_sleep(q); break; case Q_INC: do_inc(q); break; Loading @@ -1425,15 +1446,25 @@ int main(int argc, char** argv) case Q_SYSTEM: do_system(q); break; case Q_LET: do_let(q); break; case Q_QUERY: case Q_REAP: { int flags = QUERY_REAP; if(q->type == Q_QUERY) flags |= QUERY_SEND; if (save_file[0]) { strmov(q->record_file,save_file); q->require_file=require_file; save_file[0]=0; } error |= run_query(&cur_con->mysql, q); break; error |= run_query(&cur_con->mysql, q, QUERY_SEND|QUERY_REAP); break; } case Q_SEND: q->query += q->first_word_len; error |= run_query(&cur_con->mysql, q, QUERY_SEND); break; case Q_RESULT: get_file_name(save_file,q); require_file=0; Loading Loading
BitKeeper/etc/logging_ok +4 −1 Original line number Diff line number Diff line jcole@tetra.spaceapes.com monty@donna.mysql.com mwagner@work.mysql.com paul@central.snake.net sasha@mysql.sashanet.com sasha@work.mysql.com serg@donna.mysql.com tim@cane.mysql.fi monty@donna.mysql.com
Docs/Makefile.am +2 −2 Original line number Diff line number Diff line Loading @@ -39,8 +39,8 @@ paper: manual_a4.ps manual_letter.ps $(PDFMANUAL) # The Makefile contains the previous version so we can not use that include.texi: ../configure.in echo -n "@c This file is autogenerated by the Makefile" > $@ echo -n "@set mysql_version " > $@ echo "@c This file is autogenerated by the Makefile" > $@ echo -n "@set mysql_version " >> $@ grep "AM_INIT_AUTOMAKE(mysql, " ../configure.in | \ sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;' >> $@ echo -n "@set default_port " >> $@ Loading
Docs/Support/test-make-manual +68 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,54 @@ function die exit 1 } needed_flags=0 needed_texi2html=0 needed_texinfo_tex=0 needed_include_texi=0 if [ -e Flags/usa.txt ]; then echo "Good, Flags are there." else echo -n "Checking out Flags..." bk edit Flags >/dev/null 2>&1 echo " Done." needed_flags=1 fi if [ -e Support/texi2html ]; then echo "Good, texi2html is there." else echo -n "Checking out texi2html..." bk edit Support/texi2html >/dev/null 2>&1 echo " Done." needed_texi2html=1 fi if [ -e Support/texinfo.tex ]; then echo "Good, texinfo.tex is there." else echo -n "Checking out texinfo.tex..." bk edit Support/texinfo.tex >/dev/null 2>&1 echo " Done." needed_texinfo_tex=1 fi if [ -e include.texi ]; then echo "Good, include.texi is there." else echo -n "Creating include.texi..." bk edit ../configure.in >/dev/null 2>&1 echo "@c This file was generated by test-make-manual" > include.texi echo -n "@set mysql_version " >> include.texi grep "AM_INIT_AUTOMAKE(mysql, " ../configure.in | \ sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;' >> include.texi echo -n "@set default_port " >> include.texi grep "MYSQL_TCP_PORT_DEFAULT=" ../configure.in | \ sed -e 's;MYSQL_TCP_PORT_DEFAULT=;;' >> include.texi echo " Done." needed_include_texi=1 fi echo -n "Running makeinfo..." makeinfo --no-split -I . manual.texi Loading Loading @@ -36,6 +84,26 @@ else echo " Looks good." fi needed_flags=0 needed_texi2html=0 needed_texinfo_tex=0 needed_include_texi=0 if [ $needed_flags ]; then bk clean Flags fi if [ $needed_texi2html ]; then bk clean Support/texi2html fi if [ $needed_texinfo_tex ]; then bk clean Support/texinfo.tex fi if [ $needed_include_texi ]; then rm -f include.texi fi [ -z $BROWSER ] && BROWSER=netscape Loading
Docs/manual.texi +52 −40 Original line number Diff line number Diff line Loading @@ -17998,6 +17998,12 @@ The different table types are: @end multitable @xref{Table types}. If a table type is specified, and that particular type is not available, @strong{MySQL} will choose the closest table type to the one that you have specified. For example, if @code{TYPE=BDB} is specified, and that distribution of @strong{MySQL} does not support @code{BDB} tables, the table will be created as @code{MyISAM} instead. The other table options are used to optimize the behavior of the table. In most cases, you don't have to specify any of them. The options work for all table types, if not otherwise indicated: Loading Loading @@ -40716,7 +40722,14 @@ Added missing @file{my_config.h} to RPM distribution. @item Added @code{--with-version-suffix} to configure. @item Added MASTER_POS_WAIT() Fixed coredump when client aborted connection without @code{mysql_close()}. @item Fixed bug in @code{RESTORE TABLE} when trying to restore from a non-existing directory. @item Fixed coredump on the slave replicating @code{SET PASSWORD}. @item Added @code{MASTER_POS_WAIT()}. @end itemize @node News-3.23.31, News-3.23.30, News-3.23.32, News-3.23.x Loading @@ -40724,19 +40737,19 @@ Added MASTER_POS_WAIT() @itemize @bullet @item The test suite now tests all reachable BDB interface code. During testing we found and fixed a lot of errors in the interface code. testing we found and fixed many errors in the interface code. @item Using @code{HAVING} on an empty table could produce one result row when it shouldn't. @item Fixed that the @strong{MySQL} RPM is not depending on perl5 anymore. Fixed that the @strong{MySQL} RPM is not dependent on Perl5 anymore. @item Fixed some problems with @code{HEAP} tables on windows. Fixed some problems with @code{HEAP} tables on Windows. @item @code{SHOW TABLE STATUS} didn't show correct average row length for tables bigger than 4G. larger than 4G. @item @code{CHECK TABLE .. EXTENED} didn't check row links for fixed size tables. @code{CHECK TABLE ... EXTENDED} didn't check row links for fixed size tables. @item Added option @code{MEDIUM} to @code{CHECK TABLE}. @item Loading @@ -40753,19 +40766,19 @@ Fixed buffer overflow bug when writing a certain error message. Added usage of @code{getrlimit()} on Linux to get @code{-O --open-files-limit=#} to work on Linux. @item Added new mysqld variable: bdb_version. Added new @code{mysqld} variable: @code{bdb_version}. @item Fixed bug when using expression of type @code{SELECT ... FROM t1 left join t2 on (t1.a=t2.a) WHERE t1.a=t2.a}. In this @code{SELECT ... FROM t1 LEFT JOIN t2 ON (t1.a=t2.a) WHERE t1.a=t2.a}. In this case the test in the @code{WHERE} clause was wrongly optimized away. @item Fixed bug in @code{MyISAM} when deleting keys with possible @code{NULL} values, but the first key-column was not a prefix-compressed text column. @item Fixed that @code{mysql.server} reads the @code{mysql.server} option section Fixed @code{mysql.server} to read the @code{mysql.server} option section instead of @code{mysql_server}. @item Fixed that @code{safe_mysqld} and @code{mysql.server} also reads the Fixed @code{safe_mysqld} and @code{mysql.server} to also read the @code{server} option section. @item Added @code{Threads_created} status variable to @code{mysqld}. Loading @@ -40775,36 +40788,36 @@ Added @code{Threads_created} status variable to @code{mysqld}. @appendixsubsec Changes in release 3.23.30 @itemize @bullet @item Fixed that @code{myisamdump} works against old mysqld servers. Fixed that @code{myisamdump} works against old @code{mysqld} servers. @item Fixed that @code{myisamchk -k#} works again. Fixed @code{myisamchk -k#} so that it works again. @item Fixed a problem with replication when the binary log file went over 2G on 32 bit systems. on 32-bit systems. @item @code{LOCK TABLES} will now automaticly start a new transaction. @code{LOCK TABLES} will now automatically start a new transaction. @item Changed BDB tables to not use internal subtransactions and reuse open files to get more speed. @item Added option @code{--mysqld=#} to @code{safe_mysqld} Added option @code{--mysqld=#} to @code{safe_mysqld}. @item Allow hex constants in the @code{--fields-*-by} and @code{--lines-terminated-by} options to @code{mysqldump} and @code{mysqlimport}. By Paul DuBois. @item Added option @code{--safe-show-databases}. Added option @code{--safe-show-database} to @code{mysqld}. @item Added @code{have_bdb}, @code{have_gemini}, @code{have_innobase}, @code{have_raid} and @code{have_ssl} to @code{SHOW VARIABLES} to make it easy to test for supported extensions. @item Added option @code{open-files-limit} to @code{mysqld}. Added option @code{--open-files-limit} to @code{mysqld}. @item Changed option @code{open-files} to @code{open-files-limit} in Changed option @code{--open-files} to @code{--open-files-limit} in @code{safe_mysqld}. @item Item fixed a bug where some rows where not found with @code{HEAP} tables Fixed a bug where some rows were not found with @code{HEAP} tables that had many keys. @item Fixed that @code{--bdb-no-sync} works. Loading Loading @@ -40856,7 +40869,7 @@ specified all key parts both in the update and the @code{WHERE} part. In this case @strong{MySQL} could try to update a record that didn't match the whole @code{WHERE} part. @item Changed drop table to first drop the tables and then the @code{.frm} file. Changed drop table to first drop the tables and then the @file{.frm} file. @item Fixed a bug in the hostname cache which caused @code{mysqld} to report the hostname as @code{''} in some error messages. Loading @@ -40871,11 +40884,11 @@ to make it easier to use the binary log. @item Renamed variable @code{bdb_lock_max} to @code{bdb_max_lock}. @item Added support for @code{auto_increment} on sub fields for BDB tables. Added support for @code{auto_increment} on sub-fields for BDB tables. @item Added @code{ANALYZE} of BDB tables. @item Store in BDB tables the number of rows; This helps to optimize queries In BDB tables, we now store the number of rows; This helps to optimize queries when we need an approximation of the number of rows. @item If we get an error in a multi-row statement, we now only rollback the Loading Loading @@ -40911,7 +40924,7 @@ slave server restart. @item @code{SHOW KEYS} now shows whether or not key is @code{FULLTEXT}. @item New script @code{mysqld_multi}. @xref{mysqld_multi}. New script @file{mysqld_multi}. @xref{mysqld_multi}. @item Added new script, @file{mysql-multi.server.sh}. Thanks to Tim Bunce @email{Tim.Bunce@@ig.co.uk} for modifying @file{mysql.server} to Loading @@ -40933,12 +40946,12 @@ Added a warning if number of rows changes on @code{REPAIR}/@code{OPTIMIZE}. Applied patches for OS/2 by @code{Yuri Dario}. @item @code{FLUSH TABLES table_name} didn't always flush the index tree properly to disk. to disk properly. @item @code{--bootstrap} is now run in a separate thread. This fixes the problem that @code{mysql_install_db} core dumped on some Linux machines. @code{--bootstrap} is now run in a separate thread. This fixes a problem that caused @code{mysql_install_db} to core dump on some Linux machines. @item Changed @code{mi_create()} to use less stack. Changed @code{mi_create()} to use less stack space. @item Fixed bug with optimizer trying to over-optimize @code{MATCH} when used with @code{UNIQUE} key. Loading Loading @@ -40972,10 +40985,10 @@ Fixed crash when automatic repair of @code{MyISAM} table failed. Fixed a major performance bug in the table locking code when one constantly had a LOT of @code{SELECT}, @code{UPDATE} and @code{INSERT} statements running. The symptom was that the @code{UPDATE} and @code{INSERT} queries was locked a long time while new @code{SELECT} statements where executed before the updates. @code{INSERT} queries were locked for a long time while new @code{SELECT} statements were executed before the updates. @item When reading options_files with @code{mysql_options()} the When reading @code{options_files} with @code{mysql_options()} the @code{return-found-rows} option was ignored. @item One can now specify @code{interactive-timeout} in the option file that Loading @@ -40985,7 +40998,7 @@ programs that run for a long time (like @code{mysqlhotcopy}) to use @item Added to the slow query log the time and the user name for each logged query. If you are using @code{--log-long-format} then also queries that are not using indexes are logged, even the query takes less than do not use an index are logged, even if the query takes less than @code{long_query_time} seconds. @item Fixed a problem in @code{LEFT JOIN} which caused all columns in a reference Loading @@ -41006,16 +41019,16 @@ the compiler submitted with RedHat 7.0. (Reported by Trond Eivind Glomsr @item The option @code{--skip-networking} now works properly on NT. @item Fixed long outstanding bug in the @code{ISAM} tables when a row with a length Fixed a long outstanding bug in the @code{ISAM} tables when a row with a length of more than 65K was shortened by a single byte. @item Fixed bug in @code{MyISAM} when running multiple updating processes on Fixed a bug in @code{MyISAM} when running multiple updating processes on the same table. @item Allow one to use @code{FLUSH TABLE tablename}. @item Added @code{--replicate-ignore-table}, @code{--replicate-do-table}, @code{--replicate-wild-ignore-table}, @code{--replicate-wild-do-table} @code{--replicate-wild-ignore-table}, @code{--replicate-wild-do-table}. @item Changed all log files to use our own @code{IO_CACHE} mechanism instead of @code{FILE} to avoid OS problems when there are many files open. Loading Loading @@ -41050,8 +41063,7 @@ Fixed an overflow bug in the client code when using overly long database names. @code{timeout} seconds. @item @code{SLAVE START} did not work if you started with @code{--skip-slave-start} and had not explicitly run @code{CHANGE MASTER TO}. @code{--skip-slave-start} and had not explicitly run @code{CHANGE MASTER TO}. @item Fixed the output of @code{SHOW MASTER STATUS} to be consistent with @code{SHOW SLAVE STATUS}. (It now has no directory in the log name.) Loading @@ -41065,7 +41077,7 @@ shortage when compiled @code{--with-debug=full}. @item Fixed several coredumps in out-of-memory conditions. @item @code{SHOW SLAVE STATUS} was using an unititialized mutex if the slave had @code{SHOW SLAVE STATUS} was using an uninitialized mutex if the slave had not been started yet. @item Fixed bug in @code{ELT()} and @code{MAKE_SET()} when the query used Loading Loading @@ -41174,7 +41186,7 @@ on a patch from John Jones. @appendixsubsec Changes in release 3.23.25 @itemize @bullet @item Fixed that databasename works as second argument to @code{mysqlhotcopy}. Fixed that @code{databasename} works as second argument to @code{mysqlhotcopy}. @item @code{UMASK} and @code{UMASK_DIR} can now be specified in octal. @item Loading Loading @@ -41930,8 +41942,6 @@ Fixed optimization bug in @code{SELECT ... LEFT JOIN ... key_column IS NULL}, when @code{key_column} could contain @code{NULL} values. @item Fixed problem with 8-bit characters as separators in @code{LOAD DATA INFILE}. @item @end itemize @node News-3.23.8, News-3.23.7, News-3.23.9, News-3.23.x Loading Loading @@ -42181,6 +42191,7 @@ Some configure issues to fix problems with big file system detection. @appendixsubsec Changes in release 3.23.3 @itemize @bullet @item Added patches for MIT-pthreads on NetBSD. @item Fixed range bug in MyISAM. Loading Loading @@ -42295,6 +42306,7 @@ Fixed some compilation problems. @appendixsubsec Changes in release 3.23.0 @itemize @bullet @item A new table handler library (@code{MyISAM}) with a lot of new features. @xref{MyISAM}. @item
client/mysqltest.c +38 −7 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ #include <sys/stat.h> #include <unistd.h> #include <errno.h> #include <violite.h> #define MAX_QUERY 65536 #define PAD_SIZE 128 Loading @@ -71,6 +72,8 @@ #define MIN_VAR_ALLOC 32 #define BLOCK_STACK_DEPTH 32 #define MAX_EXPECTED_ERRORS 10 #define QUERY_SEND 1 #define QUERY_REAP 2 static int record = 0, verbose = 0, silent = 0, opt_sleep=0; static char *db = 0, *pass=0; Loading Loading @@ -147,14 +150,14 @@ struct st_query Q_SLEEP, Q_INC, Q_DEC,Q_SOURCE, Q_DISCONNECT,Q_LET, Q_ECHO, Q_WHILE, Q_END_BLOCK, Q_SYSTEM, Q_RESULT, Q_REQUIRE, Q_SAVE_MASTER_POS, Q_SYNC_WITH_MASTER, Q_ERROR, Q_SYNC_WITH_MASTER, Q_ERROR, Q_SEND, Q_REAP, Q_DIRTY_CLOSE, Q_UNKNOWN, Q_COMMENT, Q_COMMENT_WITH_COMMAND} type; }; const char *command_names[] = { "connection", "query","connect","sleep","inc","dec","source","disconnect", "let","echo","while","end","system","result", "require", "save_master_pos", "sync_with_master", "error", 0 "sync_with_master", "error", "send", "reap", "dirty_close", 0 }; TYPELIB command_typelib= {array_elements(command_names),"", Loading Loading @@ -661,6 +664,15 @@ int close_connection(struct st_query* q) { if (!strcmp(con->name, name)) { if(q->type == Q_DIRTY_CLOSE) { if(con->mysql.net.vio) { vio_delete(con->mysql.net.vio); con->mysql.net.vio = 0; } } mysql_close(&con->mysql); DBUG_RETURN(0); } Loading Loading @@ -1211,7 +1223,7 @@ void reject_dump(const char* record_file, char* buf, int size) } int run_query(MYSQL* mysql, struct st_query* q) int run_query(MYSQL* mysql, struct st_query* q, int flags) { MYSQL_RES* res = 0; MYSQL_FIELD* fields; Loading @@ -1220,6 +1232,7 @@ int run_query(MYSQL* mysql, struct st_query* q) unsigned long* lengths; char* val; int len; int q_error = 0 ; DYNAMIC_STRING *ds; DYNAMIC_STRING ds_tmp; DBUG_ENTER("run_query"); Loading @@ -1232,7 +1245,13 @@ int run_query(MYSQL* mysql, struct st_query* q) else ds= &ds_res; if (mysql_query(mysql, q->query)) if((flags & QUERY_SEND) && (q_error = mysql_send_query(mysql, q->query))) die("At line %u: unable to send query '%s'", start_lineno, q->query); if(!(flags & QUERY_REAP)) return 0; if (mysql_reap_query(mysql)) { if (q->require_file) abort_not_supported_test(); Loading Loading @@ -1416,7 +1435,9 @@ int main(int argc, char** argv) switch (q->type) { case Q_CONNECT: do_connect(q); break; case Q_CONNECTION: select_connection(q); break; case Q_DISCONNECT: close_connection(q); break; case Q_DISCONNECT: case Q_DIRTY_CLOSE: close_connection(q); break; case Q_SOURCE: do_source(q); break; case Q_SLEEP: do_sleep(q); break; case Q_INC: do_inc(q); break; Loading @@ -1425,15 +1446,25 @@ int main(int argc, char** argv) case Q_SYSTEM: do_system(q); break; case Q_LET: do_let(q); break; case Q_QUERY: case Q_REAP: { int flags = QUERY_REAP; if(q->type == Q_QUERY) flags |= QUERY_SEND; if (save_file[0]) { strmov(q->record_file,save_file); q->require_file=require_file; save_file[0]=0; } error |= run_query(&cur_con->mysql, q); break; error |= run_query(&cur_con->mysql, q, QUERY_SEND|QUERY_REAP); break; } case Q_SEND: q->query += q->first_word_len; error |= run_query(&cur_con->mysql, q, QUERY_SEND); break; case Q_RESULT: get_file_name(save_file,q); require_file=0; Loading