mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge with 3.23.55
This commit is contained in:
@ -24,7 +24,7 @@ EXTRA_DIST = INSTALL-SOURCE README \
|
|||||||
SUBDIRS = . include @docs_dirs@ @readline_dir@ \
|
SUBDIRS = . include @docs_dirs@ @readline_dir@ \
|
||||||
@thread_dirs@ pstack @sql_client_dirs@ \
|
@thread_dirs@ pstack @sql_client_dirs@ \
|
||||||
@sql_server_dirs@ scripts man tests \
|
@sql_server_dirs@ scripts man tests \
|
||||||
BUILD os2 libmysql_r @libmysqld_dirs@ \
|
BUILD os2 @libmysqld_dirs@ \
|
||||||
@bench_dirs@ support-files @fs_dirs@ @tools_dirs@
|
@bench_dirs@ support-files @fs_dirs@ @tools_dirs@
|
||||||
|
|
||||||
# Relink after clean
|
# Relink after clean
|
||||||
|
@ -24,8 +24,8 @@
|
|||||||
#endif
|
#endif
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
#define ADMIN_VERSION "8.39"
|
#define ADMIN_VERSION "8.40"
|
||||||
#define MAX_MYSQL_VAR 128
|
#define MAX_MYSQL_VAR 256
|
||||||
#define SHUTDOWN_DEF_TIMEOUT 3600 /* Wait for shutdown */
|
#define SHUTDOWN_DEF_TIMEOUT 3600 /* Wait for shutdown */
|
||||||
#define MAX_TRUNC_LENGTH 3
|
#define MAX_TRUNC_LENGTH 3
|
||||||
|
|
||||||
@ -976,7 +976,7 @@ static void print_relative_row(MYSQL_RES *result, MYSQL_ROW cur, uint row)
|
|||||||
printf("| %-*s|", (int) field->max_length + 1, cur[0]);
|
printf("| %-*s|", (int) field->max_length + 1, cur[0]);
|
||||||
|
|
||||||
field = mysql_fetch_field(result);
|
field = mysql_fetch_field(result);
|
||||||
tmp = cur[1] ? strtoull(cur[1], NULL, 0) : (ulonglong) 0;
|
tmp = cur[1] ? strtoull(cur[1], NULL, 10) : (ulonglong) 0;
|
||||||
printf(" %-*s|\n", (int) field->max_length + 1,
|
printf(" %-*s|\n", (int) field->max_length + 1,
|
||||||
llstr((tmp - last_values[row]), buff));
|
llstr((tmp - last_values[row]), buff));
|
||||||
last_values[row] = tmp;
|
last_values[row] = tmp;
|
||||||
@ -994,7 +994,7 @@ static void print_relative_row_vert(MYSQL_RES *result __attribute__((unused)),
|
|||||||
if (!row)
|
if (!row)
|
||||||
putchar('|');
|
putchar('|');
|
||||||
|
|
||||||
tmp = cur[1] ? strtoull(cur[1], NULL, 0) : (ulonglong) 0;
|
tmp = cur[1] ? strtoull(cur[1], NULL, 10) : (ulonglong) 0;
|
||||||
printf(" %-*s|", ex_val_max_len[row] + 1,
|
printf(" %-*s|", ex_val_max_len[row] + 1,
|
||||||
llstr((tmp - last_values[row]), buff));
|
llstr((tmp - last_values[row]), buff));
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ Created 10/21/1995 Heikki Tuuri
|
|||||||
|
|
||||||
#include "os0file.h"
|
#include "os0file.h"
|
||||||
#include "os0sync.h"
|
#include "os0sync.h"
|
||||||
|
#include "os0thread.h"
|
||||||
#include "ut0mem.h"
|
#include "ut0mem.h"
|
||||||
#include "srv0srv.h"
|
#include "srv0srv.h"
|
||||||
#include "fil0fil.h"
|
#include "fil0fil.h"
|
||||||
@ -1093,6 +1094,7 @@ os_file_write(
|
|||||||
DWORD low;
|
DWORD low;
|
||||||
DWORD high;
|
DWORD high;
|
||||||
ulint i;
|
ulint i;
|
||||||
|
ulint n_retries = 0;
|
||||||
|
|
||||||
ut_a((offset & 0xFFFFFFFF) == offset);
|
ut_a((offset & 0xFFFFFFFF) == offset);
|
||||||
|
|
||||||
@ -1101,7 +1103,7 @@ os_file_write(
|
|||||||
ut_ad(file);
|
ut_ad(file);
|
||||||
ut_ad(buf);
|
ut_ad(buf);
|
||||||
ut_ad(n > 0);
|
ut_ad(n > 0);
|
||||||
|
retry:
|
||||||
low = offset;
|
low = offset;
|
||||||
high = offset_high;
|
high = offset_high;
|
||||||
|
|
||||||
@ -1145,6 +1147,19 @@ os_file_write(
|
|||||||
return(TRUE);
|
return(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If some background file system backup tool is running, then, at
|
||||||
|
least in Windows 2000, we may get here a specific error. Let us
|
||||||
|
retry the operation 100 times, with 1 second waits. */
|
||||||
|
|
||||||
|
if (GetLastError() == ERROR_LOCK_VIOLATION && n_retries < 100) {
|
||||||
|
|
||||||
|
os_thread_sleep(1000000);
|
||||||
|
|
||||||
|
n_retries++;
|
||||||
|
|
||||||
|
goto retry;
|
||||||
|
}
|
||||||
|
|
||||||
if (!os_has_said_disk_full) {
|
if (!os_has_said_disk_full) {
|
||||||
|
|
||||||
ut_print_timestamp(stderr);
|
ut_print_timestamp(stderr);
|
||||||
@ -1157,7 +1172,7 @@ os_file_write(
|
|||||||
"InnoDB: what the error number means.\n"
|
"InnoDB: what the error number means.\n"
|
||||||
"InnoDB: Check that your OS and file system support files of this size.\n"
|
"InnoDB: Check that your OS and file system support files of this size.\n"
|
||||||
"InnoDB: Check also that the disk is not full or a disk quota exceeded.\n",
|
"InnoDB: Check also that the disk is not full or a disk quota exceeded.\n",
|
||||||
name, offset_high, offset, n, len,
|
name, offset_high, offset, n, (ulint)len,
|
||||||
(ulint)GetLastError());
|
(ulint)GetLastError());
|
||||||
|
|
||||||
os_has_said_disk_full = TRUE;
|
os_has_said_disk_full = TRUE;
|
||||||
@ -1180,13 +1195,13 @@ os_file_write(
|
|||||||
|
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
" InnoDB: Error: Write to file %s failed at offset %lu %lu.\n"
|
" InnoDB: Error: Write to file %s failed at offset %lu %lu.\n"
|
||||||
"InnoDB: %lu bytes should have been written, only %lu were written.\n"
|
"InnoDB: %lu bytes should have been written, only %ld were written.\n"
|
||||||
"InnoDB: Operating system error number %lu.\n"
|
"InnoDB: Operating system error number %lu.\n"
|
||||||
"InnoDB: Look from section 13.2 at http://www.innodb.com/ibman.html\n"
|
"InnoDB: Look from section 13.2 at http://www.innodb.com/ibman.html\n"
|
||||||
"InnoDB: what the error number means or use the perror program of MySQL.\n"
|
"InnoDB: what the error number means or use the perror program of MySQL.\n"
|
||||||
"InnoDB: Check that your OS and file system support files of this size.\n"
|
"InnoDB: Check that your OS and file system support files of this size.\n"
|
||||||
"InnoDB: Check also that the disk is not full or a disk quota exceeded.\n",
|
"InnoDB: Check also that the disk is not full or a disk quota exceeded.\n",
|
||||||
name, offset_high, offset, n, (ulint)ret,
|
name, offset_high, offset, n, (long int)ret,
|
||||||
(ulint)errno);
|
(ulint)errno);
|
||||||
os_has_said_disk_full = TRUE;
|
os_has_said_disk_full = TRUE;
|
||||||
}
|
}
|
||||||
|
@ -485,6 +485,12 @@ simple_command(MYSQL *mysql,enum enum_server_command command, const char *arg,
|
|||||||
length ? length : (ulong) strlen(arg)))
|
length ? length : (ulong) strlen(arg)))
|
||||||
{
|
{
|
||||||
DBUG_PRINT("error",("Can't send command to server. Error: %d",socket_errno));
|
DBUG_PRINT("error",("Can't send command to server. Error: %d",socket_errno));
|
||||||
|
if (net->last_errno == ER_NET_PACKET_TOO_LARGE)
|
||||||
|
{
|
||||||
|
net->last_errno=CR_NET_PACKET_TOO_LARGE;
|
||||||
|
strmov(net->last_error,ER(net->last_errno));
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
end_server(mysql);
|
end_server(mysql);
|
||||||
if (mysql_reconnect(mysql))
|
if (mysql_reconnect(mysql))
|
||||||
goto end;
|
goto end;
|
||||||
|
@ -196,7 +196,7 @@ which_1 ()
|
|||||||
# Create the result tar file
|
# Create the result tar file
|
||||||
#
|
#
|
||||||
|
|
||||||
tar=`which_1 gtar`
|
tar=`which_1 gnutar gtar`
|
||||||
if test "$?" = "1" -o "$tar" = ""
|
if test "$?" = "1" -o "$tar" = ""
|
||||||
then
|
then
|
||||||
tar=tar
|
tar=tar
|
||||||
|
@ -3836,8 +3836,8 @@ struct show_var_st status_vars[]= {
|
|||||||
{"Not_flushed_key_blocks", (char*) &_my_blocks_changed, SHOW_LONG_CONST},
|
{"Not_flushed_key_blocks", (char*) &_my_blocks_changed, SHOW_LONG_CONST},
|
||||||
{"Not_flushed_delayed_rows", (char*) &delayed_rows_in_use, SHOW_LONG_CONST},
|
{"Not_flushed_delayed_rows", (char*) &delayed_rows_in_use, SHOW_LONG_CONST},
|
||||||
{"Open_tables", (char*) 0, SHOW_OPENTABLES},
|
{"Open_tables", (char*) 0, SHOW_OPENTABLES},
|
||||||
{"Open_files", (char*) &my_file_opened, SHOW_INT_CONST},
|
{"Open_files", (char*) &my_file_opened, SHOW_LONG_CONST},
|
||||||
{"Open_streams", (char*) &my_stream_opened, SHOW_INT_CONST},
|
{"Open_streams", (char*) &my_stream_opened, SHOW_LONG_CONST},
|
||||||
{"Opened_tables", (char*) &opened_tables, SHOW_LONG},
|
{"Opened_tables", (char*) &opened_tables, SHOW_LONG},
|
||||||
{"Questions", (char*) 0, SHOW_QUESTION},
|
{"Questions", (char*) 0, SHOW_QUESTION},
|
||||||
#ifdef HAVE_QUERY_CACHE
|
#ifdef HAVE_QUERY_CACHE
|
||||||
|
@ -977,6 +977,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
|
|||||||
char *save_user= thd->user;
|
char *save_user= thd->user;
|
||||||
char *save_priv_user= thd->priv_user;
|
char *save_priv_user= thd->priv_user;
|
||||||
char *save_db= thd->db;
|
char *save_db= thd->db;
|
||||||
|
thd->user=0;
|
||||||
USER_CONN *save_uc= thd->user_connect;
|
USER_CONN *save_uc= thd->user_connect;
|
||||||
|
|
||||||
if ((uint) ((uchar*) db - net->read_pos) > packet_length)
|
if ((uint) ((uchar*) db - net->read_pos) > packet_length)
|
||||||
@ -987,7 +988,6 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
|
|||||||
if (check_user(thd, COM_CHANGE_USER, user, passwd, db, 0))
|
if (check_user(thd, COM_CHANGE_USER, user, passwd, db, 0))
|
||||||
{ // Restore old user
|
{ // Restore old user
|
||||||
x_free(thd->user);
|
x_free(thd->user);
|
||||||
x_free(thd->db);
|
|
||||||
thd->master_access=save_master_access;
|
thd->master_access=save_master_access;
|
||||||
thd->db_access=save_db_access;
|
thd->db_access=save_db_access;
|
||||||
thd->db=save_db;
|
thd->db=save_db;
|
||||||
|
Reference in New Issue
Block a user