Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
db8e5b47
Commit
db8e5b47
authored
Apr 07, 2011
by
Georgi Kodinov
Browse files
Options
Browse Files
Download
Plain Diff
merge mysql-5.0->mysql-5.0-security
parents
1a6c17a1
40af5949
Changes
26
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
226 additions
and
357 deletions
+226
-357
VC++Files/client/mysqlclient.dsp
VC++Files/client/mysqlclient.dsp
+0
-4
VC++Files/client/mysqlclient.vcproj
VC++Files/client/mysqlclient.vcproj
+0
-3
VC++Files/client/mysqlclient_ia64.dsp
VC++Files/client/mysqlclient_ia64.dsp
+0
-4
VC++Files/libmysql/libmysql.dsp
VC++Files/libmysql/libmysql.dsp
+0
-4
VC++Files/libmysql/libmysql.vcproj
VC++Files/libmysql/libmysql.vcproj
+0
-3
VC++Files/libmysql/libmysql_ia64.dsp
VC++Files/libmysql/libmysql_ia64.dsp
+0
-4
VC++Files/mysys/mysys.dsp
VC++Files/mysys/mysys.dsp
+1
-5
VC++Files/mysys/mysys.vcproj
VC++Files/mysys/mysys.vcproj
+1
-4
VC++Files/mysys/mysys_ia64.dsp
VC++Files/mysys/mysys_ia64.dsp
+2
-6
include/Makefile.am
include/Makefile.am
+1
-1
include/heap.h
include/heap.h
+2
-2
include/my_compare.h
include/my_compare.h
+12
-15
include/my_global.h
include/my_global.h
+2
-2
include/myisam.h
include/myisam.h
+2
-2
libmysql/CMakeLists.txt
libmysql/CMakeLists.txt
+1
-1
libmysql/Makefile.shared
libmysql/Makefile.shared
+1
-1
myisam/ft_stopwords.c
myisam/ft_stopwords.c
+2
-2
myisam/mi_check.c
myisam/mi_check.c
+88
-1
myisam/mi_range.c
myisam/mi_range.c
+2
-2
mysys/CMakeLists.txt
mysys/CMakeLists.txt
+2
-2
mysys/Makefile.am
mysys/Makefile.am
+3
-3
mysys/my_compare.c
mysys/my_compare.c
+14
-103
mysys/my_gethostbyname.c
mysys/my_gethostbyname.c
+0
-111
mysys/my_net.c
mysys/my_net.c
+90
-1
mysys/my_port.c
mysys/my_port.c
+0
-40
mysys/raid2.c
mysys/raid2.c
+0
-31
No files found.
VC++Files/client/mysqlclient.dsp
View file @
db8e5b47
...
...
@@ -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
...
...
VC++Files/client/mysqlclient.vcproj
View file @
db8e5b47
...
...
@@ -351,9 +351,6 @@
<File
RelativePath=
"..\mysys\my_fstream.c"
>
</File>
<File
RelativePath=
"..\mysys\my_gethostbyname.c"
>
</File>
<File
RelativePath=
"..\mysys\my_getopt.c"
>
</File>
...
...
VC++Files/client/mysqlclient_ia64.dsp
View file @
db8e5b47
...
...
@@ -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
...
...
VC++Files/libmysql/libmysql.dsp
View file @
db8e5b47
...
...
@@ -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
...
...
VC++Files/libmysql/libmysql.vcproj
View file @
db8e5b47
...
...
@@ -329,9 +329,6 @@
<File
RelativePath=
"..\mysys\my_fstream.c"
>
</File>
<File
RelativePath=
"..\mysys\my_gethostbyname.c"
>
</File>
<File
RelativePath=
"..\mysys\my_getopt.c"
>
</File>
...
...
VC++Files/libmysql/libmysql_ia64.dsp
View file @
db8e5b47
...
...
@@ -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
...
...
VC++Files/mysys/mysys.dsp
View file @
db8e5b47
...
...
@@ -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
...
...
VC++Files/mysys/mysys.vcproj
View file @
db8e5b47
...
...
@@ -476,9 +476,6 @@
<File
RelativePath=
"my_fstream.c"
>
</File>
<File
RelativePath=
"my_gethostbyname.c"
>
</File>
<File
RelativePath=
"my_gethwaddr.c"
>
</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"
>
...
...
VC++Files/mysys/mysys_ia64.dsp
View file @
db8e5b47
...
...
@@ -402,11 +402,11 @@ SOURCE=.\my_fstream.c
# End Source File
# Begin Source File
SOURCE=.\my_geth
ostbyname
.c
SOURCE=.\my_geth
waddr
.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
...
...
include/Makefile.am
View file @
db8e5b47
...
...
@@ -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
...
...
include/heap.h
View file @
db8e5b47
/* 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 */
...
...
include/my_
handler
.h
→
include/my_
compare
.h
View file @
db8e5b47
/* 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 */
include/my_global.h
View file @
db8e5b47
/* 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 */
...
...
include/myisam.h
View file @
db8e5b47
/* 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
...
...
libmysql/CMakeLists.txt
View file @
db8e5b47
...
...
@@ -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
...
...
libmysql/Makefile.shared
View file @
db8e5b47
...
...
@@ -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
...
...
myisam/ft_stopwords.c
View file @
db8e5b47
/* Copyright (C) 2000-20
05 MySQL AB
/* Copyright (C) 2000-20
11, 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
{
...
...
myisam/mi_check.c
View file @
db8e5b47
/* 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
;
}
myisam/mi_range.c
View file @
db8e5b47
...
...
@@ -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
...
...
mysys/CMakeLists.txt
View file @
db8e5b47
...
...
@@ -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
...
...
mysys/Makefile.am
View file @
db8e5b47
...
...
@@ -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
\
...
...
mysys/my_
handler
.c
→
mysys/my_
compare
.c
View file @
db8e5b47
/* 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 @@ int ha_key_cmp(register HA_KEYSEG *keyseg, register uchar *a,
}
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
;
}
mysys/my_gethostbyname.c
deleted
100644 → 0
View file @
1a6c17a1
/* 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 */
mysys/my_net.c
View file @
db8e5b47
/* 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
...
...
@@ -31,6 +31,7 @@
#include <arpa/inet.h>
#endif
#endif
/* !defined(MSDOS) && !defined(__WIN__) */
#include "my_net.h"
void
my_inet_ntoa
(
struct
in_addr
in
,
char
*
buf
)
{
...
...
@@ -40,3 +41,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 */
mysys/my_port.c
deleted
100644 → 0
View file @
1a6c17a1
/* 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 */
mysys/raid2.c
deleted
100644 → 0
View file @
1a6c17a1
/* 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
];
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment