Commit a0cfa789 authored by serg@sergbook.mysql.com's avatar serg@sergbook.mysql.com

post-merge fix

parents dcdfe5b5 ce0028d8
...@@ -33003,11 +33003,10 @@ As AES is a block level algorithm, padding is used to encode uneven length ...@@ -33003,11 +33003,10 @@ As AES is a block level algorithm, padding is used to encode uneven length
strings and so the result string length may be calculated as strings and so the result string length may be calculated as
16*(trunc(string_length/16)+1). 16*(trunc(string_length/16)+1).
@c FIX arjen 2002-06-21 Peter: this sentence makes no sense at all! If @code{AES_DECRYPT()} detects invalid data or incorrect padding, it
If the string has an incorrect length or contains invalid data for this will return @code{NULL}. However, it is possible for @code{AES_DECRYPT()}
key, @code{AES_DECRYPT()} will return @code{NULL}, therefore you can't to return a non-@code{NULL} value (possibly garbage) if the input data or
rely on this to much, @code{AES_DECRYPT()} has some change to return the key was invalid.
a non-@code{NULL} value even for an invalid key.
You can use the AES functions to store data in an encrypted form by You can use the AES functions to store data in an encrypted form by
modifying your queries: modifying your queries:
...@@ -925,7 +925,7 @@ case $SYSTEM_TYPE in ...@@ -925,7 +925,7 @@ case $SYSTEM_TYPE in
*darwin*) *darwin*)
if test "$ac_cv_prog_gcc" = "yes" if test "$ac_cv_prog_gcc" = "yes"
then then
CFLAGS="$CFLAGS -traditional-cpp -DHAVE_DARWIN_THREADS -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ" CFLAGS="$CFLAGS -traditional-cpp -DHAVE_DARWIN_THREADS -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DHAVE_BROKEN_REALPATH"
CXXFLAGS="$CXXFLAGS -traditional-cpp -DHAVE_DARWIN_THREADS -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ" CXXFLAGS="$CXXFLAGS -traditional-cpp -DHAVE_DARWIN_THREADS -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ"
MAX_C_OPTIMIZE="-O" MAX_C_OPTIMIZE="-O"
with_named_curses="" with_named_curses=""
......
...@@ -26,9 +26,9 @@ noinst_HEADERS = config-win.h \ ...@@ -26,9 +26,9 @@ noinst_HEADERS = config-win.h \
nisam.h heap.h merge.h my_bitmap.h\ nisam.h heap.h merge.h my_bitmap.h\
myisam.h myisampack.h myisammrg.h ft_global.h\ myisam.h myisampack.h myisammrg.h ft_global.h\
my_dir.h mysys_err.h my_base.h \ my_dir.h mysys_err.h my_base.h \
my_nosys.h my_alarm.h queues.h \ my_nosys.h my_alarm.h queues.h rijndael.h sha1.h \
my_tree.h hash.h thr_alarm.h thr_lock.h \ my_aes.h my_getopt.h my_tree.h hash.h thr_alarm.h \
t_ctype.h violite.h md5.h mysql_version.h.in thr_lock.h t_ctype.h violite.h md5.h mysql_version.h.in
# mysql_version.h are generated # mysql_version.h are generated
SUPERCLEANFILES = mysql_version.h my_config.h SUPERCLEANFILES = mysql_version.h my_config.h
......
/* Copyright (C) 2000 MySQL 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
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
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 General Public License for more details.
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 */
/* Declarations for getopt.
Copyright (C) 1989, 90, 91, 92, 93, 94 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however. The master source lives in /gd/gnu/lib.
The GNU C 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; either version 2 of the
License, or (at your option) any later version.
The GNU C 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 the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
#ifndef _GETOPT_H
#define _GETOPT_H 1
#ifdef __cplusplus
extern "C" {
#endif
/* For communication from `getopt' to the caller.
When `getopt' finds an option that takes an argument,
the argument value is returned here.
Also, when `ordering' is RETURN_IN_ORDER,
each non-option ARGV-element is returned here. */
extern char *optarg;
/* Index in ARGV of the next element to be scanned.
This is used for communication to and from the caller
and for communication between successive calls to `getopt'.
On entry to `getopt', zero means this is the first call; initialize.
When `getopt' returns EOF, this is the index of the first of the
non-option elements that the caller should itself scan.
Otherwise, `optind' communicates from one call to the next
how much of ARGV has been scanned so far. */
extern int optind;
/* Callers store zero here to inhibit the error message `getopt' prints
for unrecognized options. */
extern int opterr;
/* Set to an option character which was unrecognized. */
extern int optopt;
/* Describe the long-named options requested by the application.
The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
of `struct option' terminated by an element containing a name which is
zero.
The field `has_arg' is:
no_argument (or 0) if the option does not take an argument,
required_argument (or 1) if the option requires an argument,
optional_argument (or 2) if the option takes an optional argument.
If the field `flag' is not NULL, it points to a variable that is set
to the value given in the field `val' when the option is found, but
left unchanged if the option is not found.
To have a long-named option do something other than set an `int' to
a compiled-in constant, such as set a value from `optarg', set the
option's `flag' field to zero and its `val' field to a nonzero
value (the equivalent single-letter option character, if there is
one). For long options that have a zero `flag' field, `getopt'
returns the contents of the `val' field. */
struct option
{
#if defined (__STDC__) && __STDC__ || defined(__cplusplus)
const char *name;
#else
char *name;
#endif
/* has_arg can't be an enum because some compilers complain about
type mismatches in all the code that assumes it is an int. */
int has_arg;
int *flag;
int val;
};
/* Names for the values of the `has_arg' field of `struct option'. */
#define no_argument 0
#define required_argument 1
#define optional_argument 2
#if ( defined (__STDC__) && __STDC__ ) || defined(__cplusplus) || defined(MSDOS)
#ifdef __EMX__
int getopt (int, char **, __const__ char *);
#elif defined( __GNU_LIBRARY__)
/* Many other libraries have conflicting prototypes for getopt, with
differences in the consts, in stdlib.h. To avoid compilation
errors, only prototype getopt for the GNU C library. */
extern int getopt (int argc, char *const *argv, const char *shortopts);
#else /* not __GNU_LIBRARY__ */
extern int getopt (int argc, char *const *argv, const char *optstring);
#endif /* __GNU_LIBRARY__ */
extern int getopt_long (int argc, char *const *argv, const char *shortopts,
const struct option *longopts, int *longind);
extern int getopt_long_only (int argc, char *const *argv,
const char *shortopts,
const struct option *longopts, int *longind);
/* Internal only. Users should not call this directly. */
extern int _getopt_internal (int argc, char *const *argv,
const char *shortopts,
const struct option *longopts, int *longind,
int long_only);
#else /* not __STDC__ */
extern int getopt ();
extern int getopt_long ();
extern int getopt_long_only ();
extern int _getopt_internal ();
#endif /* __STDC__ */
#ifdef __cplusplus
}
#endif
#endif /* _GETOPT_H */
...@@ -258,7 +258,7 @@ static struct my_option my_long_options[] = ...@@ -258,7 +258,7 @@ static struct my_option my_long_options[] =
"Unpack file packed with myisampack.", "Unpack file packed with myisampack.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"verbose", 'v', {"verbose", 'v',
"Print more information. This can be used with --describe and --check. Use many -v for more verbosity!", "Print more information. This can be used with --description and --check. Use many -v for more verbosity!",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"version", 'V', {"version", 'V',
"Print version and exit.", "Print version and exit.",
...@@ -331,7 +331,7 @@ static void usage(void) ...@@ -331,7 +331,7 @@ static void usage(void)
-s, --silent Only print errors. One can use two -s to make\n\ -s, --silent Only print errors. One can use two -s to make\n\
myisamchk very silent\n\ myisamchk very silent\n\
-v, --verbose Print more information. This can be used with\n\ -v, --verbose Print more information. This can be used with\n\
--describe and --check. Use many -v for more verbosity!\n\ --description and --check. Use many -v for more verbosity!\n\
-V, --version Print version and exit.\n\ -V, --version Print version and exit.\n\
-w, --wait Wait if table is locked.\n"); -w, --wait Wait if table is locked.\n");
...@@ -384,7 +384,7 @@ static void usage(void) ...@@ -384,7 +384,7 @@ static void usage(void)
puts("Other actions:\n\ puts("Other actions:\n\
-a, --analyze Analyze distribution of keys. Will make some joins in\n\ -a, --analyze Analyze distribution of keys. Will make some joins in\n\
MySQL faster. You can check the calculated distribution\n\ MySQL faster. You can check the calculated distribution\n\
by using '--describe --verbose table_name'.\n\ by using '--description --verbose table_name'.\n\
-d, --description Prints some information about table.\n\ -d, --description Prints some information about table.\n\
-A, --set-auto-increment[=value]\n\ -A, --set-auto-increment[=value]\n\
Force auto_increment to start at this or higher value\n\ Force auto_increment to start at this or higher value\n\
......
...@@ -156,6 +156,8 @@ insert into t1 values ("-.1"),("+.1"),(".1"); ...@@ -156,6 +156,8 @@ insert into t1 values ("-.1"),("+.1"),(".1");
insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001"); insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11"); insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11"); insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000");
insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0");
select * from t1; select * from t1;
a a
0.00 0.00
...@@ -176,6 +178,14 @@ a ...@@ -176,6 +178,14 @@ a
-99999999.99 -99999999.99
999999999.99 999999999.99
999999999.99 999999999.99
999999999.99
0.00
-99999999.99
123.40
12340.00
1.23
1230.00
123.00
drop table t1; drop table t1;
create table t1 (a decimal(10,2) unsigned); create table t1 (a decimal(10,2) unsigned);
insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0"); insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0");
...@@ -183,6 +193,8 @@ insert into t1 values ("-.1"),("+.1"),(".1"); ...@@ -183,6 +193,8 @@ insert into t1 values ("-.1"),("+.1"),(".1");
insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001"); insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11"); insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11"); insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000");
insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0");
select * from t1; select * from t1;
a a
0.00 0.00
...@@ -203,6 +215,14 @@ a ...@@ -203,6 +215,14 @@ a
0.00 0.00
99999999.99 99999999.99
99999999.99 99999999.99
99999999.99
0.00
0.00
123.40
12340.00
1.23
1230.00
123.00
drop table t1; drop table t1;
create table t1 (a decimal(10,2) zerofill); create table t1 (a decimal(10,2) zerofill);
insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0"); insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0");
...@@ -210,6 +230,8 @@ insert into t1 values ("-.1"),("+.1"),(".1"); ...@@ -210,6 +230,8 @@ insert into t1 values ("-.1"),("+.1"),(".1");
insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001"); insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11"); insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11"); insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000");
insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0");
select * from t1; select * from t1;
a a
00000000.00 00000000.00
...@@ -230,6 +252,14 @@ a ...@@ -230,6 +252,14 @@ a
00000000.00 00000000.00
99999999.99 99999999.99
99999999.99 99999999.99
99999999.99
00000000.00
00000000.00
00000123.40
00012340.00
00000001.23
00001230.00
00000123.00
drop table t1; drop table t1;
create table t1 (a decimal(10,2)); create table t1 (a decimal(10,2));
insert into t1 values (0.0),("-0.0"),(+0.0),(01.0),(+01.0),(-01.0); insert into t1 values (0.0),("-0.0"),(+0.0),(01.0),(+01.0),(-01.0);
...@@ -237,6 +267,8 @@ insert into t1 values (-.1),(+.1),(.1); ...@@ -237,6 +267,8 @@ insert into t1 values (-.1),(+.1),(.1);
insert into t1 values (00000000000001),(+0000000000001),(-0000000000001); insert into t1 values (00000000000001),(+0000000000001),(-0000000000001);
insert into t1 values (+111111111.11),(111111111.11),(-11111111.11); insert into t1 values (+111111111.11),(111111111.11),(-11111111.11);
insert into t1 values (-111111111.11),(+1111111111.11),(1111111111.11); insert into t1 values (-111111111.11),(+1111111111.11),(1111111111.11);
insert into t1 values (1e+1000),(1e-1000),(-1e+1000);
insert into t1 values (123.4e0),(123.4e+2),(123.4e-2),(123e1),(123e+0);
select * from t1; select * from t1;
a a
0.00 0.00
...@@ -257,6 +289,14 @@ a ...@@ -257,6 +289,14 @@ a
-99999999.99 -99999999.99
999999999.99 999999999.99
999999999.99 999999999.99
999999999.99
0.00
-99999999.99
123.40
12340.00
1.23
1230.00
123.00
drop table t1; drop table t1;
create table t1 (a decimal); create table t1 (a decimal);
insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+12345678901'),(99999999999999); insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+12345678901'),(99999999999999);
......
...@@ -160,6 +160,8 @@ insert into t1 values ("-.1"),("+.1"),(".1"); ...@@ -160,6 +160,8 @@ insert into t1 values ("-.1"),("+.1"),(".1");
insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001"); insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11"); insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11"); insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000");
insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0");
select * from t1; select * from t1;
drop table t1; drop table t1;
...@@ -169,6 +171,8 @@ insert into t1 values ("-.1"),("+.1"),(".1"); ...@@ -169,6 +171,8 @@ insert into t1 values ("-.1"),("+.1"),(".1");
insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001"); insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11"); insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11"); insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000");
insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0");
select * from t1; select * from t1;
drop table t1; drop table t1;
...@@ -178,6 +182,8 @@ insert into t1 values ("-.1"),("+.1"),(".1"); ...@@ -178,6 +182,8 @@ insert into t1 values ("-.1"),("+.1"),(".1");
insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001"); insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11"); insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11"); insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
insert into t1 values ("1e+1000"),("1e-1000"),("-1e+1000");
insert into t1 values ("123.4e"),("123.4e+2"),("123.4e-2"),("123e1"),("123e+0");
select * from t1; select * from t1;
drop table t1; drop table t1;
...@@ -189,6 +195,8 @@ insert into t1 values (-.1),(+.1),(.1); ...@@ -189,6 +195,8 @@ insert into t1 values (-.1),(+.1),(.1);
insert into t1 values (00000000000001),(+0000000000001),(-0000000000001); insert into t1 values (00000000000001),(+0000000000001),(-0000000000001);
insert into t1 values (+111111111.11),(111111111.11),(-11111111.11); insert into t1 values (+111111111.11),(111111111.11),(-11111111.11);
insert into t1 values (-111111111.11),(+1111111111.11),(1111111111.11); insert into t1 values (-111111111.11),(+1111111111.11),(1111111111.11);
insert into t1 values (1e+1000),(1e-1000),(-1e+1000);
insert into t1 values (123.4e0),(123.4e+2),(123.4e-2),(123e1),(123e+0);
select * from t1; select * from t1;
drop table t1; drop table t1;
......
...@@ -155,8 +155,8 @@ int sha1_result(SHA1_CONTEXT *context, ...@@ -155,8 +155,8 @@ int sha1_result(SHA1_CONTEXT *context,
} }
for (i = 0; i < SHA1_HASH_SIZE; i++) for (i = 0; i < SHA1_HASH_SIZE; i++)
Message_Digest[i] = (context->Intermediate_Hash[i>>2] >> 8 Message_Digest[i] = (int8)((context->Intermediate_Hash[i>>2] >> 8
* ( 3 - ( i & 0x03 ) )); * ( 3 - ( i & 0x03 ) )));
return SHA_SUCCESS; return SHA_SUCCESS;
} }
...@@ -379,14 +379,14 @@ void SHA1PadMessage(SHA1_CONTEXT *context) ...@@ -379,14 +379,14 @@ void SHA1PadMessage(SHA1_CONTEXT *context)
Store the message length as the last 8 octets Store the message length as the last 8 octets
*/ */
context->Message_Block[56] = context->Length >> 56; context->Message_Block[56] = (int8) (context->Length >> 56);
context->Message_Block[57] = context->Length >> 48; context->Message_Block[57] = (int8) (context->Length >> 48);
context->Message_Block[58] = context->Length >> 40; context->Message_Block[58] = (int8) (context->Length >> 40);
context->Message_Block[59] = context->Length >> 32; context->Message_Block[59] = (int8) (context->Length >> 32);
context->Message_Block[60] = context->Length >> 24; context->Message_Block[60] = (int8) (context->Length >> 24);
context->Message_Block[61] = context->Length >> 16; context->Message_Block[61] = (int8) (context->Length >> 16);
context->Message_Block[62] = context->Length >> 8; context->Message_Block[62] = (int8) (context->Length >> 8);
context->Message_Block[63] = context->Length; context->Message_Block[63] = (int8) (context->Length);
SHA1ProcessMessageBlock(context); SHA1ProcessMessageBlock(context);
} }
This diff is collapsed.
...@@ -109,7 +109,7 @@ String *Item_func_sha::val_str(String *str) ...@@ -109,7 +109,7 @@ String *Item_func_sha::val_str(String *str)
{ {
SHA1_CONTEXT context; /* Context used to generate SHA1 hash */ SHA1_CONTEXT context; /* Context used to generate SHA1 hash */
/* Temporary buffer to store 160bit digest */ /* Temporary buffer to store 160bit digest */
uint8_t digest[SHA1_HASH_SIZE]; uint8 digest[SHA1_HASH_SIZE];
sha1_reset(&context); /* We do not have to check for error here */ sha1_reset(&context); /* We do not have to check for error here */
/* No need to check error as the only case would be too long message */ /* No need to check error as the only case would be too long message */
sha1_input(&context,(const unsigned char *) sptr->ptr(), sptr->length()); sha1_input(&context,(const unsigned char *) sptr->ptr(), sptr->length());
......
...@@ -1194,7 +1194,6 @@ int init_master_info(MASTER_INFO* mi, const char* master_info_fname, ...@@ -1194,7 +1194,6 @@ int init_master_info(MASTER_INFO* mi, const char* master_info_fname,
int fd,error; int fd,error;
MY_STAT stat_area; MY_STAT stat_area;
char fname[FN_REFLEN+128]; char fname[FN_REFLEN+128];
const char *msg;
DBUG_ENTER("init_master_info"); DBUG_ENTER("init_master_info");
if (mi->inited) if (mi->inited)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment