mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge 5.0.80 release and 5.0 community. Version left at 5.0.80.
This commit is contained in:
@ -31,7 +31,6 @@ functions */
|
||||
|
||||
#include <sys/locking.h>
|
||||
#include <windows.h>
|
||||
#include <math.h> /* Because of rint() */
|
||||
#include <fcntl.h>
|
||||
#include <io.h>
|
||||
#include <malloc.h>
|
||||
@ -226,13 +225,6 @@ typedef uint rf_SetTimer;
|
||||
#define inline __inline
|
||||
#endif /* __cplusplus */
|
||||
|
||||
inline double rint(double nr)
|
||||
{
|
||||
double f = floor(nr);
|
||||
double c = ceil(nr);
|
||||
return (((c-nr) >= (nr-f)) ? f :c);
|
||||
}
|
||||
|
||||
#ifdef _WIN64
|
||||
#define ulonglong2double(A) ((double) (ulonglong) (A))
|
||||
#define my_off_t2double(A) ((double) (my_off_t) (A))
|
||||
@ -284,7 +276,6 @@ inline ulonglong double2ulonglong(double d)
|
||||
#define HAVE_FLOAT_H
|
||||
#define HAVE_LIMITS_H
|
||||
#define HAVE_STDDEF_H
|
||||
#define HAVE_RINT /* defined in this file */
|
||||
#define NO_FCNTL_NONBLOCK /* No FCNTL */
|
||||
#define HAVE_ALLOCA
|
||||
#define HAVE_STRPBRK
|
||||
|
@ -377,6 +377,7 @@ enum ha_base_keytype {
|
||||
#define HA_ERR_TABLE_READONLY 161 /* The table is not writable */
|
||||
#define HA_ERR_AUTOINC_READ_FAILED 162/* Failed to get the next autoinc value */
|
||||
#define HA_ERR_AUTOINC_ERANGE 163 /* Failed to set the row autoinc value */
|
||||
/* You must also add numbers and description to extra/perror.c ! */
|
||||
|
||||
#define HA_ERR_LAST 163 /*Copy last error nr.*/
|
||||
/* Add error numbers before HA_ERR_LAST and change it accordingly. */
|
||||
|
@ -324,6 +324,9 @@ C_MODE_END
|
||||
#ifdef HAVE_FLOAT_H
|
||||
#include <float.h>
|
||||
#endif
|
||||
#ifdef HAVE_FENV_H
|
||||
#include <fenv.h> /* For fesetround() */
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SYS_TYPES_H
|
||||
#include <sys/types.h>
|
||||
@ -484,8 +487,39 @@ typedef unsigned short ushort;
|
||||
#define set_bits(type, bit_count) (sizeof(type)*8 <= (bit_count) ? ~(type) 0 : ((((type) 1) << (bit_count)) - (type) 1))
|
||||
#define array_elements(A) ((uint) (sizeof(A)/sizeof(A[0])))
|
||||
#ifndef HAVE_RINT
|
||||
#define rint(A) floor((A)+(((A) < 0)? -0.5 : 0.5))
|
||||
#endif
|
||||
/**
|
||||
All integers up to this number can be represented exactly as double precision
|
||||
values (DBL_MANT_DIG == 53 for IEEE 754 hardware).
|
||||
*/
|
||||
#define MAX_EXACT_INTEGER ((1LL << DBL_MANT_DIG) - 1)
|
||||
|
||||
/**
|
||||
rint(3) implementation for platforms that do not have it.
|
||||
Always rounds to the nearest integer with ties being rounded to the nearest
|
||||
even integer to mimic glibc's rint() behavior in the "round-to-nearest"
|
||||
FPU mode. Hardware-specific optimizations are possible (frndint on x86).
|
||||
Unlike this implementation, hardware will also honor the FPU rounding mode.
|
||||
*/
|
||||
|
||||
static inline double rint(double x)
|
||||
{
|
||||
double f, i;
|
||||
f = modf(x, &i);
|
||||
/*
|
||||
All doubles with absolute values > MAX_EXACT_INTEGER are even anyway,
|
||||
no need to check it.
|
||||
*/
|
||||
if (x > 0.0)
|
||||
i += (double) ((f > 0.5) || (f == 0.5 &&
|
||||
i <= (double) MAX_EXACT_INTEGER &&
|
||||
(longlong) i % 2));
|
||||
else
|
||||
i -= (double) ((f < -0.5) || (f == -0.5 &&
|
||||
i >= (double) -MAX_EXACT_INTEGER &&
|
||||
(longlong) i % 2));
|
||||
return i;
|
||||
}
|
||||
#endif /* HAVE_RINT */
|
||||
|
||||
/* Define some general constants */
|
||||
#ifndef TRUE
|
||||
|
@ -13,80 +13,42 @@
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
|
||||
/* See md5.c for explanation and copyright information. */
|
||||
|
||||
/* MD5.H - header file for MD5C.C
|
||||
/*
|
||||
* $FreeBSD: src/contrib/cvs/lib/md5.h,v 1.2 1999/12/11 15:10:02 peter Exp $
|
||||
*/
|
||||
|
||||
/* Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
|
||||
rights reserved.
|
||||
/* Unlike previous versions of this code, uint32 need not be exactly
|
||||
32 bits, merely 32 bits or more. Choosing a data type which is 32
|
||||
bits instead of 64 is not important; speed is considerably more
|
||||
important. ANSI guarantees that "unsigned long" will be big enough,
|
||||
and always using it seems to have few disadvantages. */
|
||||
typedef uint32 cvs_uint32;
|
||||
|
||||
License to copy and use this software is granted provided that it
|
||||
is identified as the "RSA Data Security, Inc. MD5 Message-Digest
|
||||
Algorithm" in all material mentioning or referencing this software
|
||||
or this function.
|
||||
|
||||
License is also granted to make and use derivative works provided
|
||||
that such works are identified as "derived from the RSA Data
|
||||
Security, Inc. MD5 Message-Digest Algorithm" in all material
|
||||
mentioning or referencing the derived work.
|
||||
|
||||
RSA Data Security, Inc. makes no representations concerning either
|
||||
the merchantability of this software or the suitability of this
|
||||
software for any particular purpose. It is provided "as is"
|
||||
without express or implied warranty of any kind.
|
||||
|
||||
These notices must be retained in any copies of any part of this
|
||||
documentation and/or software.
|
||||
*/
|
||||
|
||||
/* GLOBAL.H - RSAREF types and constants
|
||||
*/
|
||||
|
||||
/* PROTOTYPES should be set to one if and only if the compiler supports
|
||||
function argument prototyping.
|
||||
The following makes PROTOTYPES default to 0 if it has not already
|
||||
been defined with C compiler flags.
|
||||
*/
|
||||
|
||||
/* egcs 1.1.2 under linux didn't defined it.... :( */
|
||||
|
||||
#ifndef PROTOTYPES
|
||||
#define PROTOTYPES 1 /* Assume prototypes */
|
||||
#endif
|
||||
|
||||
/* POINTER defines a generic pointer type */
|
||||
typedef unsigned char *POINTER;
|
||||
|
||||
/* UINT2 defines a two byte word */
|
||||
typedef uint16 UINT2; /* Fix for MySQL / Alpha */
|
||||
|
||||
/* UINT4 defines a four byte word */
|
||||
typedef uint32 UINT4; /* Fix for MySQL / Alpha */
|
||||
|
||||
/* PROTO_LIST is defined depending on how PROTOTYPES is defined above.
|
||||
If using PROTOTYPES, then PROTO_LIST returns the list, otherwise it
|
||||
returns an empty list.
|
||||
*/
|
||||
#if PROTOTYPES
|
||||
#define PROTO_LIST(list) list
|
||||
#else
|
||||
#define PROTO_LIST(list) ()
|
||||
#endif
|
||||
/* MD5 context. */
|
||||
typedef struct {
|
||||
UINT4 state[4]; /* state (ABCD) */
|
||||
UINT4 count[2]; /* number of bits, modulo 2^64 (lsb first) */
|
||||
unsigned char buffer[64]; /* input buffer */
|
||||
} my_MD5_CTX;
|
||||
cvs_uint32 buf[4];
|
||||
cvs_uint32 bits[2];
|
||||
unsigned char in[64];
|
||||
} my_MD5Context;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
void my_MD5Init PROTO_LIST ((my_MD5_CTX *));
|
||||
void my_MD5Update PROTO_LIST
|
||||
((my_MD5_CTX *, unsigned char *, unsigned int));
|
||||
void my_MD5Final PROTO_LIST ((unsigned char [16], my_MD5_CTX *));
|
||||
void my_MD5Init (my_MD5Context *context);
|
||||
void my_MD5Update (my_MD5Context *context,
|
||||
unsigned char const *buf, unsigned len);
|
||||
void my_MD5Final (unsigned char digest[16],
|
||||
my_MD5Context *context);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#define MY_MD5_HASH(digest,buf,len) \
|
||||
do { \
|
||||
my_MD5Context ctx; \
|
||||
my_MD5Init (&ctx); \
|
||||
my_MD5Update (&ctx, buf, len); \
|
||||
my_MD5Final (digest, &ctx); \
|
||||
} while (0)
|
||||
|
@ -251,7 +251,7 @@ extern int NEAR my_umask, /* Default creation mask */
|
||||
NEAR my_safe_to_handle_signal, /* Set when allowed to SIGTSTP */
|
||||
NEAR my_dont_interrupt; /* call remember_intr when set */
|
||||
extern my_bool NEAR mysys_uses_curses, my_use_symdir;
|
||||
extern ulong sf_malloc_cur_memory, sf_malloc_max_memory;
|
||||
extern size_t sf_malloc_cur_memory, sf_malloc_max_memory;
|
||||
|
||||
extern ulong my_default_record_cache_size;
|
||||
extern my_bool NEAR my_disable_locking,NEAR my_disable_async_io,
|
||||
@ -637,6 +637,7 @@ extern int nt_share_delete(const char *name,myf MyFlags);
|
||||
extern void TERMINATE(FILE *file);
|
||||
#endif
|
||||
extern void init_glob_errs(void);
|
||||
extern void wait_for_free_space(const char *filename, int errors);
|
||||
extern FILE *my_fopen(const char *FileName,int Flags,myf MyFlags);
|
||||
extern FILE *my_fdopen(File Filedes,const char *name, int Flags,myf MyFlags);
|
||||
extern int my_fclose(FILE *fd,myf MyFlags);
|
||||
|
Reference in New Issue
Block a user