diff options
-rwxr-xr-x | BitKeeper/triggers/post-commit | 2 | ||||
-rw-r--r-- | Docs/manual.texi | 10 | ||||
-rw-r--r-- | innobase/include/os0thread.h | 24 | ||||
-rw-r--r-- | innobase/os/os0thread.c | 27 | ||||
-rw-r--r-- | sql/ha_innodb.cc | 12 | ||||
-rw-r--r-- | sql/ha_innodb.h | 3 |
6 files changed, 46 insertions, 32 deletions
diff --git a/BitKeeper/triggers/post-commit b/BitKeeper/triggers/post-commit index 603bd43e804..12298c65abb 100755 --- a/BitKeeper/triggers/post-commit +++ b/BitKeeper/triggers/post-commit @@ -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 diff --git a/Docs/manual.texi b/Docs/manual.texi index c16ff752bb1..fbf48b0e536 100644 --- a/Docs/manual.texi +++ b/Docs/manual.texi @@ -50831,6 +50831,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) @@ -50887,8 +50888,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. diff --git a/innobase/include/os0thread.h b/innobase/include/os0thread.h index 95a3a95fb74..9459750719f 100644 --- a/innobase/include/os0thread.h +++ b/innobase/include/os0thread.h @@ -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. */ diff --git a/innobase/os/os0thread.c b/innobase/os/os0thread.c index cb1205c5a85..13990b6743b 100644 --- a/innobase/os/os0thread.c +++ b/innobase/os/os0thread.c @@ -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 diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc index eaf09325124..ae787789a81 100644 --- a/sql/ha_innodb.cc +++ b/sql/ha_innodb.cc @@ -259,7 +259,7 @@ convert_error_code_to_mysql( extern "C" { /***************************************************************** Prints info of a THD object (== user session thread) to the -standard output. NOTE that mysql/innobase/trx/trx0trx.c must contain +standard output. NOTE that /mysql/innobase/trx/trx0trx.c must contain the prototype for this function! */ void @@ -404,6 +404,9 @@ ha_innobase::update_thd( return(0); } +#ifdef notdefined +/* The code here appears for documentational purposes only. Not used +or tested yet. Will be used in 4.1. */ /********************************************************************* Call this when you have opened a new table handle in HANDLER, before you call index_read_idx() etc. Actually, we can let the cursor stay open even @@ -411,14 +414,15 @@ over a transaction commit! Then you should call this before every operation, fecth next etc. This function inits the necessary things even after a transaction commit. */ -/* TODO: THIS CODE HAS NOT BEEN TESTED!!! */ - void ha_innobase::init_table_handle_for_HANDLER(void) /*============================================*/ { row_prebuilt_t* prebuilt; + ut_a(0); /* the code has not been used or tested yet; to prevent + inadvertent usage we assert an error here */ + /* If current thd does not yet have a trx struct, create one. If the current handle does not yet have a prebuilt struct, create one. Update the trx pointers in the prebuilt struct. Normally @@ -458,6 +462,7 @@ ha_innobase::init_table_handle_for_HANDLER(void) prebuilt->read_just_key = FALSE; } +#endif /************************************************************************* Opens an InnoDB database. */ @@ -2509,6 +2514,7 @@ ha_innobase::rnd_pos( Stores a reference to the current row to 'ref' field of the handle. Note that in the case where we have generated the clustered index for the table, the function parameter is illogical: we MUST ASSUME that 'record' +is the current 'position' of the handle, because if row ref is actually the row id internally generated in InnoDB, then 'record' does not contain it. We just guess that the row id must be for the record where the handle was positioned the last time. */ diff --git a/sql/ha_innodb.h b/sql/ha_innodb.h index cac00a2d83c..6df24140df5 100644 --- a/sql/ha_innodb.h +++ b/sql/ha_innodb.h @@ -164,7 +164,8 @@ class ha_innobase: public handler void free_foreign_key_create_info(char* str); THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to, enum thr_lock_type lock_type); - void init_table_handle_for_HANDLER(); /* TODO: NOT TESTED!!! */ + /* void init_table_handle_for_HANDLER(); Not tested or used yet, code + included for documentational purposes only */ longlong get_auto_increment(); }; |