diff --git a/Docs/glibc-2.2.5.patch b/Docs/glibc-2.2.5.patch
index c6bc2bf39a8..9b905e6e744 100644
--- a/Docs/glibc-2.2.5.patch
+++ b/Docs/glibc-2.2.5.patch
@@ -1,73 +1,183 @@
-diff -Nur --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet ../glibc-2.2.5/linuxthreads/internals.h ./linuxthreads/internals.h
---- ../glibc-2.2.5/linuxthreads/internals.h	Thu Nov 29 00:44:16 2001
-+++ ./linuxthreads/internals.h	Fri Feb 22 21:18:09 2002
-@@ -343,7 +343,7 @@
-    THREAD_SELF implementation is used, this must be a power of two and
-    a multiple of PAGE_SIZE.  */
- #ifndef STACK_SIZE
--#define STACK_SIZE  (2 * 1024 * 1024)
-+#define STACK_SIZE  (128 * 1024)
- #endif
- 
- /* The initial size of the thread stack.  Must be a multiple of PAGE_SIZE.  */
-diff -Nur --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet ../glibc-2.2.5/linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h ./linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h
---- ../glibc-2.2.5/linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h	Thu Jun  8 13:49:49 2000
-+++ ./linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h	Fri Feb 22 21:18:09 2002
-@@ -64,7 +64,7 @@
- /* The number of threads per process.  */
- #define _POSIX_THREAD_THREADS_MAX	64
- /* This is the value this implementation supports.  */
--#define PTHREAD_THREADS_MAX	1024
-+#define PTHREAD_THREADS_MAX	4096
- 
- /* Maximum amount by which a process can descrease its asynchronous I/O
-    priority level.  */
-diff -Nur --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet ../glibc-2.2.5/nss/nsswitch.c ./nss/nsswitch.c
---- ../glibc-2.2.5/nss/nsswitch.c	Tue Jul 17 02:21:36 2001
-+++ ./nss/nsswitch.c	Fri Feb 22 21:18:09 2002
-@@ -515,8 +515,16 @@
- 					     + (line - name + 1));
-       if (new_service == NULL)
- 	return result;
--
-+#ifdef DO_STATIC_NSS
-+      if (strncmp(name,"files",5) == 0 ||
-+	  strncmp(name,"dns",3) == 0)
-+#endif      
-       *((char *) __mempcpy (new_service->name, name, line - name)) = '\0';
-+#ifdef DO_STATIC_NSS
-+      else
-+        *((char *) __mempcpy (new_service->name, "files", 5)) = '\0';
-+#endif      
-+	
- 
-       /* Set default actions.  */
-       new_service->actions[2 + NSS_STATUS_TRYAGAIN] = NSS_ACTION_CONTINUE;
-diff -Nur --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet ../glibc-2.2.5/time/Makefile ./time/Makefile
---- ../glibc-2.2.5/time/Makefile	Fri Feb 22 21:27:19 2002
-+++ ./time/Makefile	Fri Feb 22 21:26:47 2002
-@@ -37,8 +37,8 @@
- 
- include ../Rules
- 
--tz-cflags = -DTZDIR='"$(zonedir)"' \
--	    -DTZDEFAULT='"$(localtime-file)"' \
-+tz-cflags = -DTZDIR='"/usr/share/zoneinfo/"' \
-+	    -DTZDEFAULT='"/etc/localtime"' \
- 	    -DTZDEFRULES='"$(posixrules-file)"'
- 
- CFLAGS-tzfile.c = $(tz-cflags)
-diff -Nur --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet ../glibc-2.2.5/timezone/Makefile ./timezone/Makefile
---- ../glibc-2.2.5/timezone/Makefile	Wed Aug 29 16:45:25 2001
-+++ ./timezone/Makefile	Fri Feb 22 21:18:09 2002
-@@ -159,8 +159,8 @@
- 
- $(objpfx)zic: $(objpfx)scheck.o $(objpfx)ialloc.o
- 
--tz-cflags = -DTZDIR='"$(zonedir)"' \
--	    -DTZDEFAULT='"$(localtime-file)"' \
-+tz-cflags = -DTZDIR='"/usr/share/zoneinfo/"' \
-+	    -DTZDEFAULT='"/etc/localtime"' \
- 	    -DTZDEFRULES='"$(posixrules-file)"' \
- 	    -DTM_GMTOFF=tm_gmtoff -DTM_ZONE=tm_zone
- 
+Only in glibc-2.2.4-new: bits
+Only in glibc-2.2.4-new: config.cache
+Only in glibc-2.2.4-new: config.h
+Only in glibc-2.2.4-new: config.log
+Only in glibc-2.2.4-new: config.make
+Only in glibc-2.2.4-new: config.status
+Only in glibc-2.2.4-new: glibcbug
+Only in glibc-2.2.4-new/iconv: strtab.o
+diff -r -c glibc-2.2.4/linuxthreads/internals.h glibc-2.2.4-new/linuxthreads/internals.h
+*** glibc-2.2.4/linuxthreads/internals.h	Mon Jul 23 20:54:13 2001
+--- glibc-2.2.4-new/linuxthreads/internals.h	Tue Apr 16 15:08:03 2002
+***************
+*** 339,345 ****
+     THREAD_SELF implementation is used, this must be a power of two and
+     a multiple of PAGE_SIZE.  */
+  #ifndef STACK_SIZE
+! #define STACK_SIZE  (2 * 1024 * 1024)
+  #endif
+  
+  /* The initial size of the thread stack.  Must be a multiple of PAGE_SIZE.  */
+--- 339,345 ----
+     THREAD_SELF implementation is used, this must be a power of two and
+     a multiple of PAGE_SIZE.  */
+  #ifndef STACK_SIZE
+! #define STACK_SIZE  (128 * 1024)
+  #endif
+  
+  /* The initial size of the thread stack.  Must be a multiple of PAGE_SIZE.  */
+Only in glibc-2.2.4-new/linuxthreads: internals.h.rej
+diff -r -c glibc-2.2.4/linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h glibc-2.2.4-new/linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h
+*** glibc-2.2.4/linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h	Fri Jun  9 22:17:35 2000
+--- glibc-2.2.4-new/linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h	Tue Apr 16 15:10:38 2002
+***************
+*** 64,70 ****
+  /* The number of threads per process.  */
+  #define _POSIX_THREAD_THREADS_MAX	64
+  /* This is the value this implementation supports.  */
+! #define PTHREAD_THREADS_MAX	1024
+  
+  /* Maximum amount by which a process can descrease its asynchronous I/O
+     priority level.  */
+--- 64,70 ----
+  /* The number of threads per process.  */
+  #define _POSIX_THREAD_THREADS_MAX	64
+  /* This is the value this implementation supports.  */
+! #define PTHREAD_THREADS_MAX	4096
+  
+  /* Maximum amount by which a process can descrease its asynchronous I/O
+     priority level.  */
+Only in glibc-2.2.4-new/linuxthreads/sysdeps/unix/sysv/linux/bits: local_lim.h.rej
+Only in glibc-2.2.4-new/manual: chapters.texi
+Only in glibc-2.2.4/manual: dir-add.info
+Only in glibc-2.2.4/manual: libc.info
+Only in glibc-2.2.4/manual: libc.info-1
+Only in glibc-2.2.4/manual: libc.info-10
+Only in glibc-2.2.4/manual: libc.info-11
+Only in glibc-2.2.4/manual: libc.info-12
+Only in glibc-2.2.4/manual: libc.info-13
+Only in glibc-2.2.4/manual: libc.info-14
+Only in glibc-2.2.4/manual: libc.info-15
+Only in glibc-2.2.4/manual: libc.info-16
+Only in glibc-2.2.4/manual: libc.info-17
+Only in glibc-2.2.4/manual: libc.info-18
+Only in glibc-2.2.4/manual: libc.info-19
+Only in glibc-2.2.4/manual: libc.info-2
+Only in glibc-2.2.4/manual: libc.info-20
+Only in glibc-2.2.4/manual: libc.info-21
+Only in glibc-2.2.4/manual: libc.info-22
+Only in glibc-2.2.4/manual: libc.info-23
+Only in glibc-2.2.4/manual: libc.info-24
+Only in glibc-2.2.4/manual: libc.info-25
+Only in glibc-2.2.4/manual: libc.info-26
+Only in glibc-2.2.4/manual: libc.info-27
+Only in glibc-2.2.4/manual: libc.info-28
+Only in glibc-2.2.4/manual: libc.info-29
+Only in glibc-2.2.4/manual: libc.info-3
+Only in glibc-2.2.4/manual: libc.info-30
+Only in glibc-2.2.4/manual: libc.info-31
+Only in glibc-2.2.4/manual: libc.info-32
+Only in glibc-2.2.4/manual: libc.info-33
+Only in glibc-2.2.4/manual: libc.info-34
+Only in glibc-2.2.4/manual: libc.info-35
+Only in glibc-2.2.4/manual: libc.info-36
+Only in glibc-2.2.4/manual: libc.info-37
+Only in glibc-2.2.4/manual: libc.info-38
+Only in glibc-2.2.4/manual: libc.info-39
+Only in glibc-2.2.4/manual: libc.info-4
+Only in glibc-2.2.4/manual: libc.info-40
+Only in glibc-2.2.4/manual: libc.info-41
+Only in glibc-2.2.4/manual: libc.info-42
+Only in glibc-2.2.4/manual: libc.info-43
+Only in glibc-2.2.4/manual: libc.info-44
+Only in glibc-2.2.4/manual: libc.info-45
+Only in glibc-2.2.4/manual: libc.info-46
+Only in glibc-2.2.4/manual: libc.info-47
+Only in glibc-2.2.4/manual: libc.info-48
+Only in glibc-2.2.4/manual: libc.info-49
+Only in glibc-2.2.4/manual: libc.info-5
+Only in glibc-2.2.4/manual: libc.info-50
+Only in glibc-2.2.4/manual: libc.info-51
+Only in glibc-2.2.4/manual: libc.info-52
+Only in glibc-2.2.4/manual: libc.info-53
+Only in glibc-2.2.4/manual: libc.info-54
+Only in glibc-2.2.4/manual: libc.info-55
+Only in glibc-2.2.4/manual: libc.info-56
+Only in glibc-2.2.4/manual: libc.info-57
+Only in glibc-2.2.4/manual: libc.info-58
+Only in glibc-2.2.4/manual: libc.info-59
+Only in glibc-2.2.4/manual: libc.info-6
+Only in glibc-2.2.4/manual: libc.info-60
+Only in glibc-2.2.4/manual: libc.info-7
+Only in glibc-2.2.4/manual: libc.info-8
+Only in glibc-2.2.4/manual: libc.info-9
+Only in glibc-2.2.4-new/manual: stamp-summary
+Only in glibc-2.2.4-new/manual: summary.texi
+Only in glibc-2.2.4-new/manual: texis
+Only in glibc-2.2.4-new/manual: top-menu.texi
+Only in glibc-2.2.4-new/nss: nsswitch-org.c
+diff -r -c glibc-2.2.4/nss/nsswitch.c glibc-2.2.4-new/nss/nsswitch.c
+*** glibc-2.2.4/nss/nsswitch.c	Mon Jul 23 20:54:48 2001
+--- glibc-2.2.4-new/nss/nsswitch.c	Tue Apr 16 15:43:32 2002
+***************
+*** 510,515 ****
+--- 510,523 ----
+        if (name == line)
+  	return result;
+  
++ #ifdef DO_STATIC_NSS
++       if (!(((line-name) == 5 && strncmp(name,"files",5) == 0) ||
++ 	    ((line-name) == 3 && strncmp(name,"dns",3) == 0)))
++       {
++ 	name = (char*) "files";
++ 	line = (char*) name+5;
++       }
++ #endif      
+  
+        new_service = (service_user *) malloc (sizeof (service_user)
+  					     + (line - name + 1));
+Only in glibc-2.2.4-new: skr
+diff -r -c glibc-2.2.4/time/Makefile glibc-2.2.4-new/time/Makefile
+*** glibc-2.2.4/time/Makefile	Fri Aug 10 22:12:07 2001
+--- glibc-2.2.4-new/time/Makefile	Tue Apr 16 15:11:09 2002
+***************
+*** 37,44 ****
+  
+  include ../Rules
+  
+! tz-cflags = -DTZDIR='"$(zonedir)"' \
+! 	    -DTZDEFAULT='"$(localtime-file)"' \
+  	    -DTZDEFRULES='"$(posixrules-file)"'
+  
+  CFLAGS-tzfile.c = $(tz-cflags)
+--- 37,44 ----
+  
+  include ../Rules
+  
+! tz-cflags = -DTZDIR='"/usr/share/zoneinfo/"' \
+! 	    -DTZDEFAULT='"/etc/localtime"' \
+  	    -DTZDEFRULES='"$(posixrules-file)"'
+  
+  CFLAGS-tzfile.c = $(tz-cflags)
+diff -r -c glibc-2.2.4/timezone/Makefile glibc-2.2.4-new/timezone/Makefile
+*** glibc-2.2.4/timezone/Makefile	Mon Jul 23 20:58:05 2001
+--- glibc-2.2.4-new/timezone/Makefile	Tue Apr 16 15:11:09 2002
+***************
+*** 159,166 ****
+  
+  $(objpfx)zic: $(objpfx)scheck.o $(objpfx)ialloc.o
+  
+! tz-cflags = -DTZDIR='"$(zonedir)"' \
+! 	    -DTZDEFAULT='"$(localtime-file)"' \
+  	    -DTZDEFRULES='"$(posixrules-file)"' \
+  	    -DTM_GMTOFF=tm_gmtoff -DTM_ZONE=tm_zone
+  
+--- 159,166 ----
+  
+  $(objpfx)zic: $(objpfx)scheck.o $(objpfx)ialloc.o
+  
+! tz-cflags = -DTZDIR='"/usr/share/zoneinfo/"' \
+! 	    -DTZDEFAULT='"/etc/localtime"' \
+  	    -DTZDEFRULES='"$(posixrules-file)"' \
+  	    -DTM_GMTOFF=tm_gmtoff -DTM_ZONE=tm_zone
+  
diff --git a/Docs/manual.texi b/Docs/manual.texi
index dc7884bb7f8..6e973f85264 100644
--- a/Docs/manual.texi
+++ b/Docs/manual.texi
@@ -45829,9 +45829,6 @@ Another common reason to receive the @code{MySQL server has gone away} error
 is because you have issued a ``close'' on your MySQL connection
 and then tried to run a query on the closed connection.
 
-You can check that the MySQL hasn't died by executing
-@code{mysqladmin version} and examining the uptime.
-
 If you have a script, you just have to issue the query again for the client
 to do an automatic reconnection.
 
@@ -45846,6 +45843,15 @@ server.
 to the server, but it didn't get a full answer (or any answer) to the question.
 @end multitable
 
+You will also get this error if someone has kills the running thread with
+@code{kill #threadid#}.
+
+You can check that the MySQL hasn't died by executing @code{mysqladmin
+version} and examining the uptime.  If the problem is that mysqld
+crashed you should concentrate one finding the reason for the crash.
+You should in this case start by checking if issuing the query again
+will kill MySQL again. @xref{Crashing}.
+
 You can also get these errors if you send a query to the server that is
 incorrect or too large. If @code{mysqld} gets a packet that is too large
 or out of order, it assumes that something has gone wrong with the client and
@@ -45856,6 +45862,26 @@ starting @code{mysqld} with the @code{-O max_allowed_packet=#} option
 use more memory only when you issue a big query or when @code{mysqld} must
 return a big result row!
 
+If you want to make a bug report regarding this problem, be sure that
+you include the following information:
+
+@itemize @bullet
+@item
+Include information if MySQL died or not. (You can find this in the
+@code{hostname.err file}. @xref{Crashing}.
+@item
+If a specific query kills @code{mysqld} and the involved tables where
+checked with @code{CHECK TABLE} before you did the query, can you do
+a test case for this? @xref{Reproduceable test case}.
+@item
+What is the value of the @code{wait_timeout} variable in the MySQL server ?
+@code{mysqladmin variables} gives you the value of this
+@item
+Have you tried to run @code{mysqld} with @code{--log} and check if the
+issued query appears in the log ?
+@end itemize
+
+@xref{Asking questions}.
 
 @node Can not connect to server, Blocked host, Gone away, Common errors
 @appendixsubsec @code{Can't connect to [local] MySQL server} Error
diff --git a/client/mysql.cc b/client/mysql.cc
index 239e624a691..24abefedda3 100644
--- a/client/mysql.cc
+++ b/client/mysql.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 MySQL AB
+/* Copyright (C) 2000-2002 MySQL AB
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -685,7 +685,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
       break;
     case 'p':
       if (argument == disabled_my_option)
-	opt_password= "";
+	opt_password= (char*) "";
       else
       {
 	if (argument)
@@ -2319,7 +2319,7 @@ com_status(String *buffer __attribute__((unused)),
     }
 #ifdef HAVE_OPENSSL
     if (mysql.net.vio->ssl_ && SSL_get_cipher(mysql.net.vio->ssl_))
-      tee_fprintf("SSL cipher in use is %s\n",
+      tee_fprintf(stdout, "SSL cipher in use is %s\n",
 		  SSL_get_cipher(mysql.net.vio->ssl_));
     else
 #endif /* HAVE_OPENSSL */
diff --git a/mysys/my_thr_init.c b/mysys/my_thr_init.c
index 5b137df20f8..0bd542d2bd9 100644
--- a/mysys/my_thr_init.c
+++ b/mysys/my_thr_init.c
@@ -105,7 +105,7 @@ static long thread_id=0;
 my_bool my_thread_init(void)
 {
   struct st_my_thread_var *tmp;
-#ifdef EXTRA_DEBUG
+#ifdef EXTRA_DEBUG_THREADS
   fprintf(stderr,"my_thread_init(): thread_id=%ld\n",pthread_self());
 #endif  
 #if !defined(__WIN__) || defined(USE_TLS) || ! defined(SAFE_MUTEX)
@@ -152,7 +152,7 @@ end:
 void my_thread_end(void)
 {
   struct st_my_thread_var *tmp=my_thread_var;
-#ifdef EXTRA_DEBUG
+#ifdef EXTRA_DEBUG_THREADS
   fprintf(stderr,"my_thread_end(): tmp=%p,thread_id=%ld\n",
 	  tmp,pthread_self());
 #endif  
diff --git a/sql-bench/limits/mysql.cfg b/sql-bench/limits/mysql.cfg
index a496bd7bf4c..cd4aea7dcf5 100644
--- a/sql-bench/limits/mysql.cfg
+++ b/sql-bench/limits/mysql.cfg
@@ -29,7 +29,7 @@ columns_in_order_by=+64			# number of columns in order by
 comment_#=yes				# # as comment
 comment_--=yes				# -- as comment (ANSI)
 comment_/**/=yes			# /* */ as comment
-comment_//=no				# // as comment (ANSI)
+comment_//=no				# // as comment
 compute=no				# Compute
 connections=101				# Simultaneous connections (installation default)
 constraint_check=no			# Column constraints
@@ -62,6 +62,7 @@ except=no				# except
 except_all=no				# except all
 except_all_incompat=no			# except all (incompatible lists)
 except_incompat=no			# except (incompatible lists)
+field_name_case=yes			# case independent field names
 float_int_expr=yes			# mixing of integer and float in expression
 foreign_key=no				# foreign keys
 foreign_key_syntax=yes			# foreign key syntax
@@ -228,10 +229,10 @@ func_odbc_timestampdiff=no		# Function TIMESTAMPDIFF
 func_odbc_truncate=yes			# Function TRUNCATE
 func_odbc_ucase=yes			# Function UCASE
 func_odbc_user()=yes			# Function USER()
-func_odbc_week=yes			# Function WEEK
+func_odbc_week=error			# Function WEEK
 func_odbc_year=yes			# Function YEAR
 func_sql_+=yes				# Function +, -, * and /
-func_sql_bit_length=no			# Function BIT_LENGTH
+func_sql_bit_length=yes			# Function BIT_LENGTH
 func_sql_cast=no			# Function CAST
 func_sql_char_length=error		# Function CHAR_LENGTH
 func_sql_char_length(constant)=yes	# Function CHAR_LENGTH(constant)
@@ -299,13 +300,14 @@ group_func_sql_min_str=yes		# Group function MIN on strings
 group_func_sql_some=no			# Group function SOME
 group_func_sql_sum=yes			# Group function SUM
 group_functions=yes			# Group functions
+group_many_distinct_functions=yes	# Group functions with several distinct
 group_on_unused=yes			# Group on unused column
 has_true_false=no			# TRUE and FALSE
 having=yes				# Having
 having_with_alias=yes			# Having on alias
 having_with_group=yes			# Having with group function
 hex_numbers=yes				# hex numbers (0x41)
-hex_strings=no				# hex strings (x'1ace')
+hex_strings=yes				# hex strings (x'1ace')
 ignore_end_space=yes			# Ignore end space in compare
 index_in_create=yes			# index in create table
 index_namespace=yes			# different namespace for index
@@ -319,7 +321,7 @@ intersect=no				# intersect
 intersect_all=no			# intersect all
 intersect_all_incompat=no		# intersect all (incompatible lists)
 intersect_incompat=no			# intersect (incompatible lists)
-join_tables=63				# tables in join
+join_tables=31				# tables in join
 left_outer_join=yes			# left outer join
 left_outer_join_using=yes		# left outer join using
 like_with_column=yes			# column LIKE column
@@ -331,7 +333,7 @@ max_char_size=255			# max char() size
 max_column_name=64			# column name length
 max_columns=3398			# Columns in table
 max_conditions=85660			# OR and AND in WHERE
-max_expressions=1837			# simple expressions
+max_expressions=856			# simple expressions
 max_index=32				# max index
 max_index_length=500			# index length
 max_index_name=64			# index name length
@@ -341,7 +343,7 @@ max_index_varchar_part_length=255	# index varchar part length
 max_row_length=65534			# max table row length (without blobs)
 max_row_length_with_null=65502		# table row length with nulls (without blobs)
 max_select_alias_name=+512		# select alias name length
-max_stack_expression=1837		# stacked expressions
+max_stack_expression=856		# stacked expressions
 max_table_alias_name=+512		# table alias name length
 max_table_name=64			# table name length
 max_text_size=1048543			# max text or blob size
@@ -353,8 +355,8 @@ minus_neg=yes				# Calculate 1--1
 multi_drop=yes				# many tables to drop table
 multi_null_in_unique=yes		# null in unique index
 multi_strings=yes			# Multiple line strings
-multi_table_delete=no			# DELETE FROM table1,table2...
-multi_table_update=no			# Update with many tables
+multi_table_delete=yes			# DELETE FROM table1,table2...
+multi_table_update=yes			# Update with many tables
 natural_join=yes			# natural join
 natural_join_incompat=yes		# natural join (incompatible lists)
 natural_left_outer_join=yes		# natural left outer join
@@ -365,7 +367,7 @@ null_in_unique=yes			# null in unique index
 null_num_expr=yes			# Is 1+NULL = NULL
 nulls_in_unique=yes			# null combination in unique index
 odbc_left_outer_join=yes		# left outer join odbc style
-operating_system=Linux 2.2.13-SMP alpha	# crash-me tested on
+operating_system=Linux 2.4.16-64GB-SMP i686	# crash-me tested on
 order_by=yes				# Order by
 order_by_alias=yes			# Order by alias
 order_by_function=yes			# Order by function
@@ -385,7 +387,7 @@ quote_with_"=yes			# Allows ' and " as string markers
 remember_end_space=no			# Remembers end space in char()
 remember_end_space_varchar=no		# Remembers end space in varchar()
 rename_table=yes			# rename table
-repeat_string_size=1047552		# return string size from function
+repeat_string_size=1048576		# return string size from function
 right_outer_join=yes			# right outer join
 rowid=auto_increment			# Type for row id
 select_constants=yes			# Select constants
@@ -394,7 +396,7 @@ select_limit2=yes			# SELECT with LIMIT #,#
 select_string_size=1048565		# constant string size in SELECT
 select_table_update=no			# Update with sub select
 select_without_from=yes			# SELECT without FROM
-server_version=MySQL 3.23.39 debug	# server version
+server_version=MySQL 4.0.2 alpha debug	# server version
 simple_joins=yes			# ANSI SQL simple joins
 storage_of_float=round			# Storage of float values
 subqueries=no				# subqueries
@@ -402,7 +404,7 @@ table_alias=yes				# Table alias
 table_name_case=no			# case independent table names
 table_wildcard=yes			# Select table_name.*
 temporary_table=yes			# temporary tables
-transactions=yes			# constant string size in where
+transactions=yes			# transactions
 truncate_table=yes			# truncate
 type_extra_abstime=no			# Type abstime
 type_extra_bfile=no			# Type bfile
@@ -512,12 +514,11 @@ type_sql_time=yes			# Type time
 type_sql_timestamp=yes			# Type timestamp
 type_sql_timestamp_with_time_zone=no	# Type timestamp with time zone
 type_sql_varchar(1_arg)=yes		# Type varchar(1 arg)
-union=no				# union
-union_all=no				# union all
-union_all_incompat=no			# union all (incompatible lists)
-union_incompat=no			# union (incompatible lists)
+union=yes				# union
+union_all=yes				# union all
+union_all_incompat=yes			# union all (incompatible lists)
+union_incompat=yes			# union (incompatible lists)
 unique_in_create=yes			# unique in create table
 unique_null_in_create=yes		# unique null in create
-user_comment=Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; ccc + cxx	# comment
 views=no				# views
 where_string_size=1048539		# constant string size in where