Commit 9ad7aedb authored by unknown's avatar unknown

Fixed problems with decimals withing IF()

Force add of FN_LIBCHAR to symlinks on windows


Docs/manual.texi:
  Cleanup & Changelog
client/mysqladmin.c:
  Added quoting for 'drop database'
client/mysqlcheck.c:
  Fixed wrong comment syntax
libmysql/net.c:
  Cleanup
mysql-test/mysql-test-run.sh:
  Better error message.
mysql-test/r/func_test.result:
  test for if()
mysql-test/t/func_test.test:
  test for if()
mysys/mf_pack.c:
  Force add of FN_LIBCHAR to symlinks on windows.
sql/item_cmpfunc.cc:
  Fixed problems with decimals withing IF()
sql/mysqlbinlog.cc:
  Better error messages.
sql/sql_repl.cc:
  Better error messages.
parent 41dd2aa2
......@@ -314,7 +314,6 @@ Windows Notes
* Windows and SSH:: Connecting to a remote @strong{MySQL} from Windows with SSH
* Windows symbolic links:: Splitting data across different disks under Win32
* Windows compiling:: Compiling MySQL clients on Windows.
* Windows and BDB tables.:: Windows and BDB Tables
* Windows vs Unix:: @strong{MySQL}-Windows compared to Unix @strong{MySQL}
Post-installation Setup and Testing
......@@ -553,7 +552,7 @@ InnoDB Tables
Creating InnoDB table space
* Error creating InnoDB::
* Error creating InnoDB::
Backing up and recovering an InnoDB database
......@@ -8874,7 +8873,6 @@ This is also described in the @file{README} file that comes with the
* Windows and SSH:: Connecting to a remote @strong{MySQL} from Windows with SSH
* Windows symbolic links:: Splitting data across different disks under Win32
* Windows compiling:: Compiling MySQL clients on Windows.
* Windows and BDB tables.:: Windows and BDB Tables
* Windows vs Unix:: @strong{MySQL}-Windows compared to Unix @strong{MySQL}
@end menu
......@@ -8923,9 +8921,8 @@ symbolic links, BDB and InnoDB tables.
@item @code{mysqld-opt} @tab
Optimized binary with no support for transactional tables.
@item @code{mysqld-nt} @tab
Optimized for a Pentium Pro processor. Has support for
named pipes. You can run this version on Win98, but in
this case no named pipes are created and you must
Optimized binary for NT with support for named pipes. You can run this
version on Win98, but in this case no named pipes are created and you must
have TCP/IP installed.
@item @code{mysqld-max} @tab
Optimized binary with support for symbolic links, BDB and InnoDB tables.
......@@ -9226,7 +9223,7 @@ text @code{D:\data\foo}. After that, all tables created in the database
@cindex compiling, on Windows
@cindex Windows, compiling on
@node Windows compiling, Windows and BDB tables., Windows symbolic links, Windows
@node Windows compiling, Windows vs Unix, Windows symbolic links, Windows
@subsection Compiling MySQL Clients on Windows
In your source files, you should include @file{windows.h} before you include
......@@ -9246,19 +9243,9 @@ with the static @file{mysqlclient.lib} library.
Note that as the mysqlclient libraries are compiled as threaded libraries,
you should also compile your code to be multi-threaded!
@cindex BDB tables
@cindex tables, BDB
@node Windows and BDB tables., Windows vs Unix, Windows compiling, Windows
@subsection Windows and BDB Tables
We will shortly do a full test on the new BDB interface on Windows.
When this is done we will start to release binary distributions (for
Windows and Unix) of @strong{MySQL} that will include support for BDB
tables.
@cindex Windows, versus Unix
@cindex operating systems, Windows versus Unix
@node Windows vs Unix, , Windows and BDB tables., Windows
@node Windows vs Unix, , Windows compiling, Windows
@subsection MySQL-Windows Compared to Unix MySQL
@strong{MySQL}-Windows has by now proven itself to be very stable. This version
......@@ -24898,7 +24885,7 @@ mysqld: ready for connections
@end example
@menu
* Error creating InnoDB::
* Error creating InnoDB::
@end menu
@node Error creating InnoDB, , InnoDB init, InnoDB init
......@@ -42562,7 +42549,7 @@ attachments, you should ftp all the relevant files to:
@end itemize
@node Reporting mysqltest bugs, , extending mysqltest, MySQL test suite
@subsection Extending the MySQL Test Suite
@subsection Reporting bugs in the MySQL Test Suite
If your @strong{MySQL} version doesn't pass the test suite you should
do the following:
......@@ -42593,6 +42580,10 @@ so that we can examine it. Please remember to also include a full
description of your system, the version of the mysqld binary and how you
compiled it.
@item
Try also to run @code{mysql-test-run} with the @code{--force} option to
see if there is any other test that fails.
@item
If you have compiled @strong{MySQL} yourself, check our manual for how
to compile @strong{MySQL} on your platform or, preferable, use one of
......@@ -44538,6 +44529,8 @@ not yet 100% confident in this code.
@appendixsubsec Changes in release 3.23.39
@itemize @bullet
@item
Fixed problem with @code{IF()} and number of decimals in the result.
@item
Fixed that date-part extract functions works with dates where day
and/or month is 0.
@item
......@@ -28,7 +28,7 @@
#include <my_pthread.h> /* because of signal() */
#endif
#define ADMIN_VERSION "8.20"
#define ADMIN_VERSION "8.21"
#define MAX_MYSQL_VAR 64
#define SHUTDOWN_DEF_TIMEOUT 3600 /* Wait for shutdown */
#define MAX_TRUNC_LENGTH 3
......@@ -870,7 +870,7 @@ static int drop_db(MYSQL *mysql, const char *db)
return -1;
}
}
sprintf(name_buff,"drop database %.*s",FN_REFLEN,db);
sprintf(name_buff,"drop database `%.*s`",FN_REFLEN,db);
if (mysql_query(mysql,name_buff))
{
my_printf_error(0,"DROP DATABASE %s failed;\nerror: '%s'",MYF(ME_BELL),
......
......@@ -338,7 +338,7 @@ static int get_options(int *argc, char ***argv)
{
int pnlen = strlen(my_progname);
if (pnlen < 6) // name too short
if (pnlen < 6) /* name too short */
what_to_do = DO_CHECK;
else if (!strcmp("repair", my_progname + pnlen - 6))
what_to_do = DO_REPAIR;
......
......@@ -34,7 +34,6 @@
#include <signal.h>
#include <errno.h>
#include <sys/types.h>
#include <violite.h>
#ifdef MYSQL_SERVER
ulong max_allowed_packet=65536;
......
......@@ -300,8 +300,9 @@ show_failed_diff ()
echo "-------------------------------------------------------"
$DIFF -c $result_file $reject_file
echo "-------------------------------------------------------"
echo "Please e-mail the above, along with the output of mysqlbug"
echo "and any other relevant info to bugs@lists.mysql.com"
echo "Please follow the instructions outlined at"
echo "http://www.mysql.com/doc/R/e/Reporting_mysqltest_bugs.html"
echo "to find the reason to this problem and how to report this."
fi
}
......
......@@ -34,3 +34,5 @@ this is a 2 2.0
1 1
1 and 0 or 2 2 or 1 and 0
1 1
sum(if(num is null,0.00,num))
144.54
......@@ -24,3 +24,13 @@ select -1.49 or -1.49,0.6 or 0.6;
select 5 between 0 and 10 between 0 and 1,(5 between 0 and 10) between 0 and 1;
select 1 and 2 between 2 and 10, 2 between 2 and 10 and 1;
select 1 and 0 or 2, 2 or 1 and 0;
#
# Problem with IF()
#
drop table if exists t1;
create table t1 (num double(12,2));
insert into t1 values (144.54);
select sum(if(num is null,0.00,num)) from t1;
drop table t1;
......@@ -236,11 +236,16 @@ void symdirget(char *dir)
*pos++=temp; *pos=0; /* Restore old filename */
if (fp)
{
if (fgets(buff, sizeof(buff), fp))
if (fgets(buff, sizeof(buff)-1, fp))
{
for (pos=strend(buff);
pos > buff && (iscntrl(pos[-1]) || isspace(pos[-1])) ;
pos --);
/* Ensure that the symlink ends with the directory symbol */
if (pos == buff || pos[-1] != FN_LIBCHAR)
*pos++=FN_LIBCHAR;
strmake(dir,buff, (uint) (pos-buff));
}
my_fclose(fp,MYF(0));
......
......@@ -487,7 +487,7 @@ Item_func_if::fix_length_and_dec()
{
maybe_null=args[1]->maybe_null || args[2]->maybe_null;
max_length=max(args[1]->max_length,args[2]->max_length);
decimals=max(args[0]->decimals,args[1]->decimals);
decimals=max(args[1]->decimals,args[2]->decimals);
enum Item_result arg1_type=args[1]->result_type();
enum Item_result arg2_type=args[2]->result_type();
if (arg1_type == STRING_RESULT || arg2_type == STRING_RESULT)
......
......@@ -303,14 +303,12 @@ static void dump_remote_log_entries(const char* logname)
uint len;
NET* net = &mysql->net;
if(!position) position = 4; // protect the innocent from spam
if(position < 4)
{
position = 4;
// warn the guity
fprintf(stderr,
"Warning: with the position so small you would hit the magic number\n\
Unfortunately, no sweepstakes today, adjusted position to 4\n");
}
if (position < 4)
{
position = 4;
// warn the guity
sql_print_error("Warning: The position in the binary log can't be less than 4.\nStarting from position 4\n");
}
int4store(buf, position);
int2store(buf + 4, binlog_flags);
len = (uint) strlen(logname);
......
......@@ -297,10 +297,9 @@ void mysql_binlog_send(THD* thd, char* log_ident, ulong pos, ushort flags)
if ((file=open_binlog(&log, log_file_name, &errmsg)) < 0)
goto err;
if(pos < 4)
if (pos < 4)
{
errmsg = "Congratulations! You have hit the magic number and can win \
sweepstakes if you report the bug";
errmsg = "Client requested master to start repliction from impossible position.\n";
goto err;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment