Commit 08c57988 authored by Konstantin Osipov's avatar Konstantin Osipov

Merge 5.5-bugteam -> 5.5-runtime.

parents 8f73bddc a7c93338
...@@ -111,7 +111,7 @@ else ...@@ -111,7 +111,7 @@ else
# C++ warnings # C++ warnings
cxx_warnings="$warnings -Wno-unused-parameter" cxx_warnings="$warnings -Wno-unused-parameter"
# cxx_warnings="$cxx_warnings -Woverloaded-virtual -Wsign-promo" # cxx_warnings="$cxx_warnings -Woverloaded-virtual -Wsign-promo"
cxx_warnings="$cxx_warnings -Wctor-dtor-privacy -Wnon-virtual-dtor" cxx_warnings="$cxx_warnings -Wnon-virtual-dtor"
debug_extra_cflags="-O0 -g3 -gdwarf-2" debug_extra_cflags="-O0 -g3 -gdwarf-2"
fi fi
......
...@@ -268,7 +268,7 @@ _rl_get_screen_size (tty, ignore_env) ...@@ -268,7 +268,7 @@ _rl_get_screen_size (tty, ignore_env)
#if !defined (__DJGPP__) #if !defined (__DJGPP__)
if (_rl_screenwidth <= 0 && term_string_buffer) if (_rl_screenwidth <= 0 && term_string_buffer)
_rl_screenwidth = tgetnum ("co"); _rl_screenwidth = tgetnum ((char *)"co");
#endif #endif
} }
...@@ -284,7 +284,7 @@ _rl_get_screen_size (tty, ignore_env) ...@@ -284,7 +284,7 @@ _rl_get_screen_size (tty, ignore_env)
#if !defined (__DJGPP__) #if !defined (__DJGPP__)
if (_rl_screenheight <= 0 && term_string_buffer) if (_rl_screenheight <= 0 && term_string_buffer)
_rl_screenheight = tgetnum ("li"); _rl_screenheight = tgetnum ((char *)"li");
#endif #endif
} }
...@@ -516,7 +516,7 @@ _rl_init_terminal_io (terminal_name) ...@@ -516,7 +516,7 @@ _rl_init_terminal_io (terminal_name)
if (!_rl_term_cr) if (!_rl_term_cr)
_rl_term_cr = "\r"; _rl_term_cr = "\r";
_rl_term_autowrap = tgetflag ("am") && tgetflag ("xn"); _rl_term_autowrap = tgetflag ((char *)"am") && tgetflag ((char *)"xn");
/* Allow calling application to set default height and width, using /* Allow calling application to set default height and width, using
rl_set_screen_size */ rl_set_screen_size */
...@@ -531,7 +531,7 @@ _rl_init_terminal_io (terminal_name) ...@@ -531,7 +531,7 @@ _rl_init_terminal_io (terminal_name)
/* Check to see if this terminal has a meta key and clear the capability /* Check to see if this terminal has a meta key and clear the capability
variables if there is none. */ variables if there is none. */
term_has_meta = (tgetflag ("km") || tgetflag ("MT")); term_has_meta = (tgetflag ((char *)"km") || tgetflag ((char *)"MT"));
if (!term_has_meta) if (!term_has_meta)
_rl_term_mm = _rl_term_mo = (char *)NULL; _rl_term_mm = _rl_term_mo = (char *)NULL;
......
#
# Bug#46941 crash with lower_case_table_names=2 and
# foreign data dictionary confusion
#
CREATE DATABASE XY;
USE XY;
DROP DATABASE XY;
...@@ -4887,3 +4887,22 @@ col_int_key ...@@ -4887,3 +4887,22 @@ col_int_key
DROP VIEW view_t1; DROP VIEW view_t1;
DROP TABLE t1; DROP TABLE t1;
# End of test BUG#54515 # End of test BUG#54515
#
# Bug #57203 Assertion `field_length <= 255' failed.
#
SELECT coalesce((avg(distinct (geomfromtext("point(25379 -22010)")))))
UNION ALL
SELECT coalesce((avg(distinct (geomfromtext("point(25379 -22010)")))))
AS foo
;
coalesce((avg(distinct (geomfromtext("point(25379 -22010)")))))
0.0000
0.0000
CREATE table t1(a text);
INSERT INTO t1 VALUES (''), ('');
SELECT avg(distinct(t1.a)) FROM t1, t1 t2
GROUP BY t2.a ORDER BY t1.a;
avg(distinct(t1.a))
0
DROP TABLE t1;
# End of test BUG#57203
--source include/have_case_insensitive_file_system.inc
--source include/have_innodb.inc
--echo #
--echo # Bug#46941 crash with lower_case_table_names=2 and
--echo # foreign data dictionary confusion
--echo #
CREATE DATABASE XY;
USE XY;
#
# Logs are disabled, since the number of creates tables
# and subsequent select statements may vary between
# versions
#
--disable_query_log
--disable_result_log
let $tcs = `SELECT @@table_open_cache + 1`;
let $i = $tcs;
while ($i)
{
eval CREATE TABLE XY.T_$i (a INT NOT NULL, b INT NOT NULL, c INT NOT NULL, d INT,
primary key(a, b), unique(b)) ENGINE=InnoDB;
dec $i;
}
eval ALTER TABLE XY.T_$tcs ADD INDEX I1 (c, b),
ADD CONSTRAINT C1 FOREIGN KEY (c, b) REFERENCES XY.T_1 (a, b);
eval ALTER TABLE XY.T_$tcs ADD INDEX I2 (b),
ADD CONSTRAINT C2 FOREIGN KEY (b) REFERENCES XY.T_1(a);
let $i = $tcs;
while ($i)
{
eval SELECT * FROM XY.T_$i LIMIT 1;
dec $i;
}
DROP DATABASE XY;
CREATE DATABASE XY;
USE XY;
eval CREATE TABLE XY.T_$tcs (a INT NOT NULL, b INT NOT NULL, c INT NOT NULL, d INT,
PRIMARY KEY(a, b), UNIQUE(b)) ENGINE=InnoDB;
#
# The bug causes this SELECT to err
eval SELECT * FROM XY.T_$tcs LIMIT 1;
--enable_query_log
--enable_result_log
DROP DATABASE XY;
...@@ -4147,3 +4147,22 @@ DROP VIEW view_t1; ...@@ -4147,3 +4147,22 @@ DROP VIEW view_t1;
DROP TABLE t1; DROP TABLE t1;
--echo # End of test BUG#54515 --echo # End of test BUG#54515
--echo #
--echo # Bug #57203 Assertion `field_length <= 255' failed.
--echo #
SELECT coalesce((avg(distinct (geomfromtext("point(25379 -22010)")))))
UNION ALL
SELECT coalesce((avg(distinct (geomfromtext("point(25379 -22010)")))))
AS foo
;
CREATE table t1(a text);
INSERT INTO t1 VALUES (''), ('');
SELECT avg(distinct(t1.a)) FROM t1, t1 t2
GROUP BY t2.a ORDER BY t1.a;
DROP TABLE t1;
--echo # End of test BUG#57203
...@@ -92,8 +92,10 @@ extern mysql_mutex_t LOCK_gethostbyname_r; ...@@ -92,8 +92,10 @@ extern mysql_mutex_t LOCK_gethostbyname_r;
*/ */
struct hostent *my_gethostbyname_r(const char *name, struct hostent *my_gethostbyname_r(const char *name,
struct hostent *result, char *buffer, struct hostent *res __attribute__((unused)),
int buflen, int *h_errnop) char *buffer __attribute__((unused)),
int buflen __attribute__((unused)),
int *h_errnop)
{ {
struct hostent *hp; struct hostent *hp;
mysql_mutex_lock(&LOCK_gethostbyname_r); mysql_mutex_lock(&LOCK_gethostbyname_r);
......
...@@ -89,6 +89,8 @@ int my_sync(File fd, myf my_flags) ...@@ -89,6 +89,8 @@ int my_sync(File fd, myf my_flags)
static const char cur_dir_name[]= {FN_CURLIB, 0}; static const char cur_dir_name[]= {FN_CURLIB, 0};
/* /*
Force directory information to disk. Force directory information to disk.
...@@ -100,7 +102,9 @@ static const char cur_dir_name[]= {FN_CURLIB, 0}; ...@@ -100,7 +102,9 @@ static const char cur_dir_name[]= {FN_CURLIB, 0};
RETURN RETURN
0 if ok, !=0 if error 0 if ok, !=0 if error
*/ */
#ifdef NEED_EXPLICIT_SYNC_DIR #ifdef NEED_EXPLICIT_SYNC_DIR
int my_sync_dir(const char *dir_name, myf my_flags) int my_sync_dir(const char *dir_name, myf my_flags)
{ {
File dir_fd; File dir_fd;
...@@ -125,12 +129,15 @@ int my_sync_dir(const char *dir_name, myf my_flags) ...@@ -125,12 +129,15 @@ int my_sync_dir(const char *dir_name, myf my_flags)
res= 1; res= 1;
DBUG_RETURN(res); DBUG_RETURN(res);
} }
#else /* NEED_EXPLICIT_SYNC_DIR */ #else /* NEED_EXPLICIT_SYNC_DIR */
int my_sync_dir(const char *dir_name __attribute__((unused)), int my_sync_dir(const char *dir_name __attribute__((unused)),
myf my_flags __attribute__((unused))) myf my_flags __attribute__((unused)))
{ {
return 0; return 0;
} }
#endif /* NEED_EXPLICIT_SYNC_DIR */ #endif /* NEED_EXPLICIT_SYNC_DIR */
...@@ -145,7 +152,9 @@ int my_sync_dir(const char *dir_name __attribute__((unused)), ...@@ -145,7 +152,9 @@ int my_sync_dir(const char *dir_name __attribute__((unused)),
RETURN RETURN
0 if ok, !=0 if error 0 if ok, !=0 if error
*/ */
#ifdef NEED_EXPLICIT_SYNC_DIR #ifdef NEED_EXPLICIT_SYNC_DIR
int my_sync_dir_by_file(const char *file_name, myf my_flags) int my_sync_dir_by_file(const char *file_name, myf my_flags)
{ {
char dir_name[FN_REFLEN]; char dir_name[FN_REFLEN];
...@@ -153,10 +162,14 @@ int my_sync_dir_by_file(const char *file_name, myf my_flags) ...@@ -153,10 +162,14 @@ int my_sync_dir_by_file(const char *file_name, myf my_flags)
dirname_part(dir_name, file_name, &dir_name_length); dirname_part(dir_name, file_name, &dir_name_length);
return my_sync_dir(dir_name, my_flags); return my_sync_dir(dir_name, my_flags);
} }
#else /* NEED_EXPLICIT_SYNC_DIR */ #else /* NEED_EXPLICIT_SYNC_DIR */
int my_sync_dir_by_file(const char *file_name __attribute__((unused)), int my_sync_dir_by_file(const char *file_name __attribute__((unused)),
myf my_flags __attribute__((unused))) myf my_flags __attribute__((unused)))
{ {
return 0; return 0;
} }
#endif /* NEED_EXPLICIT_SYNC_DIR */ #endif /* NEED_EXPLICIT_SYNC_DIR */
...@@ -4189,7 +4189,7 @@ String *Field_float::val_str(String *val_buffer, ...@@ -4189,7 +4189,7 @@ String *Field_float::val_str(String *val_buffer,
String *val_ptr __attribute__((unused))) String *val_ptr __attribute__((unused)))
{ {
ASSERT_COLUMN_MARKED_FOR_READ; ASSERT_COLUMN_MARKED_FOR_READ;
DBUG_ASSERT(field_length <= MAX_FIELD_CHARLENGTH); DBUG_ASSERT(!zerofill || field_length <= MAX_FIELD_CHARLENGTH);
float nr; float nr;
#ifdef WORDS_BIGENDIAN #ifdef WORDS_BIGENDIAN
if (table->s->db_low_byte_first) if (table->s->db_low_byte_first)
...@@ -4512,7 +4512,7 @@ String *Field_double::val_str(String *val_buffer, ...@@ -4512,7 +4512,7 @@ String *Field_double::val_str(String *val_buffer,
String *val_ptr __attribute__((unused))) String *val_ptr __attribute__((unused)))
{ {
ASSERT_COLUMN_MARKED_FOR_READ; ASSERT_COLUMN_MARKED_FOR_READ;
DBUG_ASSERT(field_length <= MAX_FIELD_CHARLENGTH); DBUG_ASSERT(!zerofill || field_length <= MAX_FIELD_CHARLENGTH);
double nr; double nr;
#ifdef WORDS_BIGENDIAN #ifdef WORDS_BIGENDIAN
if (table->s->db_low_byte_first) if (table->s->db_low_byte_first)
......
...@@ -1295,10 +1295,12 @@ UNIV_INTERN ...@@ -1295,10 +1295,12 @@ UNIV_INTERN
void void
os_file_set_nocache( os_file_set_nocache(
/*================*/ /*================*/
int fd, /*!< in: file descriptor to alter */ int fd /*!< in: file descriptor to alter */
const char* file_name, /*!< in: file name, used in the __attribute__((unused)),
diagnostic message */ const char* file_name /*!< in: used in the diagnostic message */
const char* operation_name) /*!< in: "open" or "create"; used in the __attribute__((unused)),
const char* operation_name __attribute__((unused)))
/*!< in: "open" or "create"; used in the
diagnostic message */ diagnostic message */
{ {
/* some versions of Solaris may not have DIRECTIO_ON */ /* some versions of Solaris may not have DIRECTIO_ON */
......
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