mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Updated/added copyright headers
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
[MYSQL]
|
||||
post_commit_to = "dbg_mysql_security@sun.com"
|
||||
post_push_to = "dbg_mysql_security@sun.com"
|
||||
tree_name = "mysql-5.0-security"
|
||||
post_commit_to = "commits@lists.mysql.com"
|
||||
post_push_to = "commits@lists.mysql.com"
|
||||
tree_name = "mysql-5.0"
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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>
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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">
|
||||
|
@ -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
|
||||
|
@ -7,7 +7,7 @@ AC_INIT(sql/mysqld.cc)
|
||||
AC_CANONICAL_SYSTEM
|
||||
# The Docs Makefile.am parses this line!
|
||||
# remember to also change ndb version below and update version.c in ndb
|
||||
AM_INIT_AUTOMAKE(mysql, 5.0.93)
|
||||
AM_INIT_AUTOMAKE(mysql, 5.0.95)
|
||||
AM_CONFIG_HEADER([include/config.h:config.h.in])
|
||||
|
||||
PROTOCOL_VERSION=10
|
||||
@ -23,7 +23,7 @@ NDB_SHARED_LIB_VERSION=$NDB_SHARED_LIB_MAJOR_VERSION:0:0
|
||||
# ndb version
|
||||
NDB_VERSION_MAJOR=5
|
||||
NDB_VERSION_MINOR=0
|
||||
NDB_VERSION_BUILD=93
|
||||
NDB_VERSION_BUILD=95
|
||||
NDB_VERSION_STATUS=""
|
||||
|
||||
# Set all version vars based on $VERSION. How do we do this more elegant ?
|
||||
|
@ -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 Library General Public
|
||||
@ -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
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
@ -1,5 +1,4 @@
|
||||
/* Copyright (c) 2001-2008 MySQL AB, 2008, 2009 Sun Microsystems, Inc.
|
||||
Use is subject to license terms.
|
||||
/* Copyright (c) 2001, 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
|
||||
@ -256,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 */
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
/* Copyright (c) 2000-2006, 2008 MySQL AB, 2008, 2009 Sun Microsystems, Inc.
|
||||
Use is subject to license terms.
|
||||
/* 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,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
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright (C) 2006 MySQL AB
|
||||
# Copyright (c) 2006, 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
|
||||
@ -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
|
||||
|
@ -1,5 +1,4 @@
|
||||
# Copyright (c) 2000-2007 MySQL AB, 2009 Sun Microsystems, Inc.
|
||||
# Use is subject to license terms.
|
||||
# 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 version 2 GNU General Public License as
|
||||
@ -67,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
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -1,5 +1,4 @@
|
||||
/* Copyright (c) 2000-2008 MySQL AB, 2008, 2009 Sun Microsystems, Inc.
|
||||
Use is subject to license terms.
|
||||
/* 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
|
||||
@ -86,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)
|
||||
{
|
||||
@ -4692,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;
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2000-2004, 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
|
||||
@ -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
|
||||
|
@ -996,4 +996,11 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp
|
||||
ALTER TABLE t2 ADD SPATIAL INDEX USING BTREE (col1);
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING BTREE (col1)' at line 1
|
||||
DROP TABLE t2;
|
||||
#
|
||||
# BUG#51875: crash when loading data into geometry function polyfromwkb
|
||||
#
|
||||
SET @a=0x00000000030000000100000000000000000000000000144000000000000014400000000000001840000000000000184000000000000014400000000000001440;
|
||||
SET @a=POLYFROMWKB(@a);
|
||||
SET @a=0x00000000030000000000000000000000000000000000144000000000000014400000000000001840000000000000184000000000000014400000000000001440;
|
||||
SET @a=POLYFROMWKB(@a);
|
||||
End of 5.0 tests
|
||||
|
@ -685,4 +685,14 @@ ALTER TABLE t2 ADD SPATIAL INDEX USING BTREE (col1);
|
||||
|
||||
DROP TABLE t2;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # BUG#51875: crash when loading data into geometry function polyfromwkb
|
||||
--echo #
|
||||
SET @a=0x00000000030000000100000000000000000000000000144000000000000014400000000000001840000000000000184000000000000014400000000000001440;
|
||||
SET @a=POLYFROMWKB(@a);
|
||||
SET @a=0x00000000030000000000000000000000000000000000144000000000000014400000000000001840000000000000184000000000000014400000000000001440;
|
||||
SET @a=POLYFROMWKB(@a);
|
||||
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright (C) 2006 MySQL AB
|
||||
# Copyright (c) 2006, 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,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
|
||||
|
@ -1,5 +1,4 @@
|
||||
# Copyright (c) 2000-2007 MySQL AB, 2009 Sun Microsystems, Inc.
|
||||
# Use is subject to license terms.
|
||||
# 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
|
||||
@ -48,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 \
|
||||
|
@ -1,22 +1,20 @@
|
||||
/* Copyright (C) 2002-2006 MySQL AB
|
||||
/* Copyright (c) 2011 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
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 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 library is distributed in the hope that it will be useful,
|
||||
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;
|
||||
}
|
@ -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 */
|
@ -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
|
||||
@ -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 */
|
||||
|
@ -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 */
|
@ -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];
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
#!/bin/sh
|
||||
# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2006, 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
|
||||
@ -198,6 +198,7 @@ cp Docs/INSTALL-BINARY $DESTDIR/Docs/
|
||||
cp Docs/manual.chm $DESTDIR/Docs/ || /bin/true
|
||||
cp ChangeLog $DESTDIR/Docs/ || /bin/true
|
||||
cp support-files/my-*.ini $DESTDIR/
|
||||
cp README $DESTDIR/
|
||||
|
||||
if [ -f COPYING ] ; then
|
||||
cp COPYING $DESTDIR/
|
||||
|
@ -1,5 +1,4 @@
|
||||
/* Copyright (c) 2002-2007 MySQL AB, 2009 Sun Microsystems, Inc.
|
||||
Use is subject to license terms.
|
||||
/* Copyright (c) 2002, 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
|
||||
@ -520,7 +519,7 @@ uint Gis_line_string::init_from_wkb(const char *wkb, uint len,
|
||||
n_points= wkb_get_uint(wkb, bo);
|
||||
proper_length= 4 + n_points * POINT_DATA_SIZE;
|
||||
|
||||
if (len < proper_length || res->reserve(proper_length))
|
||||
if (!n_points || len < proper_length || res->reserve(proper_length))
|
||||
return 0;
|
||||
|
||||
res->q_append(n_points);
|
||||
@ -738,7 +737,9 @@ uint Gis_polygon::init_from_wkb(const char *wkb, uint len, wkbByteOrder bo,
|
||||
if (len < 4)
|
||||
return 0;
|
||||
|
||||
n_linear_rings= wkb_get_uint(wkb, bo);
|
||||
if (!(n_linear_rings= wkb_get_uint(wkb, bo)))
|
||||
return 0;
|
||||
|
||||
if (res->reserve(4, 512))
|
||||
return 0;
|
||||
wkb+= 4;
|
||||
|
Reference in New Issue
Block a user