Commit c369d529 authored by monty@hundin.mysql.fi's avatar monty@hundin.mysql.fi
Browse files

merge (+ multi-table fix)

parents 830076cc c531b432
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -80,5 +80,5 @@ EOF
 fi

else
 echo "commit failed because '$BK_STATUS', sorry life is hard..." 
  echo "commit failed because '$BK_STATUS', you may need to re-clone..." 
fi
+39 −21
Original line number Diff line number Diff line
@@ -14186,7 +14186,10 @@ Set the default character set. @xref{Character sets}.
@item --default-table-type=type
Set the default table type for tables.  @xref{Table types}.
@item --delay-key-write-for-all-tables
@item --delay-key-write[= OFF | ON | ALL]
How MyISAM @code{DELAYED KEYS} should be used. @xref{Server parameters}.
@item --delay-key-write-for-all-tables;  In MySQL 4.0.3 you should use --delay-key-write=ALL instead.
Don't flush key buffers between writes for any @code{MyISAM} table.
@xref{Server parameters}.
@@ -14321,7 +14324,7 @@ correct it to stay within a given range and also adjusts the value a
little to fix for the used algorithm.
@item --safe-mode
Skip some optimise stages.  Implies @code{--skip-delay-key-write}.
Skip some optimise stages.
@item --safe-show-database
With this option, the @code{SHOW DATABASES} command returns only those
@@ -14340,8 +14343,8 @@ Turn off the ability to select and insert at the same time on @code{MyISAM}
tables. (This is only to be used if you think you have found a bug in this
feature.)
@item --skip-delay-key-write
Ignore the @code{delay_key_write} option for all tables.
@item --skip-delay-key-write; In MySQL 4.0.3 you should use --delay-key-write=OFF instead.
Ignore the @code{DELAY_KEY_WRITE} option for all tables.
@xref{Server parameters}.
@item --skip-grant-tables
@@ -14370,8 +14373,7 @@ Don't listen for TCP/IP connections at all. All interaction with
recommended for systems where only local requests are allowed.  @xref{DNS}.
@item --skip-new
Don't use new, possible wrong routines.  Implies @code{--skip-delay-key-write}.
This will also set default table type to @code{ISAM}.  @xref{ISAM}.
Don't use new, possible wrong routines.
@item --skip-symlink
Don't delete or rename files that a symlinked file in the data directory
@@ -19848,16 +19850,20 @@ packet before responding with @code{Bad handshake}.
The value of the @code{--datadir} option.
@item @code{delay_key_write}
If enabled (is on by default), MySQL will honor the
@code{DELAY_KEY_WRITE} option for @code{CREATE TABLE}.  This means that the
key buffer for tables with this option will not get flushed on every
index update, but only when a table is closed.  This will speed up
writes on keys a lot, but you should add automatic checking of all tables
with @code{myisamchk --fast --force} if you use this.  Note that if you
start @code{mysqld} with the @code{--delay-key-write-for-all-tables}
option this means that all tables will be treated as if they were
created with the @code{delay_key_write} option.  You can clear this flag
by starting @code{mysqld} with @code{--skip-new} or @code{--safe-mode}.
Option for MyISAM tables. Can have one of the following values:
@multitable @columnfractions .30 .70
@item OFF @tab All CREATE TABLE ... DELAYED_KEY_WRITES are ignored.
@item ON  @tab (default)  MySQL will honor the @code{DELAY_KEY_WRITE} option
for @code{CREATE TABLE}.
@item ALL @tab All new opened tables are treated as if they were created with the @code{DELAY_KEY_WRITE} option.
@end multitable
If @code{DELAY_KEY_WRITE} is enabled this means that the key buffer for
tables with this option will not get flushed on every index update, but
only when a table is closed.  This will speed up writes on keys a lot,
but you should add automatic checking of all tables with @code{myisamchk
--fast --force} if you use this.
@item @code{delayed_insert_limit}
After inserting @code{delayed_insert_limit} rows, the @code{INSERT
@@ -19961,7 +19967,7 @@ status} and examine the variables @code{Key_read_requests},
The @code{Key_write/Key_write_requests} is usually near 1 if you are
using mostly updates/deletes but may be much smaller if you tend to
do updates that affect many at the same time or if you are
using @code{delay_key_write}. @xref{SHOW, , @code{SHOW}}.
using @code{DELAY_KEY_WRITE}. @xref{SHOW, , @code{SHOW}}.
To get even more speed when writing many rows at the same time, use
@code{LOCK TABLES}.  @xref{LOCK TABLES, , @code{LOCK TABLES}}.
@@ -24477,7 +24483,7 @@ offset by network delays.
writes to it, and configure as many slaves as you have the money and
rackspace for, distributing the reads among the master and the slaves.
You can also start the slaves with @code{--skip-bdb},
@code{--low-priority-updates} and @code{--delay-key-write-for-all-tables}
@code{--low-priority-updates} and @code{--delay-key-write=ALL}
to get speed improvements for the slave.  In this case the slave will
use non-transactional @code{MyISAM} tables instead of @code{BDB} tables
to get more speed.
@@ -28630,7 +28636,7 @@ and if you can use @code{GLOBAL} or @code{SESSION} with them.
@item concurrent_insert @tab bool @tab GLOBAL
@item connect_timeout @tab num @tab GLOBAL
@item convert_character_set @tab string @tab SESSION
@item delay_key_write @tab bool @tab GLOBAL
@item delay_key_write @tab OFF | ON | ALL @tab GLOBAL
@item delayed_insert_limit @tab num @tab GLOBAL
@item delayed_insert_timeout @tab num @tab GLOBAL
@item delayed_queue_size @tab num @tab GLOBAL
@@ -28717,6 +28723,7 @@ Here is a description of some of the variables:
@item identity @tab Alias for last_insert_id (Sybase compatiblity)
@item sql_low_priority_updates @tab Alias for low_priority_updates
@item sql_max_join_size @tab Alias for max_join_size
@item delay_key_write_for_all_tables @tab If this and delay_key_write is set then all new MyISAM tables that are opened will use delayed key writes.
@item version @tab Alias for VERSION() (Sybase (?) compatability)
@end multitable
@@ -37704,7 +37711,7 @@ The following options to @code{mysqld} can be used to change the behaviour of
@item @strong{Option} @tab @strong{Description}
@item @code{--myisam-recover=#} @tab Automatic recovery of crashed tables.
@item @code{-O myisam_sort_buffer_size=#} @tab Buffer used when recovering tables.
@item @code{--delay-key-write-for-all-tables} @tab Don't flush key buffers between writes for any MyISAM table
@item @code{--delay-key-write=ALL} @tab Don't flush key buffers between writes for any MyISAM table
@item @code{-O myisam_max_extra_sort_file_size=#} @tab Used to help MySQL to decide when to use the slow but safe key cache index create method. @strong{Note} that this parameter is given in megabytes before 4.0.3 and in bytes starting from this version.
@item @code{-O myisam_max_sort_file_size=#} @tab Don't use the fast sort index method to created index if the temporary file would get bigger than this.  @strong{Note} that this parameter is given in megabytes before 4.0.3 and in bytes starting from this version.
@item @code{-O bulk_insert_buffer_size=#} @tab Size of tree cache used in bulk insert optimisation. @strong{Note} that this is a limit @strong{per thread}!
@@ -50250,6 +50257,9 @@ each individual 4.0.x release.
Added @code{QUOTE()} function that performs SQL quoting to produce values
that can be used as data values in queries.
@item
Changed variable @code{DELAY_KEY_WRITE} to an enum to allow one set
@code{DELAY_KEY_WRITE} for all tables without taking down the server.
@item
Changed behavior of @code{IF(condition,column,NULL)} so that it returns
the value of the column type.
@item
@@ -50841,6 +50851,7 @@ users use 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.53::                Changes in release 3.23.53
* News-3.23.52::                Changes in release 3.23.52
* News-3.23.51::                Changes in release 3.23.51 (31 May 2002)
* News-3.23.50::                Changes in release 3.23.50 (21 Apr 2002)
@@ -50897,8 +50908,15 @@ not yet 100% confident in this code.
* News-3.23.0::                 Changes in release 3.23.0 (05 Aug 1999: Alpha)
@end menu
@node News-3.23.52, News-3.23.51, News-3.23.x, News-3.23.x
@node News-3.23.53, News-3.23.52, News-3.23.x, News-3.23.x
@appendixsubsec Changes in release 3.23.53
@itemize @bullet
@end itemize
@node News-3.23.52, News-3.23.51, News-3.23.53, News-3.23.x
@appendixsubsec Changes in release 3.23.52
@itemize @bullet
@item
Fixed problem with @code{UNSIGNED BIGINT} on AIX.
+13 −11
Original line number Diff line number Diff line
@@ -25,33 +25,37 @@ can wait inside InnoDB */

#ifdef __WIN__
typedef void*			os_thread_t;
typedef ulint			os_thread_id_t;	/* In Windows the thread id
						is an unsigned long int */
#else
typedef pthread_t               os_thread_t;
typedef os_thread_t          	os_thread_id_t;	/* In Unix we use the thread
						handle itself as the id of
						the thread */
#endif

#define os_thread_id_t          os_thread_t

/* Define a function pointer type to use in a typecast */
typedef void* (*os_posix_f_t) (void*);

/*******************************************************************
Compares two threads or thread ids for equality */
Compares two thread ids for equality. */

ibool
os_thread_eq(
/*=========*/
				/* out: TRUE if equal */
	os_thread_t	a,	/* in: OS thread or thread id */
	os_thread_t	b);	/* in: OS thread or thread id */
	os_thread_id_t	a,	/* in: OS thread or thread id */
	os_thread_id_t	b);	/* in: OS thread or thread id */
/********************************************************************
Converts an OS thread or thread id to a ulint. It is NOT guaranteed that
the ulint is unique for the thread though! */
Converts an OS thread id to a ulint. It is NOT guaranteed that the ulint is
unique for the thread though! */

ulint
os_thread_pf(
/*=========*/
				/* out: unsigned long int */
	os_thread_t	a);	/* in: thread or thread id */
	os_thread_id_t	a);	/* in: thread or thread id */
/********************************************************************
Creates a new thread of execution. The execution starts from
the function given. The start function takes a void* parameter
@@ -69,10 +73,8 @@ os_thread_create(
#endif
	void*			arg,		/* in: argument to start
						function */
	os_thread_id_t*		thread_id);	/* out: id of created
						thread; currently this is
						identical to the handle to
						the thread */
	os_thread_id_t*		thread_id);	/* out: id of the created
						thread */
/*********************************************************************
A thread calling this function ends its execution. */

+12 −15
Original line number Diff line number Diff line
@@ -19,14 +19,14 @@ Created 9/8/1995 Heikki Tuuri
#include "srv0srv.h"

/*******************************************************************
Compares two threads or thread ids for equality */
Compares two thread ids for equality. */

ibool
os_thread_eq(
/*=========*/
				/* out: TRUE if equal */
	os_thread_t	a,	/* in: OS thread or thread id */
	os_thread_t	b)	/* in: OS thread or thread id */
	os_thread_id_t	a,	/* in: OS thread or thread id */
	os_thread_id_t	b)	/* in: OS thread or thread id */
{
#ifdef __WIN__
	if (a == b) {
@@ -44,13 +44,13 @@ os_thread_eq(
}

/********************************************************************
Converts an OS thread or thread id to a ulint. It is NOT guaranteed that
the ulint is unique for the thread though! */
Converts an OS thread id to a ulint. It is NOT guaranteed that the ulint is
unique for the thread though! */

ulint
os_thread_pf(
/*=========*/
	os_thread_t	a)
	os_thread_id_t	a)
{
#ifdef UNIV_HPUX
        /* In HP-UX a pthread_t is a struct of 3 fields: field1, field2,
@@ -64,15 +64,15 @@ os_thread_pf(

/*********************************************************************
Returns the thread identifier of current thread. Currently the thread
identifier is the thread handle itself. Note that in HP-UX pthread_t is
a struct of 3 fields. */
identifier in Unix is the thread handle itself. Note that in HP-UX
pthread_t is a struct of 3 fields. */

os_thread_id_t
os_thread_get_curr_id(void)
/*=======================*/
{
#ifdef __WIN__
	return(GetCurrentThread());
	return(GetCurrentThreadId());
#else
	return(pthread_self());
#endif
@@ -95,11 +95,8 @@ os_thread_create(
#endif
	void*			arg,		/* in: argument to start
						function */
	os_thread_id_t*		thread_id __attribute__((unused)))	
                                                /* out: id of created
						thread; currently this is
						identical to the handle to
						the thread */
	os_thread_id_t*		thread_id)	/* out: id of the created
						thread */
{
#ifdef __WIN__
	os_thread_t	thread;
@@ -121,7 +118,7 @@ os_thread_create(
	        ut_a(SetThreadPriority(thread, srv_query_thread_priority));
	}

	*thread_id = thread;
	*thread_id = win_thread_id;

	return(thread);
#else
+1 −1
Original line number Diff line number Diff line
@@ -267,7 +267,7 @@ insert into t1 values (-.1),(+.1),(.1);
insert into t1 values (00000000000001),(+0000000000001),(-0000000000001);
insert into t1 values (+111111111.11),(111111111.11),(-11111111.11);
insert into t1 values (-111111111.11),(+1111111111.11),(1111111111.11);
insert into t1 values (1e+1000),(1e-1000),(-1e+1000);
insert into t1 values (1e+100),(1e-100),(-1e+100);
insert into t1 values (123.4e0),(123.4e+2),(123.4e-2),(123e1),(123e+0);
select * from t1;
a
Loading