diff options
author | monty@donna.mysql.com <> | 2001-01-27 01:20:56 +0200 |
---|---|---|
committer | monty@donna.mysql.com <> | 2001-01-27 01:20:56 +0200 |
commit | a7c5b9c211cf0d5e1355ece0c65975c56b160bb1 (patch) | |
tree | bf79d814679a767435990f41e226728ee5927766 | |
parent | 5218a03a1d3780f765572eb2269aaec0bbf860c9 (diff) | |
download | mariadb-git-a7c5b9c211cf0d5e1355ece0c65975c56b160bb1.tar.gz |
Portability fixes for OPENBSD, OS2 and Windows
-rw-r--r-- | Docs/manual.texi | 22 | ||||
-rw-r--r-- | configure.in | 3 | ||||
-rw-r--r-- | include/my_sys.h | 7 | ||||
-rwxr-xr-x | ltconfig | 5 | ||||
-rw-r--r-- | ltmain.sh | 2 | ||||
-rw-r--r-- | mit-pthreads/net/net_internal.h | 1 | ||||
-rw-r--r-- | mit-pthreads/net/proto_internal.h | 1 | ||||
-rw-r--r-- | mit-pthreads/net/res_internal.h | 1 | ||||
-rw-r--r-- | mit-pthreads/net/serv_internal.h | 1 | ||||
-rw-r--r-- | myisammrg/myrg_open.c | 22 | ||||
-rw-r--r-- | mysys/my_getwd.c | 4 | ||||
-rw-r--r-- | sql/field.cc | 4 | ||||
-rw-r--r-- | sql/field.h | 1 | ||||
-rw-r--r-- | sql/ha_berkeley.cc | 17 | ||||
-rw-r--r-- | sql/ha_berkeley.h | 5 | ||||
-rw-r--r-- | sql/item_sum.h | 3 | ||||
-rw-r--r-- | sql/log.cc | 4 | ||||
-rw-r--r-- | sql/log_event.h | 4 | ||||
-rw-r--r-- | sql/mysqld.cc | 1 | ||||
-rw-r--r-- | sql/net_serv.cc | 4 | ||||
-rw-r--r-- | sql/sql_analyse.h | 15 | ||||
-rw-r--r-- | sql/sql_class.h | 3 | ||||
-rw-r--r-- | sql/sql_map.h | 4 | ||||
-rw-r--r-- | sql/sql_repl.cc | 3 | ||||
-rw-r--r-- | sql/sql_string.h | 7 | ||||
-rw-r--r-- | sql/sql_table.cc | 1 | ||||
-rw-r--r-- | strings/longlong2str-x86.s | 62 |
27 files changed, 127 insertions, 80 deletions
diff --git a/Docs/manual.texi b/Docs/manual.texi index 0e4a7b9d9ab..c91bcd855fa 100644 --- a/Docs/manual.texi +++ b/Docs/manual.texi @@ -2222,6 +2222,9 @@ Apart from the following links, you can find and download a lot of @item @uref{http://www.4t2.com/mysql}@* Information about the German MySQL mailing list. +@item @uref{http://www2.rent-a-database.de/mysql/} +@strong{MySQL} manual in German. + @item @uref{http://www.bitmover.com:8888//home/bk/mysql}@* Web access to the @strong{MySQL} BitKeeper repository. @@ -3612,7 +3615,7 @@ Payment should be made to: Postgirot Bank AB 105 06 STOCKHOLM, SWEDEN -TCX DataKonsult AB +MySQL AB BOX 6434 11382 STOCKHOLM, SWEDEN @@ -3629,7 +3632,7 @@ If you want to pay by check, make it payable to ``MySQL Finland AB'' and mail it to the address below: @example -TCX DataKonsult AB +MySQL AB BOX 6434, Torsgatan 21 11382 STOCKHOLM, SWEDEN @end example @@ -8903,17 +8906,19 @@ below: @example shell> BINDIR/mysqladmin version -mysqladmin Ver 6.3 Distrib 3.22.9-beta, for pc-linux-gnu on i686 -TCX Datakonsult AB, by Monty +mysqladmin Ver 8.14 Distrib 3.23.32, for linux on i586 +Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB +This software comes with ABSOLUTELY NO WARRANTY. This is free software, +and you are welcome to modify and redistribute it under the GPL license -Server version 3.22.9-beta +Server version 3.23.32-debug Protocol version 10 Connection Localhost via Unix socket TCP port 3306 UNIX socket /tmp/mysql.sock Uptime: 16 sec -Running threads: 1 Questions: 20 Reloads: 2 Open tables: 3 +Threads: 1 Questions: 9 Slow queries: 0 Opens: 7 Flush tables: 2 Open tables: 0 Queries per second avg: 0.000 Memory in use: 132K Max memory used: 16773K @end example To get a feeling for what else you can do with @code{BINDIR/mysqladmin}, @@ -18528,7 +18533,7 @@ CHECK TABLE tbl_name[,tbl_name...] [option [option...]] option = QUICK | FAST | MEDIUM | EXTEND | CHANGED @end example -@code{CHECK TABLE} only works on @code{MyISAM} and @code{BDB} tables. On +@code{CHECK TABLE} only works on @code{MyISAM} tables. On @code{MyISAM} tables it's the same thing as running @code{myisamchk -m table_name} on the table. @@ -18567,9 +18572,6 @@ For dynamic sized @code{MyISAM} tables a started check will always do a @code{MEDIUM} check. For static size rows we skip the row scan for @code{QUICK} and @code{FAST} as the rows are very seldom corrupted. -Note that for BDB tables the different check options doesn't affect the -check in any way! - You can combine check options as in: @example diff --git a/configure.in b/configure.in index 25872825498..a55a1e95188 100644 --- a/configure.in +++ b/configure.in @@ -4,7 +4,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(sql/mysqld.cc) AC_CANONICAL_SYSTEM # The Docs Makefile.am parses this line! -AM_INIT_AUTOMAKE(mysql, 3.23.32) +AM_INIT_AUTOMAKE(mysql, 3.23.33) AM_CONFIG_HEADER(config.h) PROTOCOL_VERSION=10 @@ -129,6 +129,7 @@ fi # Still need ranlib for readline; local static use only so no libtool. AC_PROG_RANLIB # We use libtool +#AC_LIBTOOL_WIN32_DLL AM_PROG_LIBTOOL #AC_LIBTOOL_DLOPEN AC_LIBTOOL_WIN32_DLL AC_DISABLE_FAST_INSTALL AC_DISABLE_SHARED AC_DISABLE_STATIC diff --git a/include/my_sys.h b/include/my_sys.h index a3c2a631ddf..a3cb11fc515 100644 --- a/include/my_sys.h +++ b/include/my_sys.h @@ -41,13 +41,6 @@ extern int NEAR my_errno; /* Last error in mysys */ #include <stdarg.h> -#ifdef __EMX__ -/* record loging flags (F_GETLK, F_SETLK, F_SETLKW) */ -#define F_RDLCK 1 /* FreeBSD: shared or read lock */ -#define F_UNLCK 2 /* FreeBSD: unlock */ -#define F_WRLCK 3 /* FreeBSD: exclusive or write lock */ -#endif - #define MYSYS_PROGRAM_USES_CURSES() { error_handler_hook = my_message_curses; mysys_uses_curses=1; } #define MYSYS_PROGRAM_DONT_USE_CURSES() { error_handler_hook = my_message_no_curses; mysys_uses_curses=0;} #define MY_INIT(name); { my_progname= name; my_init(); } @@ -1411,8 +1411,8 @@ else os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $linkopts $objdir/$libname.def' + allow_undefined_flag=" " + archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll $linkflags -o $lib $libobjs $deplibs $objdir/$libname.def' old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def' ;; @@ -2036,6 +2036,7 @@ os2*) need_lib_prefix=no library_names_spec='$libname.dll $libname.a' dynamic_linker='OS/2 ld.exe' + deplibs_check_method=pass_all shlibpath_var=LIBPATH ;; diff --git a/ltmain.sh b/ltmain.sh index 12abf87a56a..a1c36109556 100644 --- a/ltmain.sh +++ b/ltmain.sh @@ -819,6 +819,7 @@ compiler." old_convenience= deplibs= linkopts= + linkflags= if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var @@ -1159,6 +1160,7 @@ compiler." # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + linkflags="$linkflags $arg" case "$arg" in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" diff --git a/mit-pthreads/net/net_internal.h b/mit-pthreads/net/net_internal.h index 10ece181a94..0dc5c866e5d 100644 --- a/mit-pthreads/net/net_internal.h +++ b/mit-pthreads/net/net_internal.h @@ -44,6 +44,7 @@ static char *rcsid = "$Id$"; #include <resolv.h> #define NET_BUFSIZE 4096 +#undef ALIGN #define ALIGN(p, t) ((char *)(((((long)(p) - 1) / sizeof(t)) + 1) * sizeof(t))) #define SP(p, t, n) (ALIGN(p, t) + (n) * sizeof(t)) diff --git a/mit-pthreads/net/proto_internal.h b/mit-pthreads/net/proto_internal.h index d40f77b519e..4ed06883f25 100644 --- a/mit-pthreads/net/proto_internal.h +++ b/mit-pthreads/net/proto_internal.h @@ -44,6 +44,7 @@ static char *rcsid = "$Id$"; #include <resolv.h> #define PROTO_BUFSIZE 4096 +#undef ALIGN #define ALIGN(p, t) ((char *)(((((long)(p) - 1) / sizeof(t)) + 1) * sizeof(t))) #define SP(p, t, n) (ALIGN(p, t) + (n) * sizeof(t)) diff --git a/mit-pthreads/net/res_internal.h b/mit-pthreads/net/res_internal.h index 4a4691bab84..24e70278644 100644 --- a/mit-pthreads/net/res_internal.h +++ b/mit-pthreads/net/res_internal.h @@ -44,6 +44,7 @@ static char *rcsid = "$Id$"; #include <resolv.h> #define HOST_BUFSIZE 4096 +#undef ALIGN #define ALIGN(p, t) ((char *)(((((long)(p) - 1) / sizeof(t)) + 1) * sizeof(t))) #define SP(p, t, n) (ALIGN(p, t) + (n) * sizeof(t)) diff --git a/mit-pthreads/net/serv_internal.h b/mit-pthreads/net/serv_internal.h index 1d933826083..60a7c02c2ea 100644 --- a/mit-pthreads/net/serv_internal.h +++ b/mit-pthreads/net/serv_internal.h @@ -44,6 +44,7 @@ static char *rcsid = "$Id$"; #include <resolv.h> #define SERV_BUFSIZE 4096 +#undef ALIGN #define ALIGN(p, t) ((char *)(((((long)(p) - 1) / sizeof(t)) + 1) * sizeof(t))) #define SP(p, t, n) (ALIGN(p, t) + (n) * sizeof(t)) diff --git a/myisammrg/myrg_open.c b/myisammrg/myrg_open.c index f0a2b4348f6..f73339f63c8 100644 --- a/myisammrg/myrg_open.c +++ b/myisammrg/myrg_open.c @@ -36,11 +36,12 @@ int mode; int handle_locking; { int save_errno,i,errpos; - uint files,dir_length; + uint files,dir_length,length; ulonglong file_offset; char name_buff[FN_REFLEN*2],buff[FN_REFLEN],*end; MYRG_INFO info,*m_info; - FILE *file; + File fd; + IO_CACHE file; MI_INFO *isam,*last_isam; DBUG_ENTER("myrg_open"); @@ -49,15 +50,18 @@ int handle_locking; isam=0; errpos=files=0; bzero((gptr) &info,sizeof(info)); - if (!(file=my_fopen(fn_format(name_buff,name,"",MYRG_NAME_EXT,4), - O_RDONLY | O_SHARE,MYF(0)))) + bzero((char*) &file,sizeof(file)); + if ((fd=my_open(fn_format(name_buff,name,"",MYRG_NAME_EXT,4), + O_RDONLY | O_SHARE,MYF(0))) < 0 || + init_io_cache(&file, fd, IO_SIZE, READ_CACHE, 0, 0, + MYF(MY_WME | MY_NABP))) goto err; errpos=1; dir_length=dirname_part(name_buff,name); info.reclength=0; - while (fgets(buff,FN_REFLEN-1,file)) + while ((length=my_b_gets(&file,buff,FN_REFLEN-1))) { - if ((end=strend(buff))[-1] == '\n') + if ((end=buff+length)[-1] == '\n') end[-1]='\0'; if (buff[0] && buff[0] != '#') /* Skipp empty lines and comments */ { @@ -118,7 +122,8 @@ int handle_locking; m_info->end_table=m_info->open_tables+files; m_info->last_used_table=m_info->open_tables; - VOID(my_fclose(file,MYF(0))); + VOID(my_close(fd,MYF(0))); + end_io_cache(&file); m_info->open_list.data=(void*) m_info; pthread_mutex_lock(&THR_LOCK_open); myrg_open_list=list_add(myrg_open_list,&m_info->open_list); @@ -132,7 +137,8 @@ err: my_free((char*) m_info,MYF(0)); /* Fall through */ case 1: - VOID(my_fclose(file,MYF(0))); + VOID(my_close(fd,MYF(0))); + end_io_cache(&file); for (i=files ; i-- > 0 ; ) { isam=last_isam; diff --git a/mysys/my_getwd.c b/mysys/my_getwd.c index 3d674276731..b49737b2a61 100644 --- a/mysys/my_getwd.c +++ b/mysys/my_getwd.c @@ -29,6 +29,10 @@ #include <direct.h> #endif +#ifdef __EMX__ +// chdir2 support also drive change +#define chdir _chdir2 +#endif /* Gets current working directory in buff. Directory is allways ended with FN_LIBCHAR */ diff --git a/sql/field.cc b/sql/field.cc index 225189a1098..55a98dde0ea 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -4710,13 +4710,13 @@ create_field::create_field(Field *old_field,Field *orig_field) orig_field) { char buff[MAX_FIELD_WIDTH],*pos; - String tmp(buff,sizeof(buff)),*res; + String tmp(buff,sizeof(buff)); /* Get the value from record[2] (the default value row) */ my_ptrdiff_t diff= (my_ptrdiff_t) (orig_field->table->rec_buff_length*2); orig_field->move_field(diff); // Points now at record[2] bool is_null=orig_field->is_real_null(); - res=orig_field->val_str(&tmp,&tmp); + orig_field->val_str(&tmp,&tmp); orig_field->move_field(-diff); // Back to record[0] if (!is_null) { diff --git a/sql/field.h b/sql/field.h index 21fd9ebffd9..09ce80db615 100644 --- a/sql/field.h +++ b/sql/field.h @@ -28,6 +28,7 @@ class Send_field; struct st_cache_field; +void field_conv(Field *to,Field *from); class Field { Field(const Item &); /* Prevent use of theese */ diff --git a/sql/ha_berkeley.cc b/sql/ha_berkeley.cc index 944b335016e..9f31064cc54 100644 --- a/sql/ha_berkeley.cc +++ b/sql/ha_berkeley.cc @@ -110,8 +110,6 @@ static void berkeley_noticecall(DB_ENV *db_env, db_notices notice); bool berkeley_init(void) { - char buff[1024],*config[10], **conf_pos, *str_pos; - conf_pos=config; str_pos=buff; DBUG_ENTER("berkeley_init"); if (!berkeley_tmpdir) @@ -387,6 +385,7 @@ berkeley_cmp_packed_key(DB *file, const DBT *new_key, const DBT *saved_key) /* The following is not yet used; Should be used for fixed length keys */ +#ifdef NOT_YET static int berkeley_cmp_fix_length_key(DB *file, const DBT *new_key, const DBT *saved_key) { @@ -407,7 +406,7 @@ berkeley_cmp_fix_length_key(DB *file, const DBT *new_key, const DBT *saved_key) } return key->handler.bdb_return_if_eq; } - +#endif /* Compare key against row */ @@ -1901,7 +1900,6 @@ longlong ha_berkeley::get_auto_increment() { DBT row,old_key; bzero((char*) &row,sizeof(row)); - uint key_len; KEY *key_info= &table->key_info[active_index]; /* Reading next available number for a sub key */ @@ -1947,6 +1945,7 @@ longlong ha_berkeley::get_auto_increment() Analyzing, checking, and optimizing tables ****************************************************************************/ +#ifdef NOT_YET static void print_msg(THD *thd, const char *table_name, const char *op_name, const char *msg_type, const char *fmt, ...) { @@ -1970,7 +1969,7 @@ static void print_msg(THD *thd, const char *table_name, const char *op_name, thd->packet.length())) thd->killed=1; } - +#endif int ha_berkeley::analyze(THD* thd, HA_CHECK_OPT* check_opt) { @@ -2025,14 +2024,14 @@ int ha_berkeley::optimize(THD* thd, HA_CHECK_OPT* check_opt) int ha_berkeley::check(THD* thd, HA_CHECK_OPT* check_opt) { - char name_buff[FN_REFLEN]; - int error; - DB *tmp_file; DBUG_ENTER("ha_berkeley::check"); DBUG_RETURN(HA_ADMIN_NOT_IMPLEMENTED); #ifdef NOT_YET + char name_buff[FN_REFLEN]; + int error; + DB *tmp_file; /* To get this to work we need to ensure that no running transaction is using the table. We also need to create a new environment without @@ -2242,7 +2241,6 @@ void ha_berkeley::get_status() static int write_status(DB *status_block, char *buff, uint length) { - DB_TXN *trans; DBT row,key; int error; const char *key_buff="status"; @@ -2285,7 +2283,6 @@ static void update_status(BDB_SHARE *share, TABLE *table) } { char rec_buff[4+MAX_KEY*4], *pos=rec_buff; - const char *key_buff="status"; int4store(pos,share->rows); pos+=4; for (uint i=0 ; i < table->keys ; i++) { diff --git a/sql/ha_berkeley.h b/sql/ha_berkeley.h index 12879383261..94d12dd2a56 100644 --- a/sql/ha_berkeley.h +++ b/sql/ha_berkeley.h @@ -64,7 +64,7 @@ class ha_berkeley: public handler ulong max_row_length(const byte *buf); int pack_row(DBT *row,const byte *record, bool new_row); void unpack_row(char *record, DBT *row); - void ha_berkeley::unpack_key(char *record, DBT *key, uint index); + void unpack_key(char *record, DBT *key, uint index); DBT *create_key(DBT *key, uint keynr, char *buff, const byte *record, int key_length = MAX_KEY_LENGTH); DBT *pack_key(DBT *key, uint keynr, char *buff, const byte *key_ptr, @@ -156,13 +156,12 @@ class ha_berkeley: public handler void get_status(); inline void get_auto_primary_key(byte *to) { - ulonglong tmp; pthread_mutex_lock(&share->mutex); share->auto_ident++; int5store(to,share->auto_ident); pthread_mutex_unlock(&share->mutex); } - longlong ha_berkeley::get_auto_increment(); + longlong get_auto_increment(); }; extern bool berkeley_skip, berkeley_shared_data; diff --git a/sql/item_sum.h b/sql/item_sum.h index 66231040747..8cb09c85623 100644 --- a/sql/item_sum.h +++ b/sql/item_sum.h @@ -166,6 +166,8 @@ class Item_sum_count_distinct :public Item_sum_int /* Item to get the value of a stored sum function */ +class Item_sum_avg; + class Item_avg_field :public Item_result_field { public: @@ -200,6 +202,7 @@ class Item_sum_avg :public Item_sum_num const char *func_name() const { return "avg"; } }; +class Item_sum_std; class Item_std_field :public Item_result_field { diff --git a/sql/log.cc b/sql/log.cc index 80001acacd2..1ff86ed4b67 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -18,6 +18,10 @@ /* logging of commands */ /* TODO: Abort logging when we get an error in reading or writing log files */ +#ifdef __EMX__ +#include <io.h> +#endif + #include "mysql_priv.h" #include "sql_acl.h" #include "sql_repl.h" diff --git a/sql/log_event.h b/sql/log_event.h index 3ee1776fde3..8a22048bba4 100644 --- a/sql/log_event.h +++ b/sql/log_event.h @@ -18,6 +18,10 @@ #ifndef _LOG_EVENT_H #define _LOG_EVENT_H +#ifdef __EMX__ +#undef write // remove pthread.h macro definition, conflict with write() class member +#endif + #if defined(__GNUC__) && !defined(MYSQL_CLIENT) #pragma interface /* gcc class implementation */ #endif diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 0033c795f0f..414965b96ea 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -1048,7 +1048,6 @@ static void init_signals(void) #elif defined(__EMX__) static void sig_reload(int signo) { - //reload_acl_and_cache(~0); // Flush everything reload_acl_and_cache((THD*) 0,~0, (TABLE_LIST*) 0); // Flush everything signal(signo, SIG_ACK); } diff --git a/sql/net_serv.cc b/sql/net_serv.cc index 5e7abd5d9a7..4c4642034e1 100644 --- a/sql/net_serv.cc +++ b/sql/net_serv.cc @@ -271,7 +271,7 @@ net_real_write(NET *net,const char *packet,ulong len) int length; char *pos,*end; thr_alarm_t alarmed; -#if !defined(__WIN__) && !defined(__EMX__) +#if !defined(__WIN__) ALARM alarm_buff; #endif uint retry_count=0; @@ -426,7 +426,7 @@ static void my_net_skip_rest(NET *net, ulong remain, thr_alarm_t *alarmed) if ((int) (length=vio_read(net->vio,(char*) net->buff,remain)) <= 0L) { my_bool interrupted = vio_should_retry(net->vio); - if (!thr_got_alarm(&alarmed) && interrupted) + if (!thr_got_alarm(alarmed) && interrupted) { /* Probably in MIT threads */ if (retry_count++ < RETRY_COUNT) continue; diff --git a/sql/sql_analyse.h b/sql/sql_analyse.h index e1cab3d5949..ce5c0af6a96 100644 --- a/sql/sql_analyse.h +++ b/sql/sql_analyse.h @@ -88,6 +88,9 @@ public: }; +int collect_string(String *element, element_count count, + TREE_INFO *info); + class field_str :public field_info { String min_arg, max_arg; @@ -130,6 +133,9 @@ public: { return (String*) 0; } }; + +int collect_real(double *element, element_count count, TREE_INFO *info); + class field_real: public field_info { double min_arg, max_arg; @@ -174,6 +180,9 @@ public: { return (tree_walk_action) collect_real;} }; +int collect_longlong(longlong *element, element_count count, + TREE_INFO *info); + class field_longlong: public field_info { longlong min_arg, max_arg; @@ -216,6 +225,8 @@ public: { return (tree_walk_action) collect_longlong;} }; +int collect_ulonglong(ulonglong *element, element_count count, + TREE_INFO *info); class field_ulonglong: public field_info { @@ -261,6 +272,10 @@ public: }; +Procedure *proc_analyse_init(THD *thd, ORDER *param, + select_result *result, + List<Item> &field_list); + class analyse: public Procedure { protected: diff --git a/sql/sql_class.h b/sql/sql_class.h index ef42eaf594c..cc5095397b6 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -102,6 +102,9 @@ public: /* character conversion tables */ +class CONVERT; +CONVERT *get_convert_set(const char *name_ptr); + class CONVERT { const uchar *from_map,*to_map; diff --git a/sql/sql_map.h b/sql/sql_map.h index e9093672fef..34f2f755b43 100644 --- a/sql/sql_map.h +++ b/sql/sql_map.h @@ -21,6 +21,10 @@ #pragma interface /* gcc class implementation */ #endif +class mapped_files; +mapped_files *map_file(const my_string name,byte *magic,uint magic_length); +void unmap_file(mapped_files *map); + class mapped_files :public ilink { byte *map; ha_rows size; diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc index 4f0112bac26..590d25e3661 100644 --- a/sql/sql_repl.cc +++ b/sql/sql_repl.cc @@ -26,8 +26,7 @@ extern const char* any_db; extern pthread_handler_decl(handle_slave,arg); -static int fake_rotate_event(NET* net, String* packet, - const char* log_file_name); + static int fake_rotate_event(NET* net, String* packet, char* log_file_name, const char**errmsg) diff --git a/sql/sql_string.h b/sql/sql_string.h index f327618ffdd..31dea9991cc 100644 --- a/sql/sql_string.h +++ b/sql/sql_string.h @@ -25,6 +25,13 @@ #define NOT_FIXED_DEC 31 #endif +class String; +int sortcmp(const String *a,const String *b); +int stringcmp(const String *a,const String *b); +String *copy_if_not_alloced(String *a,String *b,uint32 arg_length); +int wild_case_compare(String &match,String &wild,char escape); +int wild_compare(String &match,String &wild,char escape); + class String { char *Ptr; diff --git a/sql/sql_table.cc b/sql/sql_table.cc index a666fa26545..954a1f8efd7 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -798,7 +798,6 @@ static int send_check_errmsg(THD* thd, TABLE_LIST* table, static int prepare_for_restore(THD* thd, TABLE_LIST* table) { - String *packet = &thd->packet; DBUG_ENTER("prepare_for_restore"); if (table->table) // do not overwrite existing tables on restore diff --git a/strings/longlong2str-x86.s b/strings/longlong2str-x86.s index 8ce711f812e..bafc485f759 100644 --- a/strings/longlong2str-x86.s +++ b/strings/longlong2str-x86.s @@ -14,8 +14,8 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* Optimized longlong2str function for Intel 80x86 (gcc/gas syntax) */ -/* Some set sequences are optimized for pentuimpro II */ +# Optimized longlong2str function for Intel 80x86 (gcc/gas syntax) +# Some set sequences are optimized for pentuimpro II .file "longlong2str.s" .version "1.01" @@ -32,90 +32,90 @@ longlong2str: pushl %esi pushl %edi pushl %ebx - movl 100(%esp),%esi /* Lower part of val */ - movl 104(%esp),%ebp /* Higher part of val */ - movl 108(%esp),%edi /* get dst */ - movl 112(%esp),%ebx /* Radix */ + movl 100(%esp),%esi # Lower part of val + movl 104(%esp),%ebp # Higher part of val + movl 108(%esp),%edi # get dst + movl 112(%esp),%ebx # Radix movl %ebx,%eax testl %eax,%eax jge .L144 addl $36,%eax cmpl $34,%eax - ja .Lerror /* Wrong radix */ + ja .Lerror # Wrong radix testl %ebp,%ebp jge .L146 - movb $45,(%edi) /* Add sign */ - incl %edi /* Change sign of val */ + movb $45,(%edi) # Add sign + incl %edi # Change sign of val negl %esi adcl $0,%ebp negl %ebp .L146: - negl %ebx /* Change radix to positive */ + negl %ebx # Change radix to positive jmp .L148 - .p2align 4,,7 + .align 4 .L144: addl $-2,%eax cmpl $34,%eax - ja .Lerror /* Radix in range */ + ja .Lerror # Radix in range .L148: - movl %esi,%eax /* Test if zero (for easy loop) */ + movl %esi,%eax # Test if zero (for easy loop) orl %ebp,%eax jne .L150 movb $48,(%edi) incl %edi jmp .L164 - .p2align 4,,7 + .align 4 .L150: - leal 92(%esp),%ecx /* End of buffer */ + leal 92(%esp),%ecx # End of buffer jmp .L155 - .p2align 4,,7 + .align 4 .L153: - /* val is stored in in ebp:esi */ + # val is stored in in ebp:esi - movl %ebp,%eax /* High part of value */ + movl %ebp,%eax # High part of value xorl %edx,%edx divl %ebx movl %eax,%ebp movl %esi,%eax divl %ebx - movl %eax,%esi /* quotent in ebp:esi */ - movb _dig_vec(%edx),%al /* al is faster than dl */ + movl %eax,%esi # quotent in ebp:esi + movb _dig_vec(%edx),%al # al is faster than dl decl %ecx - movb %al,(%ecx) /* store value in buff */ - .p2align 4,,7 + movb %al,(%ecx) # store value in buff + .align 4 .L155: testl %ebp,%ebp ja .L153 - testl %esi,%esi /* rest value */ + testl %esi,%esi # rest value jl .L153 - je .L160 /* Ready */ + je .L160 # Ready movl %esi,%eax movl $_dig_vec,%ebp - .p2align 4,,7 + .align 4 -.L154: /* Do rest with integer precision */ +.L154: # Do rest with integer precision cltd divl %ebx decl %ecx - movb (%edx,%ebp),%dl /* bh is always zero as ebx=radix < 36 */ + movb (%edx,%ebp),%dl # bh is always zero as ebx=radix < 36 testl %eax,%eax movb %dl,(%ecx) jne .L154 .L160: movl %ecx,%esi - leal 92(%esp),%ecx /* End of buffer */ + leal 92(%esp),%ecx # End of buffer subl %esi,%ecx rep movsb .L164: - movl %edi,%eax /* Pointer to end null */ - movb $0,(%edi) /* Store the end null */ + movl %edi,%eax # Pointer to end null + movb $0,(%edi) # Store the end null .L165: popl %ebx @@ -126,7 +126,7 @@ longlong2str: ret .Lerror: - xorl %eax,%eax /* Wrong radix */ + xorl %eax,%eax # Wrong radix jmp .L165 .Lfe3: |