summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--VC++Files/client/mysqlclient.dsp4
-rw-r--r--VC++Files/client/mysqlclient.vcproj3
-rw-r--r--VC++Files/client/mysqlclient_ia64.dsp4
-rw-r--r--VC++Files/libmysql/libmysql.dsp4
-rw-r--r--VC++Files/libmysql/libmysql.vcproj3
-rw-r--r--VC++Files/libmysql/libmysql_ia64.dsp4
-rw-r--r--VC++Files/mysys/mysys.dsp6
-rw-r--r--VC++Files/mysys/mysys.vcproj5
-rw-r--r--VC++Files/mysys/mysys_ia64.dsp8
-rw-r--r--include/Makefile.am2
-rw-r--r--include/heap.h4
-rw-r--r--include/my_compare.h (renamed from include/my_handler.h)27
-rw-r--r--include/my_global.h4
-rw-r--r--include/myisam.h4
-rwxr-xr-xlibmysql/CMakeLists.txt2
-rw-r--r--libmysql/Makefile.shared2
-rw-r--r--myisam/ft_stopwords.c4
-rw-r--r--myisam/mi_check.c89
-rw-r--r--myisam/mi_range.c4
-rwxr-xr-xmysys/CMakeLists.txt4
-rw-r--r--mysys/Makefile.am6
-rw-r--r--mysys/my_compare.c (renamed from mysys/my_handler.c)117
-rw-r--r--mysys/my_gethostbyname.c111
-rw-r--r--mysys/my_net.c90
-rw-r--r--mysys/my_port.c40
-rw-r--r--mysys/raid2.c31
26 files changed, 225 insertions, 357 deletions
diff --git a/VC++Files/client/mysqlclient.dsp b/VC++Files/client/mysqlclient.dsp
index c14fc31ab8d..6890513feb0 100644
--- a/VC++Files/client/mysqlclient.dsp
+++ b/VC++Files/client/mysqlclient.dsp
@@ -371,10 +371,6 @@ SOURCE=..\mysys\my_fstream.c
# End Source File
# Begin Source File
-SOURCE=..\mysys\my_gethostbyname.c
-# End Source File
-# Begin Source File
-
SOURCE=..\mysys\my_getopt.c
# End Source File
# Begin Source File
diff --git a/VC++Files/client/mysqlclient.vcproj b/VC++Files/client/mysqlclient.vcproj
index a3fb0aa9a47..610e8bc952c 100644
--- a/VC++Files/client/mysqlclient.vcproj
+++ b/VC++Files/client/mysqlclient.vcproj
@@ -352,9 +352,6 @@
RelativePath="..\mysys\my_fstream.c">
</File>
<File
- RelativePath="..\mysys\my_gethostbyname.c">
- </File>
- <File
RelativePath="..\mysys\my_getopt.c">
</File>
<File
diff --git a/VC++Files/client/mysqlclient_ia64.dsp b/VC++Files/client/mysqlclient_ia64.dsp
index 1aa6836ca58..3bbe56072b8 100644
--- a/VC++Files/client/mysqlclient_ia64.dsp
+++ b/VC++Files/client/mysqlclient_ia64.dsp
@@ -356,10 +356,6 @@ SOURCE=..\mysys\my_fstream.c
# End Source File
# Begin Source File
-SOURCE=..\mysys\my_gethostbyname.c
-# End Source File
-# Begin Source File
-
SOURCE=..\mysys\my_getopt.c
# End Source File
# Begin Source File
diff --git a/VC++Files/libmysql/libmysql.dsp b/VC++Files/libmysql/libmysql.dsp
index e17bee12d1b..69fe7b18d3e 100644
--- a/VC++Files/libmysql/libmysql.dsp
+++ b/VC++Files/libmysql/libmysql.dsp
@@ -343,10 +343,6 @@ SOURCE=..\mysys\my_fstream.c
# End Source File
# Begin Source File
-SOURCE=..\mysys\my_gethostbyname.c
-# End Source File
-# Begin Source File
-
SOURCE=..\mysys\my_getopt.c
# End Source File
# Begin Source File
diff --git a/VC++Files/libmysql/libmysql.vcproj b/VC++Files/libmysql/libmysql.vcproj
index c85cc960f32..6662c99dcb3 100644
--- a/VC++Files/libmysql/libmysql.vcproj
+++ b/VC++Files/libmysql/libmysql.vcproj
@@ -330,9 +330,6 @@
RelativePath="..\mysys\my_fstream.c">
</File>
<File
- RelativePath="..\mysys\my_gethostbyname.c">
- </File>
- <File
RelativePath="..\mysys\my_getopt.c">
</File>
<File
diff --git a/VC++Files/libmysql/libmysql_ia64.dsp b/VC++Files/libmysql/libmysql_ia64.dsp
index dc8778cfe23..9555723f840 100644
--- a/VC++Files/libmysql/libmysql_ia64.dsp
+++ b/VC++Files/libmysql/libmysql_ia64.dsp
@@ -334,10 +334,6 @@ SOURCE=..\mysys\my_fstream.c
# End Source File
# Begin Source File
-SOURCE=..\mysys\my_gethostbyname.c
-# End Source File
-# Begin Source File
-
SOURCE=..\mysys\my_getopt.c
# End Source File
# Begin Source File
diff --git a/VC++Files/mysys/mysys.dsp b/VC++Files/mysys/mysys.dsp
index a920a0bd967..d9411c2e91a 100644
--- a/VC++Files/mysys/mysys.dsp
+++ b/VC++Files/mysys/mysys.dsp
@@ -405,10 +405,6 @@ SOURCE=.\my_fstream.c
# End Source File
# Begin Source File
-SOURCE=.\my_gethostbyname.c
-# End Source File
-# Begin Source File
-
SOURCE=.\my_gethwaddr.c
# End Source File
# Begin Source File
@@ -425,7 +421,7 @@ SOURCE=.\my_getwd.c
# End Source File
# Begin Source File
-SOURCE=.\my_handler.c
+SOURCE=.\my_compare.c
# End Source File
# Begin Source File
diff --git a/VC++Files/mysys/mysys.vcproj b/VC++Files/mysys/mysys.vcproj
index 53b5394b27d..26e761b72ca 100644
--- a/VC++Files/mysys/mysys.vcproj
+++ b/VC++Files/mysys/mysys.vcproj
@@ -477,9 +477,6 @@
RelativePath="my_fstream.c">
</File>
<File
- RelativePath="my_gethostbyname.c">
- </File>
- <File
RelativePath="my_gethwaddr.c">
</File>
<File
@@ -492,7 +489,7 @@
RelativePath="my_getwd.c">
</File>
<File
- RelativePath="my_handler.c">
+ RelativePath="my_compare.c">
</File>
<File
RelativePath="my_init.c">
diff --git a/VC++Files/mysys/mysys_ia64.dsp b/VC++Files/mysys/mysys_ia64.dsp
index 4e4f71d89ba..708de63aff7 100644
--- a/VC++Files/mysys/mysys_ia64.dsp
+++ b/VC++Files/mysys/mysys_ia64.dsp
@@ -402,11 +402,11 @@ SOURCE=.\my_fstream.c
# End Source File
# Begin Source File
-SOURCE=.\my_gethostbyname.c
+SOURCE=.\my_gethwaddr.c
# End Source File
# Begin Source File
-SOURCE=.\my_gethwaddr.c
+SOURCE=.\my_compare.c
# End Source File
# Begin Source File
@@ -422,10 +422,6 @@ SOURCE=.\my_getwd.c
# End Source File
# Begin Source File
-SOURCE=.\my_handler.c
-# End Source File
-# Begin Source File
-
SOURCE=.\my_init.c
# End Source File
# Begin Source File
diff --git a/include/Makefile.am b/include/Makefile.am
index 06d7efe754b..704a770d7db 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -33,7 +33,7 @@ noinst_HEADERS = config-win.h config-netware.h \
my_nosys.h my_alarm.h queues.h rijndael.h sha1.h \
my_aes.h my_tree.h hash.h thr_alarm.h \
thr_lock.h t_ctype.h violite.h my_md5.h base64.h \
- mysql_version.h.in my_handler.h my_time.h \
+ mysql_version.h.in my_compare.h my_time.h \
my_user.h my_libwrap.h
# Remove built files and the symlinked directories
diff --git a/include/heap.h b/include/heap.h
index 1a02fef5483..9d67c94e003 100644
--- a/include/heap.h
+++ b/include/heap.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000,2004 MySQL AB
+/* Copyright (c) 2000, 2011 Oracle and/or its affiliates. All rights reserved.
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
@@ -30,7 +30,7 @@ extern "C" {
#include <thr_lock.h>
#endif
-#include "my_handler.h"
+#include "my_compare.h"
#include "my_tree.h"
/* defines used by heap-funktions */
diff --git a/include/my_handler.h b/include/my_compare.h
index 20cc90e4a8f..55cd68bbc0d 100644
--- a/include/my_handler.h
+++ b/include/my_compare.h
@@ -1,22 +1,20 @@
-/* Copyright (C) 2002-2006 MySQL AB
+/* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; version 2
- of the License.
+ 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
+ the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA */
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-#ifndef _my_handler_h
-#define _my_handler_h
+#ifndef _my_compare_h
+#define _my_compare_h
#include "my_base.h"
#include "m_ctype.h"
@@ -87,6 +85,5 @@ extern int ha_key_cmp(register HA_KEYSEG *keyseg, register uchar *a,
register uchar *b, uint key_length, uint nextflag,
uint *diff_pos);
-extern HA_KEYSEG *ha_find_null(HA_KEYSEG *keyseg, uchar *a);
-#endif /* _my_handler_h */
+#endif /* _my_compare_h */
diff --git a/include/my_global.h b/include/my_global.h
index 595c7cd793b..83a28705581 100644
--- a/include/my_global.h
+++ b/include/my_global.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2003 MySQL AB
+/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
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
@@ -255,7 +255,7 @@ C_MODE_END
#define ulonglong2double(A) my_ulonglong2double(A)
#define my_off_t2double(A) my_ulonglong2double(A)
C_MODE_START
-double my_ulonglong2double(unsigned long long A);
+inline double my_ulonglong2double(unsigned long long A) { return (double) A; }
C_MODE_END
#endif /* _AIX */
diff --git a/include/myisam.h b/include/myisam.h
index acc2d689b75..4c2358a3513 100644
--- a/include/myisam.h
+++ b/include/myisam.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 MySQL AB
+/* Copyright (C) 2000, 2011 Oracle and/or its affiliates. All rights reserved.
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
@@ -30,7 +30,7 @@ extern "C" {
#ifndef _keycache_h
#include "keycache.h"
#endif
-#include "my_handler.h"
+#include "my_compare.h"
/*
There is a hard limit for the maximum number of keys as there are only
diff --git a/libmysql/CMakeLists.txt b/libmysql/CMakeLists.txt
index cd90b2b1257..f7f0ac22de2 100755
--- a/libmysql/CMakeLists.txt
+++ b/libmysql/CMakeLists.txt
@@ -81,7 +81,7 @@ SET(CLIENT_SOURCES ../mysys/array.c ../strings/bchange.c ../strings/bmove.c
../mysys/mf_wcomp.c ../mysys/mulalloc.c ../mysys/my_access.c ../mysys/my_alloc.c
../mysys/my_chsize.c ../mysys/my_compress.c ../mysys/my_create.c
../mysys/my_delete.c ../mysys/my_div.c ../mysys/my_error.c ../mysys/my_file.c
- ../mysys/my_fopen.c ../mysys/my_fstream.c ../mysys/my_gethostbyname.c
+ ../mysys/my_fopen.c ../mysys/my_fstream.c
../mysys/my_getopt.c ../mysys/my_getwd.c ../mysys/my_init.c ../mysys/my_lib.c
../mysys/my_malloc.c ../mysys/my_messnc.c ../mysys/my_net.c ../mysys/my_once.c
../mysys/my_open.c ../mysys/my_pread.c ../mysys/my_pthread.c ../mysys/my_read.c
diff --git a/libmysql/Makefile.shared b/libmysql/Makefile.shared
index 83ae79ebee2..f9be2b1f761 100644
--- a/libmysql/Makefile.shared
+++ b/libmysql/Makefile.shared
@@ -66,7 +66,7 @@ mysysobjects1 = my_init.lo my_static.lo my_malloc.lo my_realloc.lo \
charset.lo charset-def.lo hash.lo mf_iocache.lo \
mf_iocache2.lo my_seek.lo my_sleep.lo \
my_pread.lo mf_cache.lo md5.lo sha1.lo \
- my_getopt.lo my_gethostbyname.lo my_port.lo \
+ my_getopt.lo \
my_rename.lo my_chsize.lo
sqlobjects = net.lo
sql_cmn_objects = pack.lo client.lo my_time.lo
diff --git a/myisam/ft_stopwords.c b/myisam/ft_stopwords.c
index 1b7933e85ca..72cbf6cc18a 100644
--- a/myisam/ft_stopwords.c
+++ b/myisam/ft_stopwords.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2005 MySQL AB
+/* Copyright (C) 2000-2011, Oracle and/or its affiliates. All rights reserved.
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
@@ -16,7 +16,7 @@
/* Written by Sergei A. Golubchik, who has a shared copyright to this code */
#include "ftdefs.h"
-#include "my_handler.h"
+#include "my_compare.h"
typedef struct st_ft_stopwords
{
diff --git a/myisam/mi_check.c b/myisam/mi_check.c
index 80a90977609..e95862bb47b 100644
--- a/myisam/mi_check.c
+++ b/myisam/mi_check.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2006 MySQL AB
+/* Copyright (c) 2000, 2011 Oracle and/or its affiliates. All rights reserved.
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
@@ -85,6 +85,7 @@ static SORT_KEY_BLOCKS *alloc_key_blocks(MI_CHECK *param, uint blocks,
uint buffer_length);
static ha_checksum mi_byte_checksum(const byte *buf, uint length);
static void set_data_file_type(SORT_INFO *sort_info, MYISAM_SHARE *share);
+static HA_KEYSEG *ha_find_null(HA_KEYSEG *keyseg, uchar *a);
void myisamchk_init(MI_CHECK *param)
{
@@ -4691,3 +4692,89 @@ set_data_file_type(SORT_INFO *sort_info, MYISAM_SHARE *share)
share->delete_record=tmp.delete_record;
}
}
+
+/*
+ Find the first NULL value in index-suffix values tuple
+
+ SYNOPSIS
+ ha_find_null()
+ keyseg Array of keyparts for key suffix
+ a Key suffix value tuple
+
+ DESCRIPTION
+ Find the first NULL value in index-suffix values tuple.
+ TODO Consider optimizing this fuction or its use so we don't search for
+ NULL values in completely NOT NULL index suffixes.
+
+ RETURN
+ First key part that has NULL as value in values tuple, or the last key part
+ (with keyseg->type==HA_TYPE_END) if values tuple doesn't contain NULLs.
+*/
+
+static HA_KEYSEG *ha_find_null(HA_KEYSEG *keyseg, uchar *a)
+{
+ for (; (enum ha_base_keytype) keyseg->type != HA_KEYTYPE_END; keyseg++)
+ {
+ uchar *end;
+ if (keyseg->null_bit)
+ {
+ if (!*a++)
+ return keyseg;
+ }
+ end= a+ keyseg->length;
+
+ switch ((enum ha_base_keytype) keyseg->type) {
+ case HA_KEYTYPE_TEXT:
+ case HA_KEYTYPE_BINARY:
+ case HA_KEYTYPE_BIT:
+ if (keyseg->flag & HA_SPACE_PACK)
+ {
+ int a_length;
+ get_key_length(a_length, a);
+ a += a_length;
+ break;
+ }
+ else
+ a= end;
+ break;
+ case HA_KEYTYPE_VARTEXT1:
+ case HA_KEYTYPE_VARTEXT2:
+ case HA_KEYTYPE_VARBINARY1:
+ case HA_KEYTYPE_VARBINARY2:
+ {
+ int a_length;
+ get_key_length(a_length, a);
+ a+= a_length;
+ break;
+ }
+ case HA_KEYTYPE_NUM:
+ if (keyseg->flag & HA_SPACE_PACK)
+ {
+ int alength= *a++;
+ end= a+alength;
+ }
+ a= end;
+ break;
+ case HA_KEYTYPE_INT8:
+ case HA_KEYTYPE_SHORT_INT:
+ case HA_KEYTYPE_USHORT_INT:
+ case HA_KEYTYPE_LONG_INT:
+ case HA_KEYTYPE_ULONG_INT:
+ case HA_KEYTYPE_INT24:
+ case HA_KEYTYPE_UINT24:
+#ifdef HAVE_LONG_LONG
+ case HA_KEYTYPE_LONGLONG:
+ case HA_KEYTYPE_ULONGLONG:
+#endif
+ case HA_KEYTYPE_FLOAT:
+ case HA_KEYTYPE_DOUBLE:
+ a= end;
+ break;
+ case HA_KEYTYPE_END: /* purecov: inspected */
+ /* keep compiler happy */
+ DBUG_ASSERT(0);
+ break;
+ }
+ }
+ return keyseg;
+}
diff --git a/myisam/mi_range.c b/myisam/mi_range.c
index 2f6d9600fac..6ddc637454f 100644
--- a/myisam/mi_range.c
+++ b/myisam/mi_range.c
@@ -145,8 +145,8 @@ static ha_rows _mi_record_pos(MI_INFO *info, const byte *key, uint key_len,
key_len=USE_WHOLE_KEY;
/*
- my_handler.c:mi_compare_text() has a flag 'skip_end_space'.
- This is set in my_handler.c:ha_key_cmp() in dependence on the
+ my_compare.c:mi_compare_text() has a flag 'skip_end_space'.
+ This is set in my_compare.c:ha_key_cmp() in dependence on the
compare flags 'nextflag' and the column type.
TEXT columns are of type HA_KEYTYPE_VARTEXT. In this case the
diff --git a/mysys/CMakeLists.txt b/mysys/CMakeLists.txt
index cd3e7afd6a5..2e94e6da088 100755
--- a/mysys/CMakeLists.txt
+++ b/mysys/CMakeLists.txt
@@ -30,8 +30,8 @@ ADD_LIBRARY(mysys array.c charset-def.c charset.c checksum.c default.c default_m
mf_tempfile.c mf_unixpath.c mf_wcomp.c mf_wfile.c mulalloc.c my_access.c
my_aes.c my_alarm.c my_alloc.c my_append.c my_bit.c my_bitmap.c my_chsize.c
my_clock.c my_compress.c my_conio.c my_copy.c my_crc32.c my_create.c my_delete.c
- my_div.c my_error.c my_file.c my_fopen.c my_fstream.c my_gethostbyname.c
- my_gethwaddr.c my_getopt.c my_getsystime.c my_getwd.c my_handler.c my_init.c
+ my_div.c my_error.c my_file.c my_fopen.c my_fstream.c my_compare.c
+ my_gethwaddr.c my_getopt.c my_getsystime.c my_getwd.c my_init.c
my_lib.c my_lock.c my_lockmem.c my_lread.c my_lwrite.c my_malloc.c my_messnc.c
my_mkdir.c my_mmap.c my_net.c my_once.c my_open.c my_pread.c my_pthread.c
my_quick.c my_read.c my_realloc.c my_redel.c my_rename.c my_seek.c my_sleep.c
diff --git a/mysys/Makefile.am b/mysys/Makefile.am
index 77af5a47e99..bcb41b57261 100644
--- a/mysys/Makefile.am
+++ b/mysys/Makefile.am
@@ -47,10 +47,10 @@ libmysys_a_SOURCES = my_init.c my_getwd.c mf_getdate.c my_mmap.c \
my_sync.c my_getopt.c my_mkdir.c \
default_modify.c default.c \
my_compress.c checksum.c raid.cc \
- my_net.c my_port.c my_sleep.c \
+ my_net.c my_compare.c my_sleep.c \
charset.c charset-def.c my_bitmap.c my_bit.c md5.c \
- my_gethostbyname.c rijndael.c my_aes.c sha1.c \
- my_handler.c my_netware.c my_largepage.c \
+ rijndael.c my_aes.c sha1.c \
+ my_netware.c my_largepage.c \
my_memmem.c \
my_windac.c my_access.c base64.c my_libwrap.c
EXTRA_DIST = thr_alarm.c thr_lock.c my_pthread.c my_thr_init.c \
diff --git a/mysys/my_handler.c b/mysys/my_compare.c
index 1c3bb20426e..c7037befd93 100644
--- a/mysys/my_handler.c
+++ b/mysys/my_compare.c
@@ -1,22 +1,20 @@
-/* Copyright (C) 2002-2006 MySQL AB
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; version 2
- of the License.
-
- This library is distributed in the hope that it will be useful,
+/* Copyright (c) 2011 Oracle and/or its affiliates. All rights reserved.
+
+ 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
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA */
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+#include "my_compare.h"
-#include <my_global.h>
-#include "my_handler.h"
int mi_compare_text(CHARSET_INFO *charset_info, uchar *a, uint a_length,
uchar *b, uint b_length, my_bool part_key,
@@ -470,90 +468,3 @@ end:
}
return 0;
} /* ha_key_cmp */
-
-
-/*
- Find the first NULL value in index-suffix values tuple
-
- SYNOPSIS
- ha_find_null()
- keyseg Array of keyparts for key suffix
- a Key suffix value tuple
-
- DESCRIPTION
- Find the first NULL value in index-suffix values tuple.
- TODO Consider optimizing this fuction or its use so we don't search for
- NULL values in completely NOT NULL index suffixes.
-
- RETURN
- First key part that has NULL as value in values tuple, or the last key part
- (with keyseg->type==HA_TYPE_END) if values tuple doesn't contain NULLs.
-*/
-
-HA_KEYSEG *ha_find_null(HA_KEYSEG *keyseg, uchar *a)
-{
- for (; (enum ha_base_keytype) keyseg->type != HA_KEYTYPE_END; keyseg++)
- {
- uchar *end;
- if (keyseg->null_bit)
- {
- if (!*a++)
- return keyseg;
- }
- end= a+ keyseg->length;
-
- switch ((enum ha_base_keytype) keyseg->type) {
- case HA_KEYTYPE_TEXT:
- case HA_KEYTYPE_BINARY:
- case HA_KEYTYPE_BIT:
- if (keyseg->flag & HA_SPACE_PACK)
- {
- int a_length;
- get_key_length(a_length, a);
- a += a_length;
- break;
- }
- else
- a= end;
- break;
- case HA_KEYTYPE_VARTEXT1:
- case HA_KEYTYPE_VARTEXT2:
- case HA_KEYTYPE_VARBINARY1:
- case HA_KEYTYPE_VARBINARY2:
- {
- int a_length;
- get_key_length(a_length, a);
- a+= a_length;
- break;
- }
- case HA_KEYTYPE_NUM:
- if (keyseg->flag & HA_SPACE_PACK)
- {
- int alength= *a++;
- end= a+alength;
- }
- a= end;
- break;
- case HA_KEYTYPE_INT8:
- case HA_KEYTYPE_SHORT_INT:
- case HA_KEYTYPE_USHORT_INT:
- case HA_KEYTYPE_LONG_INT:
- case HA_KEYTYPE_ULONG_INT:
- case HA_KEYTYPE_INT24:
- case HA_KEYTYPE_UINT24:
-#ifdef HAVE_LONG_LONG
- case HA_KEYTYPE_LONGLONG:
- case HA_KEYTYPE_ULONGLONG:
-#endif
- case HA_KEYTYPE_FLOAT:
- case HA_KEYTYPE_DOUBLE:
- a= end;
- break;
- case HA_KEYTYPE_END: /* purecov: inspected */
- /* keep compiler happy */
- DBUG_ASSERT(0);
- break;
- }
- }
- return keyseg;
-}
diff --git a/mysys/my_gethostbyname.c b/mysys/my_gethostbyname.c
deleted file mode 100644
index 434a00bab11..00000000000
--- a/mysys/my_gethostbyname.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/* Copyright (C) 2002, 2004 MySQL AB
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; version 2
- of the License.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA */
-
-/* Thread safe version of gethostbyname_r() */
-
-#include "mysys_priv.h"
-#if !defined(MSDOS) && !defined(__WIN__)
-#include <netdb.h>
-#endif
-#include <my_net.h>
-
-/* This file is not needed if my_gethostbyname_r is a macro */
-#if !defined(my_gethostbyname_r)
-
-/*
- Emulate SOLARIS style calls, not because it's better, but just to make the
- usage of getbostbyname_r simpler.
-*/
-
-#if defined(HAVE_GETHOSTBYNAME_R)
-
-#if defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE)
-
-struct hostent *my_gethostbyname_r(const char *name,
- struct hostent *result, char *buffer,
- int buflen, int *h_errnop)
-{
- struct hostent *hp;
- DBUG_ASSERT((size_t) buflen >= sizeof(*result));
- if (gethostbyname_r(name,result, buffer, (size_t) buflen, &hp, h_errnop))
- return 0;
- return hp;
-}
-
-#elif defined(HAVE_GETHOSTBYNAME_R_RETURN_INT)
-
-struct hostent *my_gethostbyname_r(const char *name,
- struct hostent *result, char *buffer,
- int buflen, int *h_errnop)
-{
- if (gethostbyname_r(name,result,(struct hostent_data *) buffer) == -1)
- {
- *h_errnop= errno;
- return 0;
- }
- return result;
-}
-
-#else
-
-/* gethostbyname_r with similar interface as gethostbyname() */
-
-struct hostent *my_gethostbyname_r(const char *name,
- struct hostent *result, char *buffer,
- int buflen, int *h_errnop)
-{
- struct hostent *hp;
- DBUG_ASSERT(buflen >= sizeof(struct hostent_data));
- hp= gethostbyname_r(name,result,(struct hostent_data *) buffer);
- *h_errnop= errno;
- return hp;
-}
-#endif /* GLIBC2_STYLE_GETHOSTBYNAME_R */
-
-#else /* !HAVE_GETHOSTBYNAME_R */
-
-#ifdef THREAD
-extern pthread_mutex_t LOCK_gethostbyname_r;
-#endif
-
-/*
- No gethostbyname_r() function exists.
- In this case we have to keep a mutex over the call to ensure that no
- other thread is going to reuse the internal memory.
-
- The user is responsible to call my_gethostbyname_r_free() when he
- is finished with the structure.
-*/
-
-struct hostent *my_gethostbyname_r(const char *name,
- struct hostent *result, char *buffer,
- int buflen, int *h_errnop)
-{
- struct hostent *hp;
- pthread_mutex_lock(&LOCK_gethostbyname_r);
- hp= gethostbyname(name);
- *h_errnop= h_errno;
- return hp;
-}
-
-void my_gethostbyname_r_free()
-{
- pthread_mutex_unlock(&LOCK_gethostbyname_r);
-}
-
-#endif /* !HAVE_GETHOSTBYNAME_R */
-#endif /* !my_gethostbyname_r */
diff --git a/mysys/my_net.c b/mysys/my_net.c
index 136d987f500..dd0af60355f 100644
--- a/mysys/my_net.c
+++ b/mysys/my_net.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 MySQL AB
+/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
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
@@ -40,3 +40,91 @@ void my_inet_ntoa(struct in_addr in, char *buf)
strmov(buf,ptr);
pthread_mutex_unlock(&THR_LOCK_net);
}
+
+
+/* This file is not needed if my_gethostbyname_r is a macro */
+#if !defined(my_gethostbyname_r)
+
+/*
+ Emulate SOLARIS style calls, not because it's better, but just to make the
+ usage of getbostbyname_r simpler.
+*/
+
+#if defined(HAVE_GETHOSTBYNAME_R)
+
+#if defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE)
+
+struct hostent *my_gethostbyname_r(const char *name,
+ struct hostent *result, char *buffer,
+ int buflen, int *h_errnop)
+{
+ struct hostent *hp;
+ DBUG_ASSERT((size_t) buflen >= sizeof(*result));
+ if (gethostbyname_r(name,result, buffer, (size_t) buflen, &hp, h_errnop))
+ return 0;
+ return hp;
+}
+
+#elif defined(HAVE_GETHOSTBYNAME_R_RETURN_INT)
+
+struct hostent *my_gethostbyname_r(const char *name,
+ struct hostent *result, char *buffer,
+ int buflen, int *h_errnop)
+{
+ if (gethostbyname_r(name,result,(struct hostent_data *) buffer) == -1)
+ {
+ *h_errnop= errno;
+ return 0;
+ }
+ return result;
+}
+
+#else
+
+/* gethostbyname_r with similar interface as gethostbyname() */
+
+struct hostent *my_gethostbyname_r(const char *name,
+ struct hostent *result, char *buffer,
+ int buflen, int *h_errnop)
+{
+ struct hostent *hp;
+ DBUG_ASSERT(buflen >= sizeof(struct hostent_data));
+ hp= gethostbyname_r(name,result,(struct hostent_data *) buffer);
+ *h_errnop= errno;
+ return hp;
+}
+#endif /* GLIBC2_STYLE_GETHOSTBYNAME_R */
+
+#else /* !HAVE_GETHOSTBYNAME_R */
+
+#ifdef THREAD
+extern pthread_mutex_t LOCK_gethostbyname_r;
+#endif
+
+/*
+ No gethostbyname_r() function exists.
+ In this case we have to keep a mutex over the call to ensure that no
+ other thread is going to reuse the internal memory.
+
+ The user is responsible to call my_gethostbyname_r_free() when he
+ is finished with the structure.
+*/
+
+struct hostent *my_gethostbyname_r(const char *name,
+ struct hostent *result, char *buffer,
+ int buflen, int *h_errnop)
+{
+ struct hostent *hp;
+ pthread_mutex_lock(&LOCK_gethostbyname_r);
+ hp= gethostbyname(name);
+ *h_errnop= h_errno;
+ return hp;
+}
+
+void my_gethostbyname_r_free()
+{
+ pthread_mutex_unlock(&LOCK_gethostbyname_r);
+}
+
+#endif /* !HAVE_GETHOSTBYNAME_R */
+#endif /* !my_gethostbyname_r */
diff --git a/mysys/my_port.c b/mysys/my_port.c
deleted file mode 100644
index 9ad333421ca..00000000000
--- a/mysys/my_port.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright (C) 2002 MySQL AB
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; version 2
- of the License.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA */
-
-/*
- Small functions to make code portable
-*/
-
-#include "mysys_priv.h"
-
-#ifdef _AIX
-
-/*
- On AIX, at least with gcc 3.1, the expression
- '(double) (ulonglong) var' doesn't always work for big unsigned
- integers like '18446744073709551615'. The end result is that the
- high bit is simply dropped. (probably bug in gcc optimizations)
- Handling the conversion in a sub function seems to work.
-*/
-
-
-
-double my_ulonglong2double(unsigned long long nr)
-{
- return (double) nr;
-}
-#endif /* _AIX */
diff --git a/mysys/raid2.c b/mysys/raid2.c
deleted file mode 100644
index 4feace7410f..00000000000
--- a/mysys/raid2.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 2002 MySQL AB
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; version 2
- of the License.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA */
-
-/*
- RAID support for MySQL. For full comments, check raid.cc
- This is in a separate file to not cause problems on OS that can't
- put C++ files in archives.
-*/
-
-#include "mysys_priv.h"
-
-const char *raid_type_string[]={"none","striped"};
-
-const char *my_raid_type(int raid_type)
-{
- return raid_type_string[raid_type];
-}