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
|
@enumerate
|
||||||
@item
|
@item
|
||||||
For OpenServer 5.0.X you need to use GDS in Skunkware 95 (95q4c). This
|
For OpenServer 5.0.X you need to use gcc-2.95.2p1 or newer from the
|
||||||
is necessary because GNU @code{gcc} 2.7.2 in Skunkware 97 does not have
|
Skunkware. http://www.caldera.com/skunkware/ and choose browser
|
||||||
GNU @code{as}. You can also use @code{egcs} 1.1.2 or newer
|
OpenServer packages or by ftp to ftp2.caldera.com in the
|
||||||
@uref{http://www.egcs.com/}. If you are using @code{egcs} 1.1.2 you have
|
pub/skunkware/osr5/devtools/gcc directory.
|
||||||
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
|
|
||||||
|
|
||||||
@item
|
@item
|
||||||
You need the port of GCC 2.5.x for this product and the Development
|
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}.
|
with @code{-lgthreads -lsocket -lgthreads}.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
|
|
||||||
The Caldera (SCO) development libraries are re-entrant in FSU Pthreads.
|
The Caldera (SCO) development libraries are re-entrant in FSU Pthreads.
|
||||||
Caldera claim sthat its libraries' functions are re-entrant, so they must
|
Caldera claim sthat its libraries' functions are re-entrant, so they must
|
||||||
be reentrant with FSU Pthreads. FSU Pthreads on OpenServer tries to use
|
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.
|
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
|
@node OS/2, BeOS, Other Unix Notes, Operating System Specific Notes
|
||||||
|
|
||||||
@subsection OS/2 Notes
|
@subsection OS/2 Notes
|
||||||
|
|
||||||
MySQL uses quite a few open files. Because of this, you should add
|
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
|
files. MySQL will update the data on disk, with the
|
||||||
@code{write()} system call, after every SQL statement and before 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
|
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
|
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
|
ensure that the not flushed data is written to disk. You can force
|
||||||
MySQL to sync everything to disk after every SQL command by
|
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
|
@appendixsubsec Changes in release 4.0.2
|
||||||
|
|
||||||
@itemize @bullet
|
@itemize @bullet
|
||||||
|
§item
|
||||||
|
@code{INET_NTOA()} now returns @code{NULL} if you give it a too big argument.
|
||||||
@item
|
@item
|
||||||
Don't give an error for @code{CREATE TABLE ...(... VARCHAR(0))}.
|
Don't give an error for @code{CREATE TABLE ...(... VARCHAR(0))}.
|
||||||
@item
|
@item
|
||||||
@ -49381,7 +49387,7 @@ not yet 100% confident in this code.
|
|||||||
@item
|
@item
|
||||||
Fixed @code{SIGINT} and @code{SIGQUIT} problems in @code{mysql}.
|
Fixed @code{SIGINT} and @code{SIGQUIT} problems in @code{mysql}.
|
||||||
@item
|
@item
|
||||||
Fixed bug in character table converts.
|
Fixed bug in character table converts when used with big ( > 64K) strings.
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@node News-3.23.50, News-3.23.49, News-3.23.51, News-3.23.x
|
@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
|
@item
|
||||||
Fixed bug in handling of masked IP numbers in the privilege tables.
|
Fixed bug in handling of masked IP numbers in the privilege tables.
|
||||||
@item
|
@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
|
@item
|
||||||
Added @code{replicate-do-db} and @code{replicate-ignore-db} options to
|
Added @code{replicate-do-db} and @code{replicate-ignore-db} options to
|
||||||
@code{mysqld}, to restrict which databases get replicated.
|
@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
|
Added @code{max_write_lock_count} variable to @code{mysqld} to force a
|
||||||
@code{READ} lock after a certain number of @code{WRITE} locks.
|
@code{READ} lock after a certain number of @code{WRITE} locks.
|
||||||
@item
|
@item
|
||||||
Inverted flag @code{delayed_key_write} on @code{show variables}.
|
Inverted flag @code{delay_key_write} on @code{show variables}.
|
||||||
@item
|
@item
|
||||||
Renamed @code{concurrency} variable to @code{thread_concurrency}.
|
Renamed @code{concurrency} variable to @code{thread_concurrency}.
|
||||||
@item
|
@item
|
||||||
|
@ -340,7 +340,6 @@ int main(int argc,char *argv[])
|
|||||||
if (!status.batch)
|
if (!status.batch)
|
||||||
ignore_errors=1; // Don't abort monitor
|
ignore_errors=1; // Don't abort monitor
|
||||||
signal(SIGINT, mysql_end); // Catch SIGINT to clean up
|
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
|
** 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;
|
uchar buf[8], *p;
|
||||||
ulonglong n = (ulonglong) args[0]->val_int();
|
ulonglong n = (ulonglong) args[0]->val_int();
|
||||||
char num[4];
|
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!
|
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
|
return 0; // Null value
|
||||||
|
|
||||||
str->length(0);
|
str->length(0);
|
||||||
int8store(buf,n);
|
int4store(buf,n);
|
||||||
|
|
||||||
|
/* Now we can assume little endian. */
|
||||||
|
|
||||||
/*
|
|
||||||
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-- ) ;
|
|
||||||
num[3]='.';
|
num[3]='.';
|
||||||
while (p-- > buf)
|
for (p=buf+4 ; p-- > buf ; )
|
||||||
{
|
{
|
||||||
uint c = *p;
|
uint c = *p;
|
||||||
uint n1,n2; // Try to avoid divisions
|
uint n1,n2; // Try to avoid divisions
|
||||||
|
Loading…
x
Reference in New Issue
Block a user