10.0-monty merge

includes:
* remove some remnants of "Bug#14521864: MYSQL 5.1 TO 5.5 BUGS PARTITIONING"
* introduce LOCK_share, now LOCK_ha_data is strictly for engines
* rea_create_table() always creates .par file (even in "frm-only" mode)
* fix a 5.6 bug, temp file leak on dummy ALTER TABLE
This commit is contained in:
Sergei Golubchik 2013-07-21 16:39:19 +02:00
commit b7b5f6f1ab
1378 changed files with 124559 additions and 47549 deletions

View file

@ -1,8 +1,8 @@
#ifndef MY_MD5_INCLUDED
#define MY_MD5_INCLUDED
/* Copyright (c) 2000, 2001, 2007 MySQL AB, 2009 Sun Microsystems, Inc.
Use is subject to license terms
/* Copyright (c) 2000, 2012, Oracle and/or its affiliates.
Copyright (c) 2013 Monty Program Ab
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
@ -17,79 +17,36 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */
/* See md5.c for explanation and copyright information. */
#include "m_string.h"
#define MD5_HASH_SIZE 16 /* Hash size in bytes */
/*
* $FreeBSD: src/contrib/cvs/lib/md5.h,v 1.2 1999/12/11 15:10:02 peter Exp $
*/
#if defined(HAVE_YASSL) || defined(HAVE_OPENSSL)
/*
Use MD5 implementation provided by the SSL libraries.
Wrapper function for MD5 implementation.
*/
#if defined(HAVE_YASSL)
C_MODE_START
void my_md5_hash(char *digest, const char *buf, int len);
C_MODE_END
#else /* HAVE_YASSL */
#include <openssl/md5.h>
#define MY_MD5_HASH(digest, buf, len) \
do { \
MD5_CTX ctx; \
MD5_Init (&ctx); \
MD5_Update (&ctx, buf, len); \
MD5_Final (digest, &ctx); \
} while (0)
#endif /* HAVE_YASSL */
#else /* HAVE_YASSL || HAVE_OPENSSL */
/* Fallback to the MySQL's implementation. */
/* 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;
typedef struct {
cvs_uint32 buf[4];
cvs_uint32 bits[2];
unsigned char in[64];
} my_MD5Context;
C_MODE_START
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);
C_MODE_END
#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)
#endif /* defined(HAVE_YASSL) || defined(HAVE_OPENSSL) */
C_MODE_START
#ifdef __cplusplus
extern "C" {
#endif
void compute_md5_hash(char *digest, const char *buf, int len);
C_MODE_END
/*
Convert an array of bytes to a hexadecimal representation.
Used to generate a hexadecimal representation of a message digest.
*/
static inline void array_to_hex(char *to, const unsigned char *str, uint len)
{
const unsigned char *str_end= str + len;
for (; str != str_end; ++str)
{
*to++= _dig_vec_lower[((uchar) *str) >> 4];
*to++= _dig_vec_lower[((uchar) *str) & 0x0F];
}
}
#ifdef __cplusplus
}
#endif
#endif /* MY_MD5_INCLUDED */