merge from 5.1 main
This commit is contained in:
commit
cfe8d893e9
@ -15,11 +15,6 @@
|
|||||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define COPYRIGHT_NOTICE "\
|
|
||||||
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.\n\
|
|
||||||
This software comes with ABSOLUTELY NO WARRANTY. This is free software,\n\
|
|
||||||
and you are welcome to modify and redistribute it under the GPL v2 license\n"
|
|
||||||
|
|
||||||
/* mysql command tool
|
/* mysql command tool
|
||||||
* Commands compatible with mSQL by David J. Hughes
|
* Commands compatible with mSQL by David J. Hughes
|
||||||
*
|
*
|
||||||
@ -120,6 +115,7 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "completion_hash.h"
|
#include "completion_hash.h"
|
||||||
|
#include <welcome_copyright_notice.h> // ORACLE_WELCOME_COPYRIGHT_NOTICE
|
||||||
|
|
||||||
#define PROMPT_CHAR '\\'
|
#define PROMPT_CHAR '\\'
|
||||||
#define DEFAULT_DELIMITER ";"
|
#define DEFAULT_DELIMITER ";"
|
||||||
@ -1174,7 +1170,7 @@ int main(int argc,char *argv[])
|
|||||||
mysql_thread_id(&mysql), server_version_string(&mysql));
|
mysql_thread_id(&mysql), server_version_string(&mysql));
|
||||||
put_info((char*) glob_buffer.ptr(),INFO_INFO);
|
put_info((char*) glob_buffer.ptr(),INFO_INFO);
|
||||||
|
|
||||||
put_info(COPYRIGHT_NOTICE, INFO_INFO);
|
put_info(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000, 2011"), INFO_INFO);
|
||||||
|
|
||||||
#ifdef HAVE_READLINE
|
#ifdef HAVE_READLINE
|
||||||
initialize_readline((char*) my_progname);
|
initialize_readline((char*) my_progname);
|
||||||
@ -1593,7 +1589,7 @@ static void usage(int version)
|
|||||||
|
|
||||||
if (version)
|
if (version)
|
||||||
return;
|
return;
|
||||||
printf("%s", COPYRIGHT_NOTICE);
|
puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000, 2011"));
|
||||||
printf("Usage: %s [OPTIONS] [database]\n", my_progname);
|
printf("Usage: %s [OPTIONS] [database]\n", my_progname);
|
||||||
my_print_help(my_long_options);
|
my_print_help(my_long_options);
|
||||||
print_defaults("my", load_default_groups);
|
print_defaults("my", load_default_groups);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
|
Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -19,6 +19,8 @@
|
|||||||
#include <sslopt-vars.h>
|
#include <sslopt-vars.h>
|
||||||
#include "../scripts/mysql_fix_privilege_tables_sql.c"
|
#include "../scripts/mysql_fix_privilege_tables_sql.c"
|
||||||
|
|
||||||
|
#include <welcome_copyright_notice.h> /* ORACLE_WELCOME_COPYRIGHT_NOTICE */
|
||||||
|
|
||||||
#define VER "1.1"
|
#define VER "1.1"
|
||||||
|
|
||||||
#ifdef HAVE_SYS_WAIT_H
|
#ifdef HAVE_SYS_WAIT_H
|
||||||
@ -228,6 +230,7 @@ get_one_option(int optid, const struct my_option *opt,
|
|||||||
switch (optid) {
|
switch (optid) {
|
||||||
|
|
||||||
case '?':
|
case '?':
|
||||||
|
puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000, 2011"));
|
||||||
printf("%s Ver %s Distrib %s, for %s (%s)\n",
|
printf("%s Ver %s Distrib %s, for %s (%s)\n",
|
||||||
my_progname, VER, MYSQL_SERVER_VERSION, SYSTEM_TYPE, MACHINE_TYPE);
|
my_progname, VER, MYSQL_SERVER_VERSION, SYSTEM_TYPE, MACHINE_TYPE);
|
||||||
puts("MySQL utility for upgrading databases to new MySQL versions.\n");
|
puts("MySQL utility for upgrading databases to new MySQL versions.\n");
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <mysql.h>
|
#include <mysql.h>
|
||||||
#include <sql_common.h>
|
#include <sql_common.h>
|
||||||
|
#include <welcome_copyright_notice.h> /* ORACLE_WELCOME_COPYRIGHT_NOTICE */
|
||||||
|
|
||||||
#define ADMIN_VERSION "8.42"
|
#define ADMIN_VERSION "8.42"
|
||||||
#define MAX_MYSQL_VAR 512
|
#define MAX_MYSQL_VAR 512
|
||||||
@ -692,8 +693,7 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
|
|||||||
case ADMIN_VER:
|
case ADMIN_VER:
|
||||||
new_line=1;
|
new_line=1;
|
||||||
print_version();
|
print_version();
|
||||||
puts("Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.");
|
puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000, 2011"));
|
||||||
puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\nand you are welcome to modify and redistribute it under the GPL license\n");
|
|
||||||
printf("Server version\t\t%s\n", mysql_get_server_info(mysql));
|
printf("Server version\t\t%s\n", mysql_get_server_info(mysql));
|
||||||
printf("Protocol version\t%d\n", mysql_get_proto_info(mysql));
|
printf("Protocol version\t%d\n", mysql_get_proto_info(mysql));
|
||||||
printf("Connection\t\t%s\n",mysql_get_host_info(mysql));
|
printf("Connection\t\t%s\n",mysql_get_host_info(mysql));
|
||||||
@ -1072,8 +1072,7 @@ static void print_version(void)
|
|||||||
static void usage(void)
|
static void usage(void)
|
||||||
{
|
{
|
||||||
print_version();
|
print_version();
|
||||||
puts("Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.");
|
puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000, 2011"));
|
||||||
puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\nand you are welcome to modify and redistribute it under the GPL license\n");
|
|
||||||
puts("Administration program for the mysqld daemon.");
|
puts("Administration program for the mysqld daemon.");
|
||||||
printf("Usage: %s [OPTIONS] command command....\n", my_progname);
|
printf("Usage: %s [OPTIONS] command command....\n", my_progname);
|
||||||
my_print_help(my_long_options);
|
my_print_help(my_long_options);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
|
Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -15,8 +15,6 @@
|
|||||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* By Jani Tolonen, 2001-04-20, MySQL Development Team */
|
|
||||||
|
|
||||||
#define CHECK_VERSION "2.5.0"
|
#define CHECK_VERSION "2.5.0"
|
||||||
|
|
||||||
#include "client_priv.h"
|
#include "client_priv.h"
|
||||||
@ -24,6 +22,7 @@
|
|||||||
#include <mysql_version.h>
|
#include <mysql_version.h>
|
||||||
#include <mysqld_error.h>
|
#include <mysqld_error.h>
|
||||||
#include <sslopt-vars.h>
|
#include <sslopt-vars.h>
|
||||||
|
#include <welcome_copyright_notice.h> /* ORACLE_WELCOME_COPYRIGHT_NOTICE */
|
||||||
|
|
||||||
/* Exit codes */
|
/* Exit codes */
|
||||||
|
|
||||||
@ -223,9 +222,7 @@ static void print_version(void)
|
|||||||
static void usage(void)
|
static void usage(void)
|
||||||
{
|
{
|
||||||
print_version();
|
print_version();
|
||||||
puts("By Jani Tolonen, 2001-04-20, MySQL Development Team.\n");
|
puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000, 2011"));
|
||||||
puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\n");
|
|
||||||
puts("and you are welcome to modify and redistribute it under the GPL license.\n");
|
|
||||||
puts("This program can be used to CHECK (-c, -m, -C), REPAIR (-r), ANALYZE (-a),");
|
puts("This program can be used to CHECK (-c, -m, -C), REPAIR (-r), ANALYZE (-a),");
|
||||||
puts("or OPTIMIZE (-o) tables. Some of the options (like -e or -q) can be");
|
puts("or OPTIMIZE (-o) tables. Some of the options (like -e or -q) can be");
|
||||||
puts("used at the same time. Not all options are supported by all storage engines.");
|
puts("used at the same time. Not all options are supported by all storage engines.");
|
||||||
|
@ -54,6 +54,8 @@
|
|||||||
#include "mysqld_error.h"
|
#include "mysqld_error.h"
|
||||||
#include "../sql/ha_ndbcluster_tables.h"
|
#include "../sql/ha_ndbcluster_tables.h"
|
||||||
|
|
||||||
|
#include <welcome_copyright_notice.h> /* ORACLE_WELCOME_COPYRIGHT_NOTICE */
|
||||||
|
|
||||||
/* Exit codes */
|
/* Exit codes */
|
||||||
|
|
||||||
#define EX_USAGE 1
|
#define EX_USAGE 1
|
||||||
@ -569,8 +571,7 @@ static void short_usage_sub(void)
|
|||||||
static void usage(void)
|
static void usage(void)
|
||||||
{
|
{
|
||||||
print_version();
|
print_version();
|
||||||
puts("By Igor Romanenko, Monty, Jani & Sinisa.");
|
puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000, 2011"));
|
||||||
puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\nand you are welcome to modify and redistribute it under the GPL license.\n");
|
|
||||||
puts("Dumping structure and contents of MySQL databases and tables.");
|
puts("Dumping structure and contents of MySQL databases and tables.");
|
||||||
short_usage_sub();
|
short_usage_sub();
|
||||||
print_defaults("my",load_default_groups);
|
print_defaults("my",load_default_groups);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
|
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -18,14 +18,8 @@
|
|||||||
/*
|
/*
|
||||||
** mysqlimport.c - Imports all given files
|
** mysqlimport.c - Imports all given files
|
||||||
** into a table(s).
|
** into a table(s).
|
||||||
**
|
|
||||||
** *************************
|
|
||||||
** * *
|
|
||||||
** * AUTHOR: Monty & Jani *
|
|
||||||
** * DATE: June 24, 1997 *
|
|
||||||
** * *
|
|
||||||
** *************************
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define IMPORT_VERSION "3.7"
|
#define IMPORT_VERSION "3.7"
|
||||||
|
|
||||||
#include "client_priv.h"
|
#include "client_priv.h"
|
||||||
@ -42,6 +36,8 @@ pthread_mutex_t counter_mutex;
|
|||||||
pthread_cond_t count_threshhold;
|
pthread_cond_t count_threshhold;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <welcome_copyright_notice.h> /* ORACLE_WELCOME_COPYRIGHT_NOTICE */
|
||||||
|
|
||||||
static void db_error_with_table(MYSQL *mysql, char *table);
|
static void db_error_with_table(MYSQL *mysql, char *table);
|
||||||
static void db_error(MYSQL *mysql);
|
static void db_error(MYSQL *mysql);
|
||||||
static char *field_escape(char *to,const char *from,uint length);
|
static char *field_escape(char *to,const char *from,uint length);
|
||||||
@ -200,8 +196,7 @@ static void print_version(void)
|
|||||||
static void usage(void)
|
static void usage(void)
|
||||||
{
|
{
|
||||||
print_version();
|
print_version();
|
||||||
puts("Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.");
|
puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000, 2011"));
|
||||||
puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\nand you are welcome to modify and redistribute it under the GPL license.\n");
|
|
||||||
printf("\
|
printf("\
|
||||||
Loads tables from text files in various formats. The base name of the\n\
|
Loads tables from text files in various formats. The base name of the\n\
|
||||||
text file must be the name of the table that should be used.\n\
|
text file must be the name of the table that should be used.\n\
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
|
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -27,6 +27,7 @@
|
|||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <sslopt-vars.h>
|
#include <sslopt-vars.h>
|
||||||
|
#include <welcome_copyright_notice.h> /* ORACLE_WELCOME_COPYRIGHT_NOTICE */
|
||||||
|
|
||||||
static char * host=0, *opt_password=0, *user=0;
|
static char * host=0, *opt_password=0, *user=0;
|
||||||
static my_bool opt_show_keys= 0, opt_compress= 0, opt_count=0, opt_status= 0;
|
static my_bool opt_show_keys= 0, opt_compress= 0, opt_count=0, opt_status= 0;
|
||||||
@ -255,8 +256,7 @@ static void print_version(void)
|
|||||||
static void usage(void)
|
static void usage(void)
|
||||||
{
|
{
|
||||||
print_version();
|
print_version();
|
||||||
puts("Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.");
|
puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000, 2011)"));
|
||||||
puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\nand you are welcome to modify and redistribute it under the GPL license.\n");
|
|
||||||
puts("Shows the structure of a MySQL database (databases, tables, and columns).\n");
|
puts("Shows the structure of a MySQL database (databases, tables, and columns).\n");
|
||||||
printf("Usage: %s [OPTIONS] [database [table [column]]]\n",my_progname);
|
printf("Usage: %s [OPTIONS] [database [table [column]]]\n",my_progname);
|
||||||
puts("\n\
|
puts("\n\
|
||||||
|
@ -24,13 +24,6 @@
|
|||||||
http://dev.mysql.com/doc/mysqltest/en/index.html
|
http://dev.mysql.com/doc/mysqltest/en/index.html
|
||||||
|
|
||||||
Please keep the test framework tools identical in all versions!
|
Please keep the test framework tools identical in all versions!
|
||||||
|
|
||||||
Written by:
|
|
||||||
Sasha Pachev <sasha@mysql.com>
|
|
||||||
Matt Wagner <matt@mysql.com>
|
|
||||||
Monty
|
|
||||||
Jani
|
|
||||||
Holyfoot
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define MTEST_VERSION "3.3"
|
#define MTEST_VERSION "3.3"
|
||||||
@ -53,6 +46,8 @@
|
|||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <my_stacktrace.h>
|
#include <my_stacktrace.h>
|
||||||
|
|
||||||
|
#include <welcome_copyright_notice.h> // ORACLE_WELCOME_COPYRIGHT_NOTICE
|
||||||
|
|
||||||
#ifdef __WIN__
|
#ifdef __WIN__
|
||||||
#include <crtdbg.h>
|
#include <crtdbg.h>
|
||||||
#define SIGNAL_FMT "exception 0x%x"
|
#define SIGNAL_FMT "exception 0x%x"
|
||||||
@ -6125,8 +6120,7 @@ void print_version(void)
|
|||||||
void usage()
|
void usage()
|
||||||
{
|
{
|
||||||
print_version();
|
print_version();
|
||||||
printf("MySQL AB, by Sasha, Matt, Monty & Jani\n");
|
puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000, 2011"));
|
||||||
printf("This software comes with ABSOLUTELY NO WARRANTY\n\n");
|
|
||||||
printf("Runs a test against the mysql server and compares output with a results file.\n\n");
|
printf("Runs a test against the mysql server and compares output with a results file.\n\n");
|
||||||
printf("Usage: %s [OPTIONS] [database] < test_file\n", my_progname);
|
printf("Usage: %s [OPTIONS] [database] < test_file\n", my_progname);
|
||||||
my_print_help(my_long_options);
|
my_print_help(my_long_options);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Copyright (c) 2000-2007 MySQL AB, 2009 Sun Microsystems, Inc.
|
/*
|
||||||
Use is subject to license terms.
|
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
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
|
it under the terms of the GNU General Public License as published by
|
||||||
@ -89,6 +89,8 @@ So, we can read full search-structure as 32-bit word
|
|||||||
#include "mysql_version.h"
|
#include "mysql_version.h"
|
||||||
#include "lex.h"
|
#include "lex.h"
|
||||||
|
|
||||||
|
#include <welcome_copyright_notice.h> /* ORACLE_WELCOME_COPYRIGHT_NOTICE */
|
||||||
|
|
||||||
const char *default_dbug_option="d:t:o,/tmp/gen_lex_hash.trace";
|
const char *default_dbug_option="d:t:o,/tmp/gen_lex_hash.trace";
|
||||||
|
|
||||||
struct my_option my_long_options[] =
|
struct my_option my_long_options[] =
|
||||||
@ -348,9 +350,7 @@ static void usage(int version)
|
|||||||
my_progname, MYSQL_SERVER_VERSION, SYSTEM_TYPE, MACHINE_TYPE);
|
my_progname, MYSQL_SERVER_VERSION, SYSTEM_TYPE, MACHINE_TYPE);
|
||||||
if (version)
|
if (version)
|
||||||
return;
|
return;
|
||||||
puts("Copyright (C) 2001 MySQL AB, by VVA and Monty");
|
puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000, 2011"));
|
||||||
puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\n\
|
|
||||||
and you are welcome to modify and redistribute it under the GPL license\n");
|
|
||||||
puts("This program generates a perfect hashing function for the sql_lex.cc");
|
puts("This program generates a perfect hashing function for the sql_lex.cc");
|
||||||
printf("Usage: %s [OPTIONS]\n\n", my_progname);
|
printf("Usage: %s [OPTIONS]\n\n", my_progname);
|
||||||
my_print_help(my_long_options);
|
my_print_help(my_long_options);
|
||||||
@ -452,24 +452,9 @@ int main(int argc,char **argv)
|
|||||||
/* Broken up to indicate that it's not advice to you, gentle reader. */
|
/* Broken up to indicate that it's not advice to you, gentle reader. */
|
||||||
printf("/*\n\n Do " "not " "edit " "this " "file " "directly!\n\n*/\n");
|
printf("/*\n\n Do " "not " "edit " "this " "file " "directly!\n\n*/\n");
|
||||||
|
|
||||||
printf("\
|
puts("/*");
|
||||||
/* Copyright (C) 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.\n\
|
puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000, 2011"));
|
||||||
\n\
|
puts("*/");
|
||||||
This program is free software; you can redistribute it and/or modify\n\
|
|
||||||
it under the terms of the GNU General Public License as published by\n\
|
|
||||||
the Free Software Foundation; version 2 of the License.\n\
|
|
||||||
\n\
|
|
||||||
This program is distributed in the hope that it will be useful,\n\
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of\n\
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\
|
|
||||||
GNU General Public License for more details.\n\
|
|
||||||
\n\
|
|
||||||
You should have received a copy of the GNU General Public License\n\
|
|
||||||
along with this program; see the file COPYING. If not, write to the\n\
|
|
||||||
Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston\n\
|
|
||||||
MA 02110-1301 USA. */\n\
|
|
||||||
\n\
|
|
||||||
");
|
|
||||||
|
|
||||||
/* Broken up to indicate that it's not advice to you, gentle reader. */
|
/* Broken up to indicate that it's not advice to you, gentle reader. */
|
||||||
printf("/* Do " "not " "edit " "this " "file! This is generated by "
|
printf("/* Do " "not " "edit " "this " "file! This is generated by "
|
||||||
|
@ -279,6 +279,8 @@ extern "C" sig_handler handle_segfault(int sig);
|
|||||||
|
|
||||||
/* Constants */
|
/* Constants */
|
||||||
|
|
||||||
|
#include <welcome_copyright_notice.h> // ORACLE_WELCOME_COPYRIGHT_NOTICE
|
||||||
|
|
||||||
const char *show_comp_option_name[]= {"YES", "NO", "DISABLED"};
|
const char *show_comp_option_name[]= {"YES", "NO", "DISABLED"};
|
||||||
/*
|
/*
|
||||||
WARNING: When adding new SQL modes don't forget to update the
|
WARNING: When adding new SQL modes don't forget to update the
|
||||||
@ -7796,13 +7798,8 @@ static void usage(void)
|
|||||||
if (!default_collation_name)
|
if (!default_collation_name)
|
||||||
default_collation_name= (char*) default_charset_info->name;
|
default_collation_name= (char*) default_charset_info->name;
|
||||||
print_version();
|
print_version();
|
||||||
puts("\
|
puts(ORACLE_WELCOME_COPYRIGHT_NOTICE("2000, 2011"));
|
||||||
Copyright (C) 2000-2008 MySQL AB, by Monty and others.\n\
|
puts("Starts the MySQL database server.\n");
|
||||||
Copyright (C) 2008 Sun Microsystems, Inc.\n\
|
|
||||||
This software comes with ABSOLUTELY NO WARRANTY. This is free software,\n\
|
|
||||||
and you are welcome to modify and redistribute it under the GPL license\n\n\
|
|
||||||
Starts the MySQL database server.\n");
|
|
||||||
|
|
||||||
printf("Usage: %s [OPTIONS]\n", my_progname);
|
printf("Usage: %s [OPTIONS]\n", my_progname);
|
||||||
if (!opt_verbose)
|
if (!opt_verbose)
|
||||||
puts("\nFor more help options (several pages), use mysqld --verbose --help.");
|
puts("\nFor more help options (several pages), use mysqld --verbose --help.");
|
||||||
|
@ -857,8 +857,8 @@ bool Protocol_text::store(const char *from, size_t length,
|
|||||||
{
|
{
|
||||||
CHARSET_INFO *tocs= this->thd->variables.character_set_results;
|
CHARSET_INFO *tocs= this->thd->variables.character_set_results;
|
||||||
#ifndef DBUG_OFF
|
#ifndef DBUG_OFF
|
||||||
DBUG_PRINT("info", ("Protocol_text::store field %u (%u): %s", field_pos,
|
DBUG_PRINT("info", ("Protocol_text::store field %u (%u): %.*s", field_pos,
|
||||||
field_count, (length == 0? "" : from)));
|
field_count, (int) length, (length == 0 ? "" : from)));
|
||||||
DBUG_ASSERT(field_pos < field_count);
|
DBUG_ASSERT(field_pos < field_count);
|
||||||
DBUG_ASSERT(field_types == 0 ||
|
DBUG_ASSERT(field_types == 0 ||
|
||||||
field_types[field_pos] == MYSQL_TYPE_DECIMAL ||
|
field_types[field_pos] == MYSQL_TYPE_DECIMAL ||
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
2011-07-19 The InnoDB Team
|
||||||
|
|
||||||
|
* buf/buf0buf.c, buf/buf0rea.c, handler/ha_innodb.cc,
|
||||||
|
include/buf0buf.h, include/buf0buf.ic, include/srv0srv.h,
|
||||||
|
srv/srv0srv.c:
|
||||||
|
Fix bug#Bug 12356373 by reintroducing random readahead
|
||||||
|
|
||||||
2011-06-30 The InnoDB Team
|
2011-06-30 The InnoDB Team
|
||||||
|
|
||||||
* row/row0row.c:
|
* row/row0row.c:
|
||||||
|
@ -3590,12 +3590,16 @@ buf_print_io(
|
|||||||
|
|
||||||
/* Statistics about read ahead algorithm */
|
/* Statistics about read ahead algorithm */
|
||||||
fprintf(file, "Pages read ahead %.2f/s,"
|
fprintf(file, "Pages read ahead %.2f/s,"
|
||||||
" evicted without access %.2f/s\n",
|
" evicted without access %.2f/s,"
|
||||||
|
" Random read ahead %.2f/s\n",
|
||||||
(buf_pool->stat.n_ra_pages_read
|
(buf_pool->stat.n_ra_pages_read
|
||||||
- buf_pool->old_stat.n_ra_pages_read)
|
- buf_pool->old_stat.n_ra_pages_read)
|
||||||
/ time_elapsed,
|
/ time_elapsed,
|
||||||
(buf_pool->stat.n_ra_pages_evicted
|
(buf_pool->stat.n_ra_pages_evicted
|
||||||
- buf_pool->old_stat.n_ra_pages_evicted)
|
- buf_pool->old_stat.n_ra_pages_evicted)
|
||||||
|
/ time_elapsed,
|
||||||
|
(buf_pool->stat.n_ra_pages_read_rnd
|
||||||
|
- buf_pool->old_stat.n_ra_pages_read_rnd)
|
||||||
/ time_elapsed);
|
/ time_elapsed);
|
||||||
|
|
||||||
/* Print some values to help us with visualizing what is
|
/* Print some values to help us with visualizing what is
|
||||||
|
@ -38,6 +38,14 @@ Created 11/5/1995 Heikki Tuuri
|
|||||||
#include "srv0start.h"
|
#include "srv0start.h"
|
||||||
#include "srv0srv.h"
|
#include "srv0srv.h"
|
||||||
|
|
||||||
|
/** The size in blocks of the area where the random read-ahead algorithm counts
|
||||||
|
the accessed pages when deciding whether to read-ahead */
|
||||||
|
#define BUF_READ_AHEAD_RANDOM_AREA BUF_READ_AHEAD_AREA
|
||||||
|
|
||||||
|
/** There must be at least this many pages in buf_pool in the area to start
|
||||||
|
a random read-ahead */
|
||||||
|
#define BUF_READ_AHEAD_RANDOM_THRESHOLD (5 + BUF_READ_AHEAD_RANDOM_AREA / 8)
|
||||||
|
|
||||||
/** The linear read-ahead area size */
|
/** The linear read-ahead area size */
|
||||||
#define BUF_READ_AHEAD_LINEAR_AREA BUF_READ_AHEAD_AREA
|
#define BUF_READ_AHEAD_LINEAR_AREA BUF_READ_AHEAD_AREA
|
||||||
|
|
||||||
@ -157,6 +165,165 @@ buf_read_page_low(
|
|||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/********************************************************************//**
|
||||||
|
Applies a random read-ahead in buf_pool if there are at least a threshold
|
||||||
|
value of accessed pages from the random read-ahead area. Does not read any
|
||||||
|
page, not even the one at the position (space, offset), if the read-ahead
|
||||||
|
mechanism is not activated. NOTE 1: the calling thread may own latches on
|
||||||
|
pages: to avoid deadlocks this function must be written such that it cannot
|
||||||
|
end up waiting for these latches! NOTE 2: the calling thread must want
|
||||||
|
access to the page given: this rule is set to prevent unintended read-aheads
|
||||||
|
performed by ibuf routines, a situation which could result in a deadlock if
|
||||||
|
the OS does not support asynchronous i/o.
|
||||||
|
@return number of page read requests issued; NOTE that if we read ibuf
|
||||||
|
pages, it may happen that the page at the given page number does not
|
||||||
|
get read even if we return a positive value! */
|
||||||
|
static
|
||||||
|
ulint
|
||||||
|
buf_read_ahead_random(
|
||||||
|
/*==================*/
|
||||||
|
ulint space, /*!< in: space id */
|
||||||
|
ulint zip_size,/*!< in: compressed page size in bytes, or 0 */
|
||||||
|
ulint offset) /*!< in: page number of a page which the current thread
|
||||||
|
wants to access */
|
||||||
|
{
|
||||||
|
ib_int64_t tablespace_version;
|
||||||
|
ulint recent_blocks = 0;
|
||||||
|
ulint count;
|
||||||
|
ulint ibuf_mode;
|
||||||
|
ulint low, high;
|
||||||
|
ulint err;
|
||||||
|
ulint i;
|
||||||
|
ulint buf_read_ahead_random_area;
|
||||||
|
|
||||||
|
if (!srv_random_read_ahead) {
|
||||||
|
/* Disabled by user */
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (srv_startup_is_before_trx_rollback_phase) {
|
||||||
|
/* No read-ahead to avoid thread deadlocks */
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ibuf_bitmap_page(zip_size, offset)
|
||||||
|
|| trx_sys_hdr_page(space, offset)) {
|
||||||
|
|
||||||
|
/* If it is an ibuf bitmap page or trx sys hdr, we do
|
||||||
|
no read-ahead, as that could break the ibuf page access
|
||||||
|
order */
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Remember the tablespace version before we ask the tablespace size
|
||||||
|
below: if DISCARD + IMPORT changes the actual .ibd file meanwhile, we
|
||||||
|
do not try to read outside the bounds of the tablespace! */
|
||||||
|
|
||||||
|
tablespace_version = fil_space_get_version(space);
|
||||||
|
|
||||||
|
buf_read_ahead_random_area = BUF_READ_AHEAD_RANDOM_AREA;
|
||||||
|
|
||||||
|
low = (offset / buf_read_ahead_random_area)
|
||||||
|
* buf_read_ahead_random_area;
|
||||||
|
high = (offset / buf_read_ahead_random_area + 1)
|
||||||
|
* buf_read_ahead_random_area;
|
||||||
|
if (high > fil_space_get_size(space)) {
|
||||||
|
|
||||||
|
high = fil_space_get_size(space);
|
||||||
|
}
|
||||||
|
|
||||||
|
buf_pool_mutex_enter();
|
||||||
|
|
||||||
|
if (buf_pool->n_pend_reads
|
||||||
|
> buf_pool->curr_size / BUF_READ_AHEAD_PEND_LIMIT) {
|
||||||
|
buf_pool_mutex_exit();
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Count how many blocks in the area have been recently accessed,
|
||||||
|
that is, reside near the start of the LRU list. */
|
||||||
|
|
||||||
|
for (i = low; i < high; i++) {
|
||||||
|
const buf_page_t* bpage = buf_page_hash_get(space, i);
|
||||||
|
|
||||||
|
if (bpage
|
||||||
|
&& buf_page_is_accessed(bpage)
|
||||||
|
&& buf_page_peek_if_young(bpage)) {
|
||||||
|
|
||||||
|
recent_blocks++;
|
||||||
|
|
||||||
|
if (recent_blocks >= BUF_READ_AHEAD_RANDOM_THRESHOLD) {
|
||||||
|
|
||||||
|
buf_pool_mutex_exit();
|
||||||
|
goto read_ahead;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
buf_pool_mutex_exit();
|
||||||
|
/* Do nothing */
|
||||||
|
return(0);
|
||||||
|
|
||||||
|
read_ahead:
|
||||||
|
/* Read all the suitable blocks within the area */
|
||||||
|
|
||||||
|
if (ibuf_inside()) {
|
||||||
|
ibuf_mode = BUF_READ_IBUF_PAGES_ONLY;
|
||||||
|
} else {
|
||||||
|
ibuf_mode = BUF_READ_ANY_PAGE;
|
||||||
|
}
|
||||||
|
|
||||||
|
count = 0;
|
||||||
|
|
||||||
|
for (i = low; i < high; i++) {
|
||||||
|
/* It is only sensible to do read-ahead in the non-sync aio
|
||||||
|
mode: hence FALSE as the first parameter */
|
||||||
|
|
||||||
|
if (!ibuf_bitmap_page(zip_size, i)) {
|
||||||
|
count += buf_read_page_low(
|
||||||
|
&err, FALSE,
|
||||||
|
ibuf_mode | OS_AIO_SIMULATED_WAKE_LATER,
|
||||||
|
space, zip_size, FALSE,
|
||||||
|
tablespace_version, i);
|
||||||
|
if (err == DB_TABLESPACE_DELETED) {
|
||||||
|
ut_print_timestamp(stderr);
|
||||||
|
fprintf(stderr,
|
||||||
|
" InnoDB: Warning: in random"
|
||||||
|
" readahead trying to access\n"
|
||||||
|
"InnoDB: tablespace %lu page %lu,\n"
|
||||||
|
"InnoDB: but the tablespace does not"
|
||||||
|
" exist or is just being dropped.\n",
|
||||||
|
(ulong) space, (ulong) i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* In simulated aio we wake the aio handler threads only after
|
||||||
|
queuing all aio requests, in native aio the following call does
|
||||||
|
nothing: */
|
||||||
|
|
||||||
|
os_aio_simulated_wake_handler_threads();
|
||||||
|
|
||||||
|
#ifdef UNIV_DEBUG
|
||||||
|
if (buf_debug_prints && (count > 0)) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"Random read-ahead space %lu offset %lu pages %lu\n",
|
||||||
|
(ulong) space, (ulong) offset,
|
||||||
|
(ulong) count);
|
||||||
|
}
|
||||||
|
#endif /* UNIV_DEBUG */
|
||||||
|
|
||||||
|
/* Read ahead is considered one I/O operation for the purpose of
|
||||||
|
LRU policy decision. */
|
||||||
|
buf_LRU_stat_inc_io();
|
||||||
|
|
||||||
|
buf_pool->stat.n_ra_pages_read_rnd += count;
|
||||||
|
return(count);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/********************************************************************//**
|
/********************************************************************//**
|
||||||
High-level function which reads a page asynchronously from a file to the
|
High-level function which reads a page asynchronously from a file to the
|
||||||
buffer buf_pool if it is not already there. Sets the io_fix flag and sets
|
buffer buf_pool if it is not already there. Sets the io_fix flag and sets
|
||||||
@ -175,6 +342,9 @@ buf_read_page(
|
|||||||
ulint count;
|
ulint count;
|
||||||
ulint err;
|
ulint err;
|
||||||
|
|
||||||
|
count = buf_read_ahead_random(space, zip_size, offset);
|
||||||
|
srv_buf_pool_reads += count;
|
||||||
|
|
||||||
tablespace_version = fil_space_get_version(space);
|
tablespace_version = fil_space_get_version(space);
|
||||||
|
|
||||||
/* We do the i/o in the synchronous aio mode to save thread
|
/* We do the i/o in the synchronous aio mode to save thread
|
||||||
|
@ -501,6 +501,8 @@ static SHOW_VAR innodb_status_variables[]= {
|
|||||||
(char*) &export_vars.innodb_buffer_pool_pages_misc, SHOW_LONG},
|
(char*) &export_vars.innodb_buffer_pool_pages_misc, SHOW_LONG},
|
||||||
{"buffer_pool_pages_total",
|
{"buffer_pool_pages_total",
|
||||||
(char*) &export_vars.innodb_buffer_pool_pages_total, SHOW_LONG},
|
(char*) &export_vars.innodb_buffer_pool_pages_total, SHOW_LONG},
|
||||||
|
{"buffer_pool_read_ahead_rnd",
|
||||||
|
(char*) &export_vars.innodb_buffer_pool_read_ahead_rnd, SHOW_LONG},
|
||||||
{"buffer_pool_read_ahead",
|
{"buffer_pool_read_ahead",
|
||||||
(char*) &export_vars.innodb_buffer_pool_read_ahead, SHOW_LONG},
|
(char*) &export_vars.innodb_buffer_pool_read_ahead, SHOW_LONG},
|
||||||
{"buffer_pool_read_ahead_evicted",
|
{"buffer_pool_read_ahead_evicted",
|
||||||
@ -11027,6 +11029,11 @@ static MYSQL_SYSVAR_UINT(change_buffering_debug, ibuf_debug,
|
|||||||
NULL, NULL, 0, 0, 1, 0);
|
NULL, NULL, 0, 0, 1, 0);
|
||||||
#endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */
|
#endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */
|
||||||
|
|
||||||
|
static MYSQL_SYSVAR_BOOL(random_read_ahead, srv_random_read_ahead,
|
||||||
|
PLUGIN_VAR_NOCMDARG,
|
||||||
|
"Whether to use read ahead for random access within an extent.",
|
||||||
|
NULL, NULL, FALSE);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_ULONG(read_ahead_threshold, srv_read_ahead_threshold,
|
static MYSQL_SYSVAR_ULONG(read_ahead_threshold, srv_read_ahead_threshold,
|
||||||
PLUGIN_VAR_RQCMDARG,
|
PLUGIN_VAR_RQCMDARG,
|
||||||
"Number of pages that must be accessed sequentially for InnoDB to "
|
"Number of pages that must be accessed sequentially for InnoDB to "
|
||||||
@ -11091,6 +11098,7 @@ static struct st_mysql_sys_var* innobase_system_variables[]= {
|
|||||||
#if defined UNIV_DEBUG || defined UNIV_IBUF_DEBUG
|
#if defined UNIV_DEBUG || defined UNIV_IBUF_DEBUG
|
||||||
MYSQL_SYSVAR(change_buffering_debug),
|
MYSQL_SYSVAR(change_buffering_debug),
|
||||||
#endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */
|
#endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */
|
||||||
|
MYSQL_SYSVAR(random_read_ahead),
|
||||||
MYSQL_SYSVAR(read_ahead_threshold),
|
MYSQL_SYSVAR(read_ahead_threshold),
|
||||||
MYSQL_SYSVAR(io_capacity),
|
MYSQL_SYSVAR(io_capacity),
|
||||||
NULL
|
NULL
|
||||||
|
@ -427,6 +427,18 @@ buf_block_get_freed_page_clock(
|
|||||||
__attribute__((pure));
|
__attribute__((pure));
|
||||||
|
|
||||||
/********************************************************************//**
|
/********************************************************************//**
|
||||||
|
Tells if a block is still close enough to the MRU end of the LRU list
|
||||||
|
meaning that it is not in danger of getting evicted and also implying
|
||||||
|
that it has been accessed recently.
|
||||||
|
Note that this is for heuristics only and does not reserve buffer pool
|
||||||
|
mutex.
|
||||||
|
@return TRUE if block is close to MRU end of LRU */
|
||||||
|
UNIV_INLINE
|
||||||
|
ibool
|
||||||
|
buf_page_peek_if_young(
|
||||||
|
/*===================*/
|
||||||
|
const buf_page_t* bpage); /*!< in: block */
|
||||||
|
/********************************************************************//**
|
||||||
Recommends a move of a block to the start of the LRU list if there is danger
|
Recommends a move of a block to the start of the LRU list if there is danger
|
||||||
of dropping from the buffer pool. NOTE: does not reserve the buffer pool
|
of dropping from the buffer pool. NOTE: does not reserve the buffer pool
|
||||||
mutex.
|
mutex.
|
||||||
@ -1334,6 +1346,8 @@ struct buf_pool_stat_struct{
|
|||||||
ulint n_pages_written;/*!< number write operations */
|
ulint n_pages_written;/*!< number write operations */
|
||||||
ulint n_pages_created;/*!< number of pages created
|
ulint n_pages_created;/*!< number of pages created
|
||||||
in the pool with no read */
|
in the pool with no read */
|
||||||
|
ulint n_ra_pages_read_rnd;/*!< number of pages read in
|
||||||
|
as part of random read ahead */
|
||||||
ulint n_ra_pages_read;/*!< number of pages read in
|
ulint n_ra_pages_read;/*!< number of pages read in
|
||||||
as part of read ahead */
|
as part of read ahead */
|
||||||
ulint n_ra_pages_evicted;/*!< number of read ahead
|
ulint n_ra_pages_evicted;/*!< number of read ahead
|
||||||
|
@ -61,6 +61,27 @@ buf_block_get_freed_page_clock(
|
|||||||
return(buf_page_get_freed_page_clock(&block->page));
|
return(buf_page_get_freed_page_clock(&block->page));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/********************************************************************//**
|
||||||
|
Tells if a block is still close enough to the MRU end of the LRU list
|
||||||
|
meaning that it is not in danger of getting evicted and also implying
|
||||||
|
that it has been accessed recently.
|
||||||
|
Note that this is for heuristics only and does not reserve buffer pool
|
||||||
|
mutex.
|
||||||
|
@return TRUE if block is close to MRU end of LRU */
|
||||||
|
UNIV_INLINE
|
||||||
|
ibool
|
||||||
|
buf_page_peek_if_young(
|
||||||
|
/*===================*/
|
||||||
|
const buf_page_t* bpage) /*!< in: block */
|
||||||
|
{
|
||||||
|
/* FIXME: bpage->freed_page_clock is 31 bits */
|
||||||
|
return((buf_pool->freed_page_clock & ((1UL << 31) - 1))
|
||||||
|
< ((ulint) bpage->freed_page_clock
|
||||||
|
+ (buf_pool->curr_size
|
||||||
|
* (BUF_LRU_OLD_RATIO_DIV - buf_LRU_old_ratio)
|
||||||
|
/ (BUF_LRU_OLD_RATIO_DIV * 4))));
|
||||||
|
}
|
||||||
|
|
||||||
/********************************************************************//**
|
/********************************************************************//**
|
||||||
Recommends a move of a block to the start of the LRU list if there is danger
|
Recommends a move of a block to the start of the LRU list if there is danger
|
||||||
of dropping from the buffer pool. NOTE: does not reserve the buffer pool
|
of dropping from the buffer pool. NOTE: does not reserve the buffer pool
|
||||||
@ -89,12 +110,7 @@ buf_page_peek_if_too_old(
|
|||||||
buf_pool->stat.n_pages_not_made_young++;
|
buf_pool->stat.n_pages_not_made_young++;
|
||||||
return(FALSE);
|
return(FALSE);
|
||||||
} else {
|
} else {
|
||||||
/* FIXME: bpage->freed_page_clock is 31 bits */
|
return(!buf_page_peek_if_young(bpage));
|
||||||
return((buf_pool->freed_page_clock & ((1UL << 31) - 1))
|
|
||||||
> ((ulint) bpage->freed_page_clock
|
|
||||||
+ (buf_pool->curr_size
|
|
||||||
* (BUF_LRU_OLD_RATIO_DIV - buf_LRU_old_ratio)
|
|
||||||
/ (BUF_LRU_OLD_RATIO_DIV * 4))));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,6 +143,7 @@ extern ulint srv_mem_pool_size;
|
|||||||
extern ulint srv_lock_table_size;
|
extern ulint srv_lock_table_size;
|
||||||
|
|
||||||
extern ulint srv_n_file_io_threads;
|
extern ulint srv_n_file_io_threads;
|
||||||
|
extern my_bool srv_random_read_ahead;
|
||||||
extern ulong srv_read_ahead_threshold;
|
extern ulong srv_read_ahead_threshold;
|
||||||
extern ulint srv_n_read_io_threads;
|
extern ulint srv_n_read_io_threads;
|
||||||
extern ulint srv_n_write_io_threads;
|
extern ulint srv_n_write_io_threads;
|
||||||
@ -618,6 +619,7 @@ struct export_var_struct{
|
|||||||
ulint innodb_buffer_pool_wait_free; /*!< srv_buf_pool_wait_free */
|
ulint innodb_buffer_pool_wait_free; /*!< srv_buf_pool_wait_free */
|
||||||
ulint innodb_buffer_pool_pages_flushed; /*!< srv_buf_pool_flushed */
|
ulint innodb_buffer_pool_pages_flushed; /*!< srv_buf_pool_flushed */
|
||||||
ulint innodb_buffer_pool_write_requests;/*!< srv_buf_pool_write_requests */
|
ulint innodb_buffer_pool_write_requests;/*!< srv_buf_pool_write_requests */
|
||||||
|
ulint innodb_buffer_pool_read_ahead_rnd;/*!< srv_read_ahead_rnd */
|
||||||
ulint innodb_buffer_pool_read_ahead; /*!< srv_read_ahead */
|
ulint innodb_buffer_pool_read_ahead; /*!< srv_read_ahead */
|
||||||
ulint innodb_buffer_pool_read_ahead_evicted;/*!< srv_read_ahead evicted*/
|
ulint innodb_buffer_pool_read_ahead_evicted;/*!< srv_read_ahead evicted*/
|
||||||
ulint innodb_dblwr_pages_written; /*!< srv_dblwr_pages_written */
|
ulint innodb_dblwr_pages_written; /*!< srv_dblwr_pages_written */
|
||||||
|
@ -203,6 +203,8 @@ UNIV_INTERN ulint srv_n_file_io_threads = ULINT_MAX;
|
|||||||
UNIV_INTERN ulint srv_n_read_io_threads = ULINT_MAX;
|
UNIV_INTERN ulint srv_n_read_io_threads = ULINT_MAX;
|
||||||
UNIV_INTERN ulint srv_n_write_io_threads = ULINT_MAX;
|
UNIV_INTERN ulint srv_n_write_io_threads = ULINT_MAX;
|
||||||
|
|
||||||
|
/* Switch to enable random read ahead. */
|
||||||
|
UNIV_INTERN my_bool srv_random_read_ahead = FALSE;
|
||||||
/* User settable value of the number of pages that must be present
|
/* User settable value of the number of pages that must be present
|
||||||
in the buffer cache and accessed sequentially for InnoDB to trigger a
|
in the buffer cache and accessed sequentially for InnoDB to trigger a
|
||||||
readahead request. */
|
readahead request. */
|
||||||
@ -1906,6 +1908,8 @@ srv_export_innodb_status(void)
|
|||||||
export_vars.innodb_buffer_pool_wait_free = srv_buf_pool_wait_free;
|
export_vars.innodb_buffer_pool_wait_free = srv_buf_pool_wait_free;
|
||||||
export_vars.innodb_buffer_pool_pages_flushed = srv_buf_pool_flushed;
|
export_vars.innodb_buffer_pool_pages_flushed = srv_buf_pool_flushed;
|
||||||
export_vars.innodb_buffer_pool_reads = srv_buf_pool_reads;
|
export_vars.innodb_buffer_pool_reads = srv_buf_pool_reads;
|
||||||
|
export_vars.innodb_buffer_pool_read_ahead_rnd
|
||||||
|
= buf_pool->stat.n_ra_pages_read_rnd;
|
||||||
export_vars.innodb_buffer_pool_read_ahead
|
export_vars.innodb_buffer_pool_read_ahead
|
||||||
= buf_pool->stat.n_ra_pages_read;
|
= buf_pool->stat.n_ra_pages_read;
|
||||||
export_vars.innodb_buffer_pool_read_ahead_evicted
|
export_vars.innodb_buffer_pool_read_ahead_evicted
|
||||||
|
Loading…
x
Reference in New Issue
Block a user