Fix for INET_NTOA(N) when N >= 2^32
Docs/manual.texi: SCO updates client/mysql.cc: Don't die on SIGQUIT
This commit is contained in:
parent
1f38c3a93d
commit
40a2774087
@ -10936,16 +10936,10 @@ CC=gcc CXX=gcc ./configure ... (options)
|
||||
|
||||
@enumerate
|
||||
@item
|
||||
For OpenServer 5.0.X you need to use GDS in Skunkware 95 (95q4c). This
|
||||
is necessary because GNU @code{gcc} 2.7.2 in Skunkware 97 does not have
|
||||
GNU @code{as}. You can also use @code{egcs} 1.1.2 or newer
|
||||
@uref{http://www.egcs.com/}. If you are using @code{egcs} 1.1.2 you have
|
||||
to execute the following command:
|
||||
|
||||
@example
|
||||
shell> cp -p /usr/include/pthread/stdtypes.h \
|
||||
/usr/local/lib/gcc-lib/i386-pc-sco3.2v5.0.5/egcs-2.91.66/include/pthread/
|
||||
@end example
|
||||
For OpenServer 5.0.X you need to use gcc-2.95.2p1 or newer from the
|
||||
Skunkware. http://www.caldera.com/skunkware/ and choose browser
|
||||
OpenServer packages or by ftp to ftp2.caldera.com in the
|
||||
pub/skunkware/osr5/devtools/gcc directory.
|
||||
|
||||
@item
|
||||
You need the port of GCC 2.5.x for this product and the Development
|
||||
@ -11031,7 +11025,6 @@ MySQL should automatically detect FSU Pthreads and link @code{mysqld}
|
||||
with @code{-lgthreads -lsocket -lgthreads}.
|
||||
|
||||
@item
|
||||
|
||||
The Caldera (SCO) development libraries are re-entrant in FSU Pthreads.
|
||||
Caldera claim sthat its libraries' functions are re-entrant, so they must
|
||||
be reentrant with FSU Pthreads. FSU Pthreads on OpenServer tries to use
|
||||
@ -11101,7 +11094,18 @@ CC=cc CXX=CC ./configure --prefix=/usr/local/mysql
|
||||
|
||||
If you want to use @code{gcc}, you must use @code{gcc} 2.95.2 or newer.
|
||||
|
||||
Caldera provides libsocket.so.2 at
|
||||
@uref{ftp://stage.caldera.com/pub/security/tools} for
|
||||
pre-OSR506 security fixes. Also, the telnetd fix at
|
||||
@url{ftp://stage.caldera.com/pub/security/openserver/CSSA-2001-SCO.10/}
|
||||
as both libsocket.so.2 and libresolv.so.1 with instructions for
|
||||
installing on pre-OSR506 systems.
|
||||
|
||||
It's probably a good idea to install the above patches before trying to
|
||||
compile/use MySQL.
|
||||
|
||||
@node OS/2, BeOS, Other Unix Notes, Operating System Specific Notes
|
||||
|
||||
@subsection OS/2 Notes
|
||||
|
||||
MySQL uses quite a few open files. Because of this, you should add
|
||||
@ -46660,7 +46664,7 @@ Many crashes of MySQL are caused by corrupted index / data
|
||||
files. MySQL will update the data on disk, with the
|
||||
@code{write()} system call, after every SQL statement and before the
|
||||
client is notified about the result. (This is not true if you are running
|
||||
with @code{delayed_key_writes}, in which case only the data is written.)
|
||||
with @code{delay_key_write}, in which case only the data is written.)
|
||||
This means that the data is safe even if @code{mysqld} crashes, as the OS will
|
||||
ensure that the not flushed data is written to disk. You can force
|
||||
MySQL to sync everything to disk after every SQL command by
|
||||
@ -48945,6 +48949,8 @@ Our TODO section contains what we plan to have in 4.0. @xref{TODO MySQL 4.0}.
|
||||
@appendixsubsec Changes in release 4.0.2
|
||||
|
||||
@itemize @bullet
|
||||
§item
|
||||
@code{INET_NTOA()} now returns @code{NULL} if you give it a too big argument.
|
||||
@item
|
||||
Don't give an error for @code{CREATE TABLE ...(... VARCHAR(0))}.
|
||||
@item
|
||||
@ -49381,7 +49387,7 @@ not yet 100% confident in this code.
|
||||
@item
|
||||
Fixed @code{SIGINT} and @code{SIGQUIT} problems in @code{mysql}.
|
||||
@item
|
||||
Fixed bug in character table converts.
|
||||
Fixed bug in character table converts when used with big ( > 64K) strings.
|
||||
@end itemize
|
||||
|
||||
@node News-3.23.50, News-3.23.49, News-3.23.51, News-3.23.x
|
||||
@ -51278,7 +51284,7 @@ Put @code{CREATE TEMPORARY TABLE} commands in the update log.
|
||||
@item
|
||||
Fixed bug in handling of masked IP numbers in the privilege tables.
|
||||
@item
|
||||
Fixed bug with @code{delayed_key_writes} tables and @code{CHECK TABLE}.
|
||||
Fixed bug with @code{delay_key_write} tables and @code{CHECK TABLE}.
|
||||
@item
|
||||
Added @code{replicate-do-db} and @code{replicate-ignore-db} options to
|
||||
@code{mysqld}, to restrict which databases get replicated.
|
||||
@ -51672,7 +51678,7 @@ threads are reading from the table.
|
||||
Added @code{max_write_lock_count} variable to @code{mysqld} to force a
|
||||
@code{READ} lock after a certain number of @code{WRITE} locks.
|
||||
@item
|
||||
Inverted flag @code{delayed_key_write} on @code{show variables}.
|
||||
Inverted flag @code{delay_key_write} on @code{show variables}.
|
||||
@item
|
||||
Renamed @code{concurrency} variable to @code{thread_concurrency}.
|
||||
@item
|
||||
|
@ -340,7 +340,6 @@ int main(int argc,char *argv[])
|
||||
if (!status.batch)
|
||||
ignore_errors=1; // Don't abort monitor
|
||||
signal(SIGINT, mysql_end); // Catch SIGINT to clean up
|
||||
signal(SIGQUIT, mysql_end); // Catch SIGQUIT to clean up
|
||||
|
||||
/*
|
||||
** Run in interactive mode like the ingres/postgres monitor
|
||||
|
@ -1921,24 +1921,23 @@ String* Item_func_inet_ntoa::val_str(String* str)
|
||||
uchar buf[8], *p;
|
||||
ulonglong n = (ulonglong) args[0]->val_int();
|
||||
char num[4];
|
||||
|
||||
/*
|
||||
we do not know if args[0] is NULL until we have called
|
||||
We do not know if args[0] is NULL until we have called
|
||||
some val function on it if args[0] is not a constant!
|
||||
|
||||
Also return null if n > 255.255.255.255
|
||||
*/
|
||||
if ((null_value=args[0]->null_value))
|
||||
if ((null_value= (args[0]->null_value || n > (ulonglong) LL(4294967295))))
|
||||
return 0; // Null value
|
||||
|
||||
str->length(0);
|
||||
int8store(buf,n);
|
||||
int4store(buf,n);
|
||||
|
||||
/*
|
||||
Now we can assume little endian.
|
||||
We handle the possibility of an 8-byte IP address however, we do
|
||||
not want to confuse those who are just using 4 byte ones
|
||||
*/
|
||||
for (p= buf + 8; p > buf+4 && p[-1] == 0 ; p-- ) ;
|
||||
/* Now we can assume little endian. */
|
||||
|
||||
num[3]='.';
|
||||
while (p-- > buf)
|
||||
for (p=buf+4 ; p-- > buf ; )
|
||||
{
|
||||
uint c = *p;
|
||||
uint n1,n2; // Try to avoid divisions
|
||||
|
Loading…
x
Reference in New Issue
Block a user