From: Alfranio Correia Date: November 2 2010 3:13pm Subject: Re: bzr commit into mysql-5.5 branch (mats.kindahl:3087) WL#5465 List-Archive: http://lists.mysql.com/commits/122558 Message-Id: <4CD02AA4.6000608@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi Mats, Patch approved. Just one minor detail you need to take care of. "rpl_variables.test" fails if you run "mtr" with "--parallel=auto". **** Binary log variables SELECT @@log_bin, @@log_bin_index, @@log_bin_basename; @@log_bin 1 -@@log_bin_index MYSQL_TEST_DIR/var/mysqld.1/data/master-bin.index -@@log_bin_basename MYSQL_TEST_DIR/var/mysqld.1/data/master-bin +@@log_bin_index MYSQL_TEST_DIR/var/1/mysqld.1/data/master-bin.index +@@log_bin_basename MYSQL_TEST_DIR/var/1/mysqld.1/data/master-bin [on slave] SELECT @@pid_file, @@datadir; -@@pid_file MYSQL_TEST_DIR/var/run/mysqld.2.pid -@@datadir MYSQL_TEST_DIR/var/mysqld.2/data/ +@@pid_file MYSQL_TEST_DIR/var/1/run/mysqld.2.pid +@@datadir MYSQL_TEST_DIR/var/1/mysqld.2/data/ **** Relay log variables SELECT @@relay_log, @@relay_log_index, @@relay_log_basename; @@relay_log slave-relay-bin -@@relay_log_index MYSQL_TEST_DIR/var/mysqld.2/data/slave-relay-bin.index -@@relay_log_basename MYSQL_TEST_DIR/var/mysqld.2/data/slave-relay-bin +@@relay_log_index MYSQL_TEST_DIR/var/1/mysqld.2/data/slave-relay-bin.index +@@relay_log_basename MYSQL_TEST_DIR/var/1/mysqld.2/data/slave-relay-bin **** Binary log variables SELECT @@log_bin, @@log_bin_index, @@log_bin_basename; @@log_bin 1 -@@log_bin_index MYSQL_TEST_DIR/var/mysqld.2/data/slave-bin.index -@@log_bin_basename MYSQL_TEST_DIR/var/mysqld.2/data/slave-bin +@@log_bin_index MYSQL_TEST_DIR/var/1/mysqld.2/data/slave-bin.index +@@log_bin_basename MYSQL_TEST_DIR/var/1/mysqld.2/data/slave-bin Cheers. On 10/28/2010 04:42 PM, Mats Kindahl wrote: > #At file:///home/bzr/mkindahl/w5465-5.5/ based on revid:joerg@stripped > > 3087 Mats Kindahl 2010-10-28 > WL#5465: System variables: paths to relay log and binary log files > > Adding new variables with paths to where the binary log files > and the relay log files are located. Three new global read-only > variables are added and one has changed contents. > > log_bin_basename > This variable hold the full path and name used for the binary > logs: not including the extension of the files. > > log_bin_index > This variable contain the full path to the binary log index > file. > > relay_log_basename > This variable hold the full path and name used for the relay > logs: not including the extension of the files. > > relay_log_index > This variable now contain the full path to the relay log > index file. Previously, it just contained the value supplied > to mysqld option relay-log-index, which was then used to > compute the path to the index file. > @ mysql-test/suite/binlog/t/binlog_variables_log_bin.test > Adding test to check values of log_bin% variables > when just --log-bin is used. > @ mysql-test/suite/binlog/t/binlog_variables_log_bin_index.test > Adding test to check values of log_bin% variables > when --log-bin and --log-bin-index is used. > @ mysql-test/suite/binlog/t/binlog_variables_relay_log.test > Adding test to check values of relay_log% variables > when just --relay-log is used. > @ mysql-test/suite/binlog/t/binlog_variables_relay_log_index.test > Adding test to check values of relay_log% variables > when --relay-log and --relay-log-index is used. > @ mysql-test/suite/rpl/t/rpl_variables.test > Extending test to print value of replication file variables. > @ mysql-test/t/flush2.test > Extending test to also check relay_log* variables. > @ mysql-test/t/variables-notembedded.test > Adding check for relay_log_basename, log_bin_basename, > and log_bin_index. > @ sql/mysqld.cc > Exporting opt_binlog_index_name. > @ sql/slave.cc > Adding variables relay_log_index and > relay_log_basename for storing system > variable values. > @ sql/slave.h > Exporting variable storing the value of log_bin_index, > relay_log_basename, and relay_log_index. > @ sql/sys_vars.cc > Adding variables relay_log_basename, relay_log_index, log_bin_basename, > and log_bin_index as non-option variables. > > added: > mysql-test/r/mysqld--help-win.result.orig > mysql-test/suite/binlog/r/binlog_variables_log_bin.result > mysql-test/suite/binlog/r/binlog_variables_log_bin_index.result > mysql-test/suite/binlog/r/binlog_variables_relay_log.result > mysql-test/suite/binlog/r/binlog_variables_relay_log_index.result > mysql-test/suite/binlog/t/binlog_variables_log_bin-master.opt > mysql-test/suite/binlog/t/binlog_variables_log_bin.test > mysql-test/suite/binlog/t/binlog_variables_log_bin_index-master.opt > mysql-test/suite/binlog/t/binlog_variables_log_bin_index.test > mysql-test/suite/binlog/t/binlog_variables_relay_log-master.opt > mysql-test/suite/binlog/t/binlog_variables_relay_log.test > mysql-test/suite/binlog/t/binlog_variables_relay_log_index-master.opt > mysql-test/suite/binlog/t/binlog_variables_relay_log_index.test > modified: > mysql-test/r/flush2.result > mysql-test/r/mysqld--help-notwin.result > mysql-test/r/mysqld--help-win.result > mysql-test/r/variables-notembedded.result > mysql-test/suite/rpl/r/rpl_flushlog_loop.result > mysql-test/suite/rpl/r/rpl_variables.result > mysql-test/suite/rpl/t/rpl_variables.test > mysql-test/suite/sys_vars/r/all_vars.result > mysql-test/t/flush2.test > mysql-test/t/variables-notembedded.test > sql/log.cc > sql/log.h > sql/mysqld.cc > sql/slave.cc > sql/slave.h > sql/sys_vars.cc > === modified file 'mysql-test/r/flush2.result' > --- a/mysql-test/r/flush2.result 2009-11-04 12:28:20 +0000 > +++ b/mysql-test/r/flush2.result 2010-10-28 15:42:17 +0000 > @@ -3,10 +3,32 @@ set global expire_logs_days = 3; > show variables like 'log_bin%'; > Variable_name Value > log_bin OFF > +log_bin_basename > +log_bin_index > log_bin_trust_function_creators ON > +show variables like 'relay_log%'; > +Variable_name Value > +relay_log > +relay_log_basename > +relay_log_index > +relay_log_info_file relay-log.info > +relay_log_purge ON > +relay_log_recovery OFF > +relay_log_space_limit 0 > flush logs; > show variables like 'log_bin%'; > Variable_name Value > log_bin OFF > +log_bin_basename > +log_bin_index > log_bin_trust_function_creators ON > +show variables like 'relay_log%'; > +Variable_name Value > +relay_log > +relay_log_basename > +relay_log_index > +relay_log_info_file relay-log.info > +relay_log_purge ON > +relay_log_recovery OFF > +relay_log_space_limit 0 > set global expire_logs_days = 0; > > === modified file 'mysql-test/r/mysqld--help-notwin.result' > --- a/mysql-test/r/mysqld--help-notwin.result 2010-08-30 14:07:40 +0000 > +++ b/mysql-test/r/mysqld--help-notwin.result 2010-10-28 15:42:17 +0000 > @@ -218,7 +218,7 @@ The following options may be given as th > server's hostname changes) argument should be the chosen > location for the binary log files. > --log-bin-index=name > - File that holds the names for last binary log files. > + File that holds the names for binary log files. > --log-bin-trust-function-creators > If set to FALSE (the default), then when --log-bin is > used, creation of a stored function (or trigger) is > @@ -487,8 +487,7 @@ The following options may be given as th > are read through this buffer to avoid a disk seeks > --relay-log=name The location and name to use for relay logs > --relay-log-index=name > - The location and name to use for the file that keeps a > - list of the last relay logs > + File that holds the names for relay log files. > --relay-log-info-file=name > The location and name of the file that remembers where > the SQL replication thread is in the relay logs > > === modified file 'mysql-test/r/mysqld--help-win.result' > --- a/mysql-test/r/mysqld--help-win.result 2010-08-30 14:07:40 +0000 > +++ b/mysql-test/r/mysqld--help-win.result 2010-10-28 15:42:17 +0000 > @@ -217,7 +217,7 @@ The following options may be given as th > server's hostname changes) argument should be the chosen > location for the binary log files. > --log-bin-index=name > - File that holds the names for last binary log files. > + File that holds the names for binary log files. > --log-bin-trust-function-creators > If set to FALSE (the default), then when --log-bin is > used, creation of a stored function (or trigger) is > @@ -487,8 +487,7 @@ The following options may be given as th > are read through this buffer to avoid a disk seeks > --relay-log=name The location and name to use for relay logs > --relay-log-index=name > - The location and name to use for the file that keeps a > - list of the last relay logs > + File that holds the names for relay log files. > --relay-log-info-file=name > The location and name of the file that remembers where > the SQL replication thread is in the relay logs > > === added file 'mysql-test/r/mysqld--help-win.result.orig' > --- a/mysql-test/r/mysqld--help-win.result.orig 1970-01-01 00:00:00 +0000 > +++ b/mysql-test/r/mysqld--help-win.result.orig 2010-10-28 15:42:17 +0000 > @@ -0,0 +1,951 @@ > +The following options may be given as the first argument: > +--print-defaults Print the program argument list and exit. > +--no-defaults Don't read default options from any option file. > +--defaults-file=# Only read default options from the given file #. > +--defaults-extra-file=# Read this file after the global files are read. > + > + --abort-slave-event-count=# > + Option used by mysql-test for debugging and testing of > + replication. > + --allow-suspicious-udfs > + Allows use of UDFs consisting of only one symbol xxx() > + without corresponding xxx_init() or xxx_deinit(). That > + also means that one can load any function from any > + library, for example exit() from libc.so > + -a, --ansi Use ANSI SQL syntax instead of MySQL syntax. This mode > + will also set transaction isolation level 'serializable'. > + --auto-increment-increment[=#] > + Auto-increment columns are incremented by this > + --auto-increment-offset[=#] > + Offset added to Auto-increment columns. Used when > + auto-increment-increment != 1 > + --automatic-sp-privileges > + Creating and dropping stored procedures alters ACLs > + (Defaults to on; use --skip-automatic-sp-privileges to disable.) > + --back-log=# The number of outstanding connection requests MySQL can > + have. This comes into play when the main MySQL thread > + gets very many connection requests in a very short time > + -b, --basedir=name Path to installation directory. All paths are usually > + resolved relative to this > + --big-tables Allow big result sets by saving all temporary sets on > + file (Solves most 'table full' errors) > + --bind-address=name IP address to bind to. > + --binlog-cache-size=# > + The size of the cache to hold the SQL statements for the > + binary log during a transaction. If you often use big, > + multi-statement transactions you can increase this to get > + more performance > + --binlog-direct-non-transactional-updates > + Causes updates to non-transactional engines using > + statement format to be written directly to binary log. > + Before using this option make sure that there are no > + dependencies between transactional and non-transactional > + tables such as in the statement INSERT INTO t_myisam > + SELECT * FROM t_innodb; otherwise, slaves may diverge > + from the master. > + --binlog-do-db=name Tells the master it should log updates for the specified > + database, and exclude all others not explicitly > + mentioned. > + --binlog-format=name > + What form of binary logging the master will use: either > + ROW for row-based binary logging, STATEMENT for > + statement-based binary logging, or MIXED. MIXED is > + statement-based binary logging except for those > + statements where only row-based is correct: those which > + involve user-defined functions (i.e. UDFs) or the UUID() > + function; for those, row-based binary logging is > + automatically used. If NDBCLUSTER is enabled and > + binlog-format is MIXED, the format switches to row-based > + and back implicitly per each query accessing an > + NDBCLUSTER table > + --binlog-ignore-db=name > + Tells the master that updates to the given database > + should not be logged to the binary log. > + --binlog-row-event-max-size=# > + The maximum size of a row-based binary log event in > + bytes. Rows will be grouped into events smaller than this > + size if possible. The value has to be a multiple of 256. > + --bootstrap Used by mysql installation scripts. > + --bulk-insert-buffer-size=# > + Size of tree cache used in bulk insert optimisation. Note > + that this is a limit per thread! > + --character-set-client-handshake > + Don't ignore client side character set value sent during > + handshake. > + (Defaults to on; use --skip-character-set-client-handshake to disable.) > + --character-set-filesystem=name > + Set the filesystem character set. > + -C, --character-set-server=name > + Set the default character set. > + --character-sets-dir=name > + Directory where character sets are > + -r, --chroot=name Chroot mysqld daemon during startup. > + --collation-server=name > + Set the default collation. > + --completion-type=name > + The transaction completion type, one of NO_CHAIN, CHAIN, > + RELEASE > + --concurrent-insert[=name] > + Use concurrent insert with MyISAM. Possible values are > + NEVER, AUTO, ALWAYS > + --connect-timeout=# The number of seconds the mysqld server is waiting for a > + connect packet before responding with 'Bad handshake' > + --console Write error output on screen; don't remove the console > + window on windows. > + --core-file Write core on errors. > + -h, --datadir=name Path to the database root directory > + --date-format=name The DATE format (ignored) > + --datetime-format=name > + The DATETIME format (ignored) > + --default-storage-engine=name > + The default storage engine for new tables > + --default-time-zone=name > + Set the default time zone. > + --default-week-format=# > + The default week format used by WEEK() functions > + --delay-key-write[=name] > + Type of DELAY_KEY_WRITE > + --delayed-insert-limit=# > + After inserting delayed_insert_limit rows, the INSERT > + DELAYED handler will check if there are any SELECT > + statements pending. If so, it allows these to execute > + before continuing > + --delayed-insert-timeout=# > + How long a INSERT DELAYED thread should wait for INSERT > + statements before terminating > + --delayed-queue-size=# > + What size queue (in rows) should be allocated for > + handling INSERT DELAYED. If the queue becomes full, any > + client that does INSERT DELAYED will wait until there is > + room in the queue again > + --disconnect-slave-event-count=# > + Option used by mysql-test for debugging and testing of > + replication. > + --div-precision-increment=# > + Precision of the result of '/' operator will be increased > + on that value > + --engine-condition-pushdown > + Push supported query conditions to the storage engine. > + Deprecated, use --optimizer-switch instead. > + (Defaults to on; use --skip-engine-condition-pushdown to disable.) > + --event-scheduler[=name] > + Enable the event scheduler. Possible values are ON, OFF, > + and DISABLED (keep the event scheduler completely > + deactivated, it cannot be activated run-time) > + -T, --exit-info[=#] Used for debugging. Use at your own risk. > + --expire-logs-days=# > + If non-zero, binary logs will be purged after > + expire_logs_days days; possible purges happen at startup > + and at binary log rotation > + --external-locking Use system (external) locking (disabled by default). > + With this option enabled you can run myisamchk to test > + (not repair) tables while the MySQL server is running. > + Disable with --skip-external-locking. > + --flush Flush MyISAM tables to disk between SQL commands > + --flush-time=# A dedicated thread is created to flush all tables at the > + given interval > + --ft-boolean-syntax=name > + List of operators for MATCH ... AGAINST ( ... IN BOOLEAN > + MODE) > + --ft-max-word-len=# The maximum length of the word to be included in a > + FULLTEXT index. Note: FULLTEXT indexes must be rebuilt > + after changing this variable > + --ft-min-word-len=# The minimum length of the word to be included in a > + FULLTEXT index. Note: FULLTEXT indexes must be rebuilt > + after changing this variable > + --ft-query-expansion-limit=# > + Number of best matches to use for query expansion > + --ft-stopword-file=name > + Use stopwords from this file instead of built-in list > + --gdb Set up signals usable for debugging. > + --general-log Log connections and queries to a table or log file. > + Defaults logging to a file hostname.log or a table > + mysql.general_logif --log-output=TABLE is used > + --general-log-file=name > + Log connections and queries to given file > + --group-concat-max-len=# > + The maximum length of the result of function > + GROUP_CONCAT() > + -?, --help Display this help and exit. > + --ignore-builtin-innodb > + Disable initialization of builtin InnoDB plugin > + --init-connect=name Command(s) that are executed for each new connection > + --init-file=name Read SQL commands from this file at startup > + --init-rpl-role=name > + Set the replication role. > + --init-slave=name Command(s) that are executed by a slave server each time > + the SQL thread starts > + --interactive-timeout=# > + The number of seconds the server waits for activity on an > + interactive connection before closing it > + --join-buffer-size=# > + The size of the buffer that is used for full joins > + --keep-files-on-create > + Don't overwrite stale .MYD and .MYI even if no directory > + is specified > + --key-buffer-size=# The size of the buffer used for index blocks for MyISAM > + tables. Increase this to get better index handling (for > + all reads and multiple writes) to as much as you can > + afford > + --key-cache-age-threshold=# > + This characterizes the number of hits a hot block has to > + be untouched until it is considered aged enough to be > + downgraded to a warm block. This specifies the percentage > + ratio of that number of hits to the total number of > + blocks in key cache > + --key-cache-block-size=# > + The default size of key cache blocks > + --key-cache-division-limit=# > + The minimum percentage of warm blocks in key cache > + -L, --language=name Client error messages in given language. May be given as > + a full path. Deprecated. Use --lc-messages-dir instead. > + --lc-messages=name Set the language used for the error messages. > + -L, --lc-messages-dir=name > + Directory where error messages are > + --lc-time-names=name > + Set the language used for the month names and the days of > + the week. > + --local-infile Enable LOAD DATA LOCAL INFILE > + (Defaults to on; use --skip-local-infile to disable.) > + --lock-wait-timeout=# > + Timeout in seconds to wait for a lock before returning an > + error. > + -l, --log[=name] Log connections and queries to file (deprecated option, > + use --general-log/--general-log-file instead). > + --log-bin[=name] Log update queries in binary format. Optional (but > + strongly recommended to avoid replication problems if > + server's hostname changes) argument should be the chosen > + location for the binary log files. > + --log-bin-index=name > + File that holds the names for last binary log files. > + --log-bin-trust-function-creators > + If set to FALSE (the default), then when --log-bin is > + used, creation of a stored function (or trigger) is > + allowed only to users having the SUPER privilege and only > + if this stored function (trigger) may not break binary > + logging. Note that if ALL connections to this server > + ALWAYS use row-based binary logging, the security issues > + do not exist and the binary logging cannot break, so you > + can safely set this to TRUE > + --log-error[=name] Error log file > + --log-isam[=name] Log all MyISAM changes to file. > + --log-output=name Syntax: log-output=value[,value...], where "value" could > + be TABLE, FILE or NONE > + --log-queries-not-using-indexes > + Log queries that are executed without benefit of any > + index to the slow log if it is open > + --log-short-format Don't log extra information to update and slow-query > + logs. > + --log-slave-updates Tells the slave to log the updates from the slave thread > + to the binary log. You will need to turn it on if you > + plan to daisy-chain the slaves > + --log-slow-admin-statements > + Log slow OPTIMIZE, ANALYZE, ALTER and other > + administrative statements to the slow log if it is open. > + --log-slow-queries[=name] > + Log slow queries to a table or log file. Defaults logging > + to table mysql.slow_log or hostname-slow.log if > + --log-output=file is used. Must be enabled to activate > + other slow log options. Deprecated option, use > + --slow-query-log/--slow-query-log-file instead. > + --log-slow-slave-statements > + Log slow statements executed by slave thread to the slow > + log if it is open. > + --log-tc=name Path to transaction coordinator log (used for > + transactions that affect more than one storage engine, > + when binary log is disabled). > + --log-tc-size=# Size of transaction coordinator log. > + -W, --log-warnings[=#] > + Log some not critical warnings to the log file > + --long-query-time=# Log all queries that have taken more than long_query_time > + seconds to execute to file. The argument will be treated > + as a decimal value with microsecond precision > + --low-priority-updates > + INSERT/DELETE/UPDATE has lower priority than selects > + --lower-case-table-names[=#] > + If set to 1 table names are stored in lowercase on disk > + and table names will be case-insensitive. Should be set > + to 2 if you are using a case insensitive file system > + --master-info-file=name > + The location and name of the file that remembers the > + master and where the I/O replication thread is in the > + master's binlogs. > + --master-retry-count=# > + The number of tries the slave will make to connect to the > + master before giving up. > + --max-allowed-packet=# > + Max packet length to send to or receive from the server > + --max-binlog-cache-size=# > + Can be used to restrict the total size used to cache a > + multi-transaction query > + --max-binlog-dump-events=# > + Option used by mysql-test for debugging and testing of > + replication. > + --max-binlog-size=# Binary log will be rotated automatically when the size > + exceeds this value. Will also apply to relay logs if > + max_relay_log_size is 0 > + --max-connect-errors=# > + If there is more than this number of interrupted > + connections from a host this host will be blocked from > + further connections > + --max-connections=# The number of simultaneous clients allowed > + --max-delayed-threads=# > + Don't start more than this number of threads to handle > + INSERT DELAYED statements. If set to zero INSERT DELAYED > + will be not used > + --max-error-count=# Max number of errors/warnings to store for a statement > + --max-heap-table-size=# > + Don't allow creation of heap tables bigger than this > + --max-join-size=# Joins that are probably going to read more than > + max_join_size records return an error > + --max-length-for-sort-data=# > + Max number of bytes in sorted records > + --max-prepared-stmt-count=# > + Maximum number of prepared statements in the server > + --max-relay-log-size=# > + If non-zero: relay log will be rotated automatically when > + the size exceeds this value; if zero: when the size > + exceeds max_binlog_size > + --max-seeks-for-key=# > + Limit assumed max number of seeks when looking up rows > + based on a key > + --max-sort-length=# The number of bytes to use when sorting BLOB or TEXT > + values (only the first max_sort_length bytes of each > + value are used; the rest are ignored) > + --max-sp-recursion-depth[=#] > + Maximum stored procedure recursion depth > + --max-tmp-tables=# Maximum number of temporary tables a client can keep open > + at a time > + --max-user-connections=# > + The maximum number of active connections for a single > + user (0 = no limit) > + --max-write-lock-count=# > + After this many write locks, allow some read locks to run > + in between > + --memlock Lock mysqld in memory. > + --min-examined-row-limit=# > + Don't write queries to slow log that examine fewer rows > + than that > + --multi-range-count=# > + Number of key ranges to request at once > + --myisam-block-size=# > + Block size to be used for MyISAM index pages > + --myisam-data-pointer-size=# > + Default pointer size to be used for MyISAM tables > + --myisam-max-sort-file-size=# > + Don't use the fast sort index method to created index if > + the temporary file would get bigger than this > + --myisam-mmap-size=# > + Restricts the total memory used for memory mapping of > + MySQL tables > + --myisam-recover-options[=name] > + Syntax: myisam-recover-options[=option[,option...]], > + where option can be DEFAULT, BACKUP, FORCE, QUICK, or OFF > + --myisam-repair-threads=# > + If larger than 1, when repairing a MyISAM table all > + indexes will be created in parallel, with one thread per > + index. The value of 1 disables parallel repair > + --myisam-sort-buffer-size=# > + The buffer that is allocated when sorting the index when > + doing a REPAIR or when creating indexes with CREATE INDEX > + or ALTER TABLE > + --myisam-stats-method=name > + Specifies how MyISAM index statistics collection code > + should treat NULLs. Possible values of name are > + NULLS_UNEQUAL (default behavior for 4.1 and later), > + NULLS_EQUAL (emulate 4.0 behavior), and NULLS_IGNORED > + --myisam-use-mmap Use memory mapping for reading and writing MyISAM tables > + --named-pipe Enable the named pipe (NT) > + --net-buffer-length=# > + Buffer length for TCP/IP and socket communication > + --net-read-timeout=# > + Number of seconds to wait for more data from a connection > + before aborting the read > + --net-retry-count=# If a read on a communication port is interrupted, retry > + this many times before giving up > + --net-write-timeout=# > + Number of seconds to wait for a block to be written to a > + connection before aborting the write > + -n, --new Use very new possible "unsafe" functions > + --old Use compatible behavior > + --old-alter-table Use old, non-optimized alter table > + --old-passwords Use old password encryption method (needed for 4.0 and > + older clients) > + --old-style-user-limits > + Enable old-style user limits (before 5.0.3, user > + resources were counted per each user+host vs. per > + account). > + --one-thread (Deprecated): Only use one thread (for debugging under > + Linux). Use thread-handling=no-threads instead. > + --open-files-limit=# > + If this is not 0, then mysqld will use this value to > + reserve file descriptors to use with setrlimit(). If this > + value is 0 then mysqld will reserve max_connections*5 or > + max_connections + table_cache*2 (whichever is larger) > + number of file descriptors > + --optimizer-prune-level=# > + Controls the heuristic(s) applied during query > + optimization to prune less-promising partial plans from > + the optimizer search space. Meaning: 0 - do not apply any > + heuristic, thus perform exhaustive search; 1 - prune > + plans based on number of retrieved rows > + --optimizer-search-depth=# > + Maximum depth of search performed by the query optimizer. > + Values larger than the number of relations in a query > + result in better query plans, but take longer to compile > + a query. Values smaller than the number of tables in a > + relation result in faster optimization, but may produce > + very bad query plans. If set to 0, the system will > + automatically pick a reasonable value; if set to 63, the > + optimizer will switch to the original find_best search. > + NOTE: The value 63 and its associated behaviour is > + deprecated > + --optimizer-switch=name > + optimizer_switch=option=val[,option=val...], where option > + is one of {index_merge, index_merge_union, > + index_merge_sort_union, index_merge_intersection, > + engine_condition_pushdown} and val is one of {on, off, > + default} > + --performance-schema > + Enable the performance schema. > + --performance-schema-events-waits-history-long-size=# > + Number of rows in EVENTS_WAITS_HISTORY_LONG. > + --performance-schema-events-waits-history-size=# > + Number of rows per thread in EVENTS_WAITS_HISTORY. > + --performance-schema-max-cond-classes=# > + Maximum number of condition instruments. > + --performance-schema-max-cond-instances=# > + Maximum number of instrumented condition objects. > + --performance-schema-max-file-classes=# > + Maximum number of file instruments. > + --performance-schema-max-file-handles=# > + Maximum number of opened instrumented files. > + --performance-schema-max-file-instances=# > + Maximum number of instrumented files. > + --performance-schema-max-mutex-classes=# > + Maximum number of mutex instruments. > + --performance-schema-max-mutex-instances=# > + Maximum number of instrumented MUTEX objects. > + --performance-schema-max-rwlock-classes=# > + Maximum number of rwlock instruments. > + --performance-schema-max-rwlock-instances=# > + Maximum number of instrumented RWLOCK objects. > + --performance-schema-max-table-handles=# > + Maximum number of opened instrumented tables. > + --performance-schema-max-table-instances=# > + Maximum number of instrumented tables. > + --performance-schema-max-thread-classes=# > + Maximum number of thread instruments. > + --performance-schema-max-thread-instances=# > + Maximum number of instrumented threads. > + --pid-file=name Pid file used by safe_mysqld > + --plugin-dir=name Directory for plugins > + --plugin-load=name Optional semicolon-separated list of plugins to load, > + where each plugin is identified as name=library, where > + name is the plugin name and library is the plugin library > + in plugin_dir. > + -P, --port=# Port number to use for connection or 0 to default to, > + my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default > + (3306), whatever comes first > + --port-open-timeout=# > + Maximum time in seconds to wait for the port to become > + free. (Default: No wait). > + --preload-buffer-size=# > + The size of the buffer that is allocated when preloading > + indexes > + --profiling-history-size=# > + Limit of query profiling memory > + --query-alloc-block-size=# > + Allocation block size for query parsing and execution > + --query-cache-limit=# > + Don't cache results that are bigger than this > + --query-cache-min-res-unit=# > + The minimum size for blocks allocated by the query cache > + --query-cache-size=# > + The memory allocated to store results from old queries > + --query-cache-type=name > + OFF = Don't cache or retrieve results. ON = Cache all > + results except SELECT SQL_NO_CACHE ... queries. DEMAND = > + Cache only SELECT SQL_CACHE ... queries > + --query-cache-wlock-invalidate > + Invalidate queries in query cache on LOCK for write > + --query-prealloc-size=# > + Persistent buffer for query parsing and execution > + --range-alloc-block-size=# > + Allocation block size for storing ranges during > + optimization > + --read-buffer-size=# > + Each thread that does a sequential scan allocates a > + buffer of this size for each table it scans. If you do > + many sequential scans, you may want to increase this > + value > + --read-only Make all non-temporary tables read-only, with the > + exception for replication (slave) threads and users with > + the SUPER privilege > + --read-rnd-buffer-size=# > + When reading rows in sorted order after a sort, the rows > + are read through this buffer to avoid a disk seeks > + --relay-log=name The location and name to use for relay logs > + --relay-log-index=name > + The location and name to use for the file that keeps a > + list of the last relay logs > + --relay-log-info-file=name > + The location and name of the file that remembers where > + the SQL replication thread is in the relay logs > + --relay-log-purge if disabled - do not purge relay logs. if enabled - purge > + them as soon as they are no more needed > + (Defaults to on; use --skip-relay-log-purge to disable.) > + --relay-log-recovery > + Enables automatic relay log recovery right after the > + database startup, which means that the IO Thread starts > + re-fetching from the master right after the last > + transaction processed > + --relay-log-space-limit=# > + Maximum space to use for all relay logs > + --replicate-do-db=name > + Tells the slave thread to restrict replication to the > + specified database. To specify more than one database, > + use the directive multiple times, once for each database. > + Note that this will only work if you do not use > + cross-database queries such as UPDATE some_db.some_table > + SET foo='bar' while having selected a different or no > + database. If you need cross database updates to work, > + make sure you have 3.23.28 or later, and use > + replicate-wild-do-table=db_name.%. > + --replicate-do-table=name > + Tells the slave thread to restrict replication to the > + specified table. To specify more than one table, use the > + directive multiple times, once for each table. This will > + work for cross-database updates, in contrast to > + replicate-do-db. > + --replicate-ignore-db=name > + Tells the slave thread to not replicate to the specified > + database. To specify more than one database to ignore, > + use the directive multiple times, once for each database. > + This option will not work if you use cross database > + updates. If you need cross database updates to work, make > + sure you have 3.23.28 or later, and use > + replicate-wild-ignore-table=db_name.%. > + --replicate-ignore-table=name > + Tells the slave thread to not replicate to the specified > + table. To specify more than one table to ignore, use the > + directive multiple times, once for each table. This will > + work for cross-database updates, in contrast to > + replicate-ignore-db. > + --replicate-rewrite-db=name > + Updates to a database with a different name than the > + original. Example: > + replicate-rewrite-db=master_db_name->slave_db_name. > + --replicate-same-server-id > + In replication, if set to 1, do not skip events having > + our server id. Default value is 0 (to break infinite > + loops in circular replication). Can't be set to 1 if > + --log-slave-updates is used. > + --replicate-wild-do-table=name > + Tells the slave thread to restrict replication to the > + tables that match the specified wildcard pattern. To > + specify more than one table, use the directive multiple > + times, once for each table. This will work for > + cross-database updates. Example: > + replicate-wild-do-table=foo%.bar% will replicate only > + updates to tables in all databases that start with foo > + and whose table names start with bar. > + --replicate-wild-ignore-table=name > + Tells the slave thread to not replicate to the tables > + that match the given wildcard pattern. To specify more > + than one table to ignore, use the directive multiple > + times, once for each table. This will work for > + cross-database updates. Example: > + replicate-wild-ignore-table=foo%.bar% will not do updates > + to tables in databases that start with foo and whose > + table names start with bar. > + --report-host=name Hostname or IP of the slave to be reported to the master > + during slave registration. Will appear in the output of > + SHOW SLAVE HOSTS. Leave unset if you do not want the > + slave to register itself with the master. Note that it is > + not sufficient for the master to simply read the IP of > + the slave off the socket once the slave connects. Due to > + NAT and other routing issues, that IP may not be valid > + for connecting to the slave from the master or other > + hosts > + --report-password=name > + The account password of the slave to be reported to the > + master during slave registration > + --report-port=# Port for connecting to slave reported to the master > + during slave registration. Set it only if the slave is > + listening on a non-default port or if you have a special > + tunnel from the master or other clients to the slave. If > + not sure, leave this option unset > + --report-user=name The account user name of the slave to be reported to the > + master during slave registration > + --rpl-recovery-rank=# > + Unused, will be removed > + --safe-mode Skip some optimize stages (for testing). > + --safe-user-create Don't allow new user creation by the user who has no > + write privileges to the mysql.user table. > + --secure-auth Disallow authentication for accounts that have old > + (pre-4.1) passwords > + --secure-file-priv=name > + Limit LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE() to > + files within specified directory > + --server-id=# Uniquely identifies the server instance in the community > + of replication partners > + --shared-memory Enable the shared memory > + --shared-memory-base-name=name > + Base name of shared memory > + --show-slave-auth-info > + Show user and password in SHOW SLAVE HOSTS on this > + master. > + --skip-grant-tables Start without grant tables. This gives all users FULL > + ACCESS to all tables. > + --skip-host-cache Don't cache host names. > + --skip-name-resolve Don't resolve hostnames. All hostnames are IP's or > + 'localhost'. > + --skip-networking Don't allow connection with TCP/IP > + --skip-new Don't use new, possibly wrong routines. > + --skip-show-database > + Don't allow 'SHOW DATABASE' commands > + --skip-slave-start If set, slave is not autostarted. > + --skip-stack-trace Don't print a stack trace on failure. > + --skip-thread-priority > + Don't give threads different priorities. This option is > + deprecated because it has no effect; the implied behavior > + is already the default. > + --slave-compressed-protocol > + Use compression on master/slave protocol > + --slave-exec-mode=name > + Modes for how replication events should be executed. > + Legal values are STRICT (default) and IDEMPOTENT. In > + IDEMPOTENT mode, replication will not stop for operations > + that are idempotent. In STRICT mode, replication will > + stop on any unexpected difference between the master and > + the slave > + --slave-load-tmpdir=name > + The location where the slave should put its temporary > + files when replicating a LOAD DATA INFILE command > + --slave-net-timeout=# > + Number of seconds to wait for more data from a > + master/slave connection before aborting the read > + --slave-skip-errors=name > + Tells the slave thread to continue replication when a > + query event returns an error from the provided list > + --slave-transaction-retries=# > + Number of times the slave SQL thread will retry a > + transaction in case it failed with a deadlock or elapsed > + lock wait timeout, before giving up and stopping > + --slave-type-conversions=name > + Set of slave type conversions that are enabled. Legal > + values are: ALL_LOSSY to enable lossy conversions and > + ALL_NON_LOSSY to enable non-lossy conversions. If the > + variable is assigned the empty set, no conversions are > + allowed and it is expected that the types match exactly. > + --slow-launch-time=# > + If creating the thread takes longer than this value (in > + seconds), the Slow_launch_threads counter will be > + incremented > + --slow-query-log Log slow queries to a table or log file. Defaults logging > + to a file hostname-slow.log or a table mysql.slow_log if > + --log-output=TABLE is used. Must be enabled to activate > + other slow log options > + --slow-query-log-file=name > + Log slow queries to given log file. Defaults logging to > + hostname-slow.log. Must be enabled to activate other slow > + log options > + --socket=name Socket file to use for connection > + --sort-buffer-size=# > + Each thread that needs to do a sort allocates a buffer of > + this size > + --sporadic-binlog-dump-fail > + Option used by mysql-test for debugging and testing of > + replication. > + --sql-mode=name Syntax: sql-mode=mode[,mode[,mode...]]. See the manual > + for the complete list of valid sql modes > + --standalone Dummy option to start as a standalone program (NT). > + -s, --symbolic-links > + Enable symbolic link support. > + --sync-binlog=# Synchronously flush binary log to disk after every #th > + event. Use 0 (default) to disable synchronous flushing > + --sync-frm Sync .frm files to disk on creation > + (Defaults to on; use --skip-sync-frm to disable.) > + --sync-master-info=# > + Synchronously flush master info to disk after every #th > + event. Use 0 (default) to disable synchronous flushing > + --sync-relay-log=# Synchronously flush relay log to disk after every #th > + event. Use 0 (default) to disable synchronous flushing > + --sync-relay-log-info=# > + Synchronously flush relay log info to disk after every > + #th transaction. Use 0 (default) to disable synchronous > + flushing > + --sysdate-is-now Non-default option to alias SYSDATE() to NOW() to make it > + safe-replicable. Since 5.0, SYSDATE() returns a `dynamic' > + value different for different invocations, even within > + the same statement. > + --table-cache=# Deprecated; use --table-open-cache instead. > + --table-definition-cache=# > + The number of cached table definitions > + --table-open-cache=# > + The number of cached open tables > + --tc-heuristic-recover=name > + Decision to use in heuristic recover process. Possible > + values are COMMIT or ROLLBACK. > + --thread-cache-size=# > + How many threads we should keep in a cache for reuse > + --thread-handling=name > + Define threads usage for handling queries, one of > + one-thread-per-connection, no-threads, loaded-dynamically > + --thread-stack=# The stack size for each thread > + --time-format=name The TIME format (ignored) > + --timed-mutexes Specify whether to time mutexes (only InnoDB mutexes are > + currently supported) > + --tmp-table-size=# If an internal in-memory temporary table exceeds this > + size, MySQL will automatically convert it to an on-disk > + MyISAM table > + -t, --tmpdir=name Path for temporary files. Several paths may be specified, > + separated by a semicolon (;), in this case they are used > + in a round-robin fashion > + --transaction-alloc-block-size=# > + Allocation block size for transactions to be stored in > + binary log > + --transaction-isolation=name > + Default transaction isolation level. > + --transaction-prealloc-size=# > + Persistent buffer for transactions to be stored in binary > + log > + --updatable-views-with-limit=name > + YES = Don't issue an error message (warning only) if a > + VIEW without presence of a key of the underlying table is > + used in queries with a LIMIT clause for updating. NO = > + Prohibit update of a VIEW, which does not contain a key > + of the underlying table and the query uses a LIMIT clause > + (usually get from GUI tools) > + -u, --user=name Run mysqld daemon as user. > + -v, --verbose Used with --help option for detailed help. > + -V, --version Output version information and exit. > + --wait-timeout=# The number of seconds the server waits for activity on a > + connection before closing it > + > +Variables (--variable-name=value) > +abort-slave-event-count 0 > +allow-suspicious-udfs FALSE > +auto-increment-increment 1 > +auto-increment-offset 1 > +automatic-sp-privileges TRUE > +back-log 50 > +big-tables FALSE > +bind-address (No default value) > +binlog-cache-size 32768 > +binlog-direct-non-transactional-updates FALSE > +binlog-format STATEMENT > +binlog-row-event-max-size 1024 > +bulk-insert-buffer-size 8388608 > +character-set-client-handshake TRUE > +character-set-filesystem binary > +character-set-server latin1 > +character-sets-dir MYSQL_CHARSETSDIR/ > +chroot (No default value) > +collation-server latin1_swedish_ci > +completion-type NO_CHAIN > +concurrent-insert AUTO > +connect-timeout 10 > +console FALSE > +date-format %Y-%m-%d > +datetime-format %Y-%m-%d %H:%i:%s > +default-storage-engine InnoDB > +default-time-zone (No default value) > +default-week-format 0 > +delay-key-write ON > +delayed-insert-limit 100 > +delayed-insert-timeout 300 > +delayed-queue-size 1000 > +disconnect-slave-event-count 0 > +div-precision-increment 4 > +engine-condition-pushdown TRUE > +event-scheduler OFF > +expire-logs-days 0 > +external-locking FALSE > +flush FALSE > +flush-time 1800 > +ft-boolean-syntax + -><()~*:""&| > +ft-max-word-len 84 > +ft-min-word-len 4 > +ft-query-expansion-limit 20 > +ft-stopword-file (No default value) > +gdb FALSE > +general-log FALSE > +group-concat-max-len 1024 > +help TRUE > +ignore-builtin-innodb FALSE > +init-connect > +init-file (No default value) > +init-rpl-role MASTER > +init-slave > +interactive-timeout 28800 > +join-buffer-size 131072 > +keep-files-on-create FALSE > +key-buffer-size 8388608 > +key-cache-age-threshold 300 > +key-cache-block-size 1024 > +key-cache-division-limit 100 > +language MYSQL_SHAREDIR/ > +lc-messages en_US > +lc-messages-dir MYSQL_SHAREDIR/ > +lc-time-names en_US > +local-infile TRUE > +lock-wait-timeout 31536000 > +log-bin (No default value) > +log-bin-index (No default value) > +log-bin-trust-function-creators FALSE > +log-error > +log-isam myisam.log > +log-output FILE > +log-queries-not-using-indexes FALSE > +log-short-format FALSE > +log-slave-updates FALSE > +log-slow-admin-statements FALSE > +log-slow-slave-statements FALSE > +log-tc tc.log > +log-tc-size 24576 > +log-warnings 1 > +long-query-time 10 > +low-priority-updates FALSE > +lower-case-table-names 1 > +master-info-file master.info > +master-retry-count 86400 > +max-allowed-packet 1048576 > +max-binlog-cache-size 18446744073709547520 > +max-binlog-dump-events 0 > +max-binlog-size 1073741824 > +max-connect-errors 10 > +max-connections 151 > +max-delayed-threads 20 > +max-error-count 64 > +max-heap-table-size 16777216 > +max-join-size 18446744073709551615 > +max-length-for-sort-data 1024 > +max-prepared-stmt-count 16382 > +max-relay-log-size 0 > +max-seeks-for-key 18446744073709551615 > +max-sort-length 1024 > +max-sp-recursion-depth 0 > +max-tmp-tables 32 > +max-user-connections 0 > +max-write-lock-count 18446744073709551615 > +memlock FALSE > +min-examined-row-limit 0 > +multi-range-count 256 > +myisam-block-size 1024 > +myisam-data-pointer-size 6 > +myisam-max-sort-file-size 9223372036853727232 > +myisam-mmap-size 18446744073709551615 > +myisam-recover-options OFF > +myisam-repair-threads 1 > +myisam-sort-buffer-size 8388608 > +myisam-stats-method nulls_unequal > +myisam-use-mmap FALSE > +named-pipe FALSE > +net-buffer-length 16384 > +net-read-timeout 30 > +net-retry-count 10 > +net-write-timeout 60 > +new FALSE > +old FALSE > +old-alter-table FALSE > +old-passwords FALSE > +old-style-user-limits FALSE > +optimizer-prune-level 1 > +optimizer-search-depth 62 > +optimizer-switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on > +performance-schema FALSE > +performance-schema-events-waits-history-long-size 10000 > +performance-schema-events-waits-history-size 10 > +performance-schema-max-cond-classes 80 > +performance-schema-max-cond-instances 1000 > +performance-schema-max-file-classes 50 > +performance-schema-max-file-handles 32768 > +performance-schema-max-file-instances 10000 > +performance-schema-max-mutex-classes 200 > +performance-schema-max-mutex-instances 1000000 > +performance-schema-max-rwlock-classes 30 > +performance-schema-max-rwlock-instances 1000000 > +performance-schema-max-table-handles 100000 > +performance-schema-max-table-instances 50000 > +performance-schema-max-thread-classes 50 > +performance-schema-max-thread-instances 1000 > +plugin-load (No default value) > +port 3306 > +port-open-timeout 0 > +preload-buffer-size 32768 > +profiling-history-size 15 > +query-alloc-block-size 8192 > +query-cache-limit 1048576 > +query-cache-min-res-unit 4096 > +query-cache-size 0 > +query-cache-type ON > +query-cache-wlock-invalidate FALSE > +query-prealloc-size 8192 > +range-alloc-block-size 4096 > +read-buffer-size 131072 > +read-only FALSE > +read-rnd-buffer-size 262144 > +relay-log (No default value) > +relay-log-index (No default value) > +relay-log-info-file relay-log.info > +relay-log-purge TRUE > +relay-log-recovery FALSE > +relay-log-space-limit 0 > +replicate-same-server-id FALSE > +report-host (No default value) > +report-password (No default value) > +report-port 3306 > +report-user (No default value) > +rpl-recovery-rank 0 > +safe-user-create FALSE > +secure-auth FALSE > +secure-file-priv (No default value) > +server-id 0 > +shared-memory FALSE > +shared-memory-base-name MYSQL > +show-slave-auth-info FALSE > +skip-grant-tables TRUE > +skip-name-resolve FALSE > +skip-networking FALSE > +skip-show-database FALSE > +skip-slave-start FALSE > +slave-compressed-protocol FALSE > +slave-exec-mode STRICT > +slave-net-timeout 3600 > +slave-skip-errors (No default value) > +slave-transaction-retries 10 > +slave-type-conversions > +slow-launch-time 2 > +slow-query-log FALSE > +socket MySQL > +sort-buffer-size 2097152 > +sporadic-binlog-dump-fail FALSE > +sql-mode > +symbolic-links FALSE > +sync-binlog 0 > +sync-frm TRUE > +sync-master-info 0 > +sync-relay-log 0 > +sync-relay-log-info 0 > +sysdate-is-now FALSE > +table-cache 400 > +table-definition-cache 400 > +table-open-cache 400 > +tc-heuristic-recover COMMIT > +thread-cache-size 0 > +thread-handling one-thread-per-connection > +thread-stack 262144 > +time-format %H:%i:%s > +timed-mutexes FALSE > +tmp-table-size 16777216 > +transaction-alloc-block-size 8192 > +transaction-isolation REPEATABLE-READ > +transaction-prealloc-size 4096 > +updatable-views-with-limit YES > +verbose TRUE > +wait-timeout 28800 > + > +To see what values a running MySQL server is using, type > +'mysqladmin variables' instead of 'mysqld --verbose --help'. > > === modified file 'mysql-test/r/variables-notembedded.result' > --- a/mysql-test/r/variables-notembedded.result 2009-04-06 11:42:33 +0000 > +++ b/mysql-test/r/variables-notembedded.result 2010-10-28 15:42:17 +0000 > @@ -44,6 +44,32 @@ ERROR HY000: Variable 'relay_log' is a r > SET @@global.relay_log= 'x'; > ERROR HY000: Variable 'relay_log' is a read only variable > # > +SHOW VARIABLES like 'relay_log_basename'; > +Variable_name Value > +relay_log_basename > +SELECT @@session.relay_log_basename; > +ERROR HY000: Variable 'relay_log_basename' is a GLOBAL variable > +SELECT @@global.relay_log_basename; > +@@global.relay_log_basename > +NULL > +SET @@session.relay_log_basename= 'x'; > +ERROR HY000: Variable 'relay_log_basename' is a read only variable > +SET @@global.relay_log_basename= 'x'; > +ERROR HY000: Variable 'relay_log_basename' is a read only variable > +# > +SHOW VARIABLES like 'log_bin_basename'; > +Variable_name Value > +log_bin_basename > +SELECT @@session.log_bin_basename; > +ERROR HY000: Variable 'log_bin_basename' is a GLOBAL variable > +SELECT @@global.log_bin_basename; > +@@global.log_bin_basename > +NULL > +SET @@session.log_bin_basename= 'x'; > +ERROR HY000: Variable 'log_bin_basename' is a read only variable > +SET @@global.log_bin_basename= 'x'; > +ERROR HY000: Variable 'log_bin_basename' is a read only variable > +# > SHOW VARIABLES like 'relay_log_index'; > Variable_name Value > relay_log_index > @@ -57,6 +83,19 @@ ERROR HY000: Variable 'relay_log_index' > SET @@global.relay_log_index= 'x'; > ERROR HY000: Variable 'relay_log_index' is a read only variable > # > +SHOW VARIABLES like 'log_bin_index'; > +Variable_name Value > +log_bin_index > +SELECT @@session.log_bin_index; > +ERROR HY000: Variable 'log_bin_index' is a GLOBAL variable > +SELECT @@global.log_bin_index; > +@@global.log_bin_index > +NULL > +SET @@session.log_bin_index= 'x'; > +ERROR HY000: Variable 'log_bin_index' is a read only variable > +SET @@global.log_bin_index= 'x'; > +ERROR HY000: Variable 'log_bin_index' is a read only variable > +# > SHOW VARIABLES like 'relay_log_info_file'; > Variable_name Value > relay_log_info_file relay-log.info > > === added file 'mysql-test/suite/binlog/r/binlog_variables_log_bin.result' > --- a/mysql-test/suite/binlog/r/binlog_variables_log_bin.result 1970-01-01 00:00:00 +0000 > +++ b/mysql-test/suite/binlog/r/binlog_variables_log_bin.result 2010-10-28 15:42:17 +0000 > @@ -0,0 +1,9 @@ > +SHOW VARIABLES LIKE 'log_bin%'; > +Variable_name log_bin > +Value ON > +Variable_name log_bin_basename > +Value MYSQLTEST_VARDIR/mysqld.1/data/other > +Variable_name log_bin_index > +Value MYSQLTEST_VARDIR/mysqld.1/data/other.index > +Variable_name log_bin_trust_function_creators > +Value ON > > === added file 'mysql-test/suite/binlog/r/binlog_variables_log_bin_index.result' > --- a/mysql-test/suite/binlog/r/binlog_variables_log_bin_index.result 1970-01-01 00:00:00 +0000 > +++ b/mysql-test/suite/binlog/r/binlog_variables_log_bin_index.result 2010-10-28 15:42:17 +0000 > @@ -0,0 +1,9 @@ > +SHOW VARIABLES LIKE 'log_bin%'; > +Variable_name log_bin > +Value ON > +Variable_name log_bin_basename > +Value MYSQLTEST_VARDIR/mysqld.1/data/other > +Variable_name log_bin_index > +Value MYSQLTEST_VARDIR/tmp/something.index > +Variable_name log_bin_trust_function_creators > +Value ON > > === added file 'mysql-test/suite/binlog/r/binlog_variables_relay_log.result' > --- a/mysql-test/suite/binlog/r/binlog_variables_relay_log.result 1970-01-01 00:00:00 +0000 > +++ b/mysql-test/suite/binlog/r/binlog_variables_relay_log.result 2010-10-28 15:42:17 +0000 > @@ -0,0 +1,15 @@ > +SHOW VARIABLES LIKE 'relay_log%'; > +Variable_name relay_log > +Value other-relay > +Variable_name relay_log_basename > +Value MYSQLTEST_VARDIR/mysqld.1/data/other-relay > +Variable_name relay_log_index > +Value MYSQLTEST_VARDIR/mysqld.1/data/other-relay.index > +Variable_name relay_log_info_file > +Value relay-log.info > +Variable_name relay_log_purge > +Value ON > +Variable_name relay_log_recovery > +Value OFF > +Variable_name relay_log_space_limit > +Value 0 > > === added file 'mysql-test/suite/binlog/r/binlog_variables_relay_log_index.result' > --- a/mysql-test/suite/binlog/r/binlog_variables_relay_log_index.result 1970-01-01 00:00:00 +0000 > +++ b/mysql-test/suite/binlog/r/binlog_variables_relay_log_index.result 2010-10-28 15:42:17 +0000 > @@ -0,0 +1,15 @@ > +SHOW VARIABLES LIKE 'relay_log%'; > +Variable_name relay_log > +Value other-relay > +Variable_name relay_log_basename > +Value MYSQLTEST_VARDIR/mysqld.1/data/other-relay > +Variable_name relay_log_index > +Value MYSQLTEST_VARDIR/tmp/something-relay.index > +Variable_name relay_log_info_file > +Value relay-log.info > +Variable_name relay_log_purge > +Value ON > +Variable_name relay_log_recovery > +Value OFF > +Variable_name relay_log_space_limit > +Value 0 > > === added file 'mysql-test/suite/binlog/t/binlog_variables_log_bin-master.opt' > --- a/mysql-test/suite/binlog/t/binlog_variables_log_bin-master.opt 1970-01-01 00:00:00 +0000 > +++ b/mysql-test/suite/binlog/t/binlog_variables_log_bin-master.opt 2010-10-28 15:42:17 +0000 > @@ -0,0 +1 @@ > +--log-bin=other > \ No newline at end of file > > === added file 'mysql-test/suite/binlog/t/binlog_variables_log_bin.test' > --- a/mysql-test/suite/binlog/t/binlog_variables_log_bin.test 1970-01-01 00:00:00 +0000 > +++ b/mysql-test/suite/binlog/t/binlog_variables_log_bin.test 2010-10-28 15:42:17 +0000 > @@ -0,0 +1,4 @@ > +--source include/not_embedded.inc > + > +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR > +--query_vertical SHOW VARIABLES LIKE 'log_bin%' > > === added file 'mysql-test/suite/binlog/t/binlog_variables_log_bin_index-master.opt' > --- a/mysql-test/suite/binlog/t/binlog_variables_log_bin_index-master.opt 1970-01-01 00:00:00 +0000 > +++ b/mysql-test/suite/binlog/t/binlog_variables_log_bin_index-master.opt 2010-10-28 15:42:17 +0000 > @@ -0,0 +1,2 @@ > +--log-bin=other > +--log-bin-index=$MYSQLTEST_VARDIR/tmp/something.index > > === added file 'mysql-test/suite/binlog/t/binlog_variables_log_bin_index.test' > --- a/mysql-test/suite/binlog/t/binlog_variables_log_bin_index.test 1970-01-01 00:00:00 +0000 > +++ b/mysql-test/suite/binlog/t/binlog_variables_log_bin_index.test 2010-10-28 15:42:17 +0000 > @@ -0,0 +1,4 @@ > +--source include/not_embedded.inc > + > +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR > +--query_vertical SHOW VARIABLES LIKE 'log_bin%' > > === added file 'mysql-test/suite/binlog/t/binlog_variables_relay_log-master.opt' > --- a/mysql-test/suite/binlog/t/binlog_variables_relay_log-master.opt 1970-01-01 00:00:00 +0000 > +++ b/mysql-test/suite/binlog/t/binlog_variables_relay_log-master.opt 2010-10-28 15:42:17 +0000 > @@ -0,0 +1 @@ > +--relay-log=other-relay > \ No newline at end of file > > === added file 'mysql-test/suite/binlog/t/binlog_variables_relay_log.test' > --- a/mysql-test/suite/binlog/t/binlog_variables_relay_log.test 1970-01-01 00:00:00 +0000 > +++ b/mysql-test/suite/binlog/t/binlog_variables_relay_log.test 2010-10-28 15:42:17 +0000 > @@ -0,0 +1,4 @@ > +--source include/not_embedded.inc > + > +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR > +--query_vertical SHOW VARIABLES LIKE 'relay_log%' > > === added file 'mysql-test/suite/binlog/t/binlog_variables_relay_log_index-master.opt' > --- a/mysql-test/suite/binlog/t/binlog_variables_relay_log_index-master.opt 1970-01-01 00:00:00 +0000 > +++ b/mysql-test/suite/binlog/t/binlog_variables_relay_log_index-master.opt 2010-10-28 15:42:17 +0000 > @@ -0,0 +1,2 @@ > +--relay-log=other-relay > +--relay-log-index=$MYSQLTEST_VARDIR/tmp/something-relay.index > \ No newline at end of file > > === added file 'mysql-test/suite/binlog/t/binlog_variables_relay_log_index.test' > --- a/mysql-test/suite/binlog/t/binlog_variables_relay_log_index.test 1970-01-01 00:00:00 +0000 > +++ b/mysql-test/suite/binlog/t/binlog_variables_relay_log_index.test 2010-10-28 15:42:17 +0000 > @@ -0,0 +1,4 @@ > +--source include/not_embedded.inc > + > +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR > +--query_vertical SHOW VARIABLES LIKE 'relay_log%' > > === modified file 'mysql-test/suite/rpl/r/rpl_flushlog_loop.result' > --- a/mysql-test/suite/rpl/r/rpl_flushlog_loop.result 2010-05-26 14:34:25 +0000 > +++ b/mysql-test/suite/rpl/r/rpl_flushlog_loop.result 2010-10-28 15:42:17 +0000 > @@ -7,7 +7,8 @@ start slave; > show variables like 'relay_log%'; > Variable_name Value > relay_log MYSQLD_DATADIR/relay-log > -relay_log_index > +relay_log_basename MYSQLD_DATADIR/relay-log > +relay_log_index MYSQLD_DATADIR/relay-log.index > relay_log_info_file relay-log.info > relay_log_purge ON > relay_log_recovery OFF > > === modified file 'mysql-test/suite/rpl/r/rpl_variables.result' > --- a/mysql-test/suite/rpl/r/rpl_variables.result 2008-08-14 09:38:22 +0000 > +++ b/mysql-test/suite/rpl/r/rpl_variables.result 2010-10-28 15:42:17 +0000 > @@ -47,6 +47,34 @@ include/start_slave.inc > [on slave] > SET @@global.init_slave = 'SELECT 1'; > [on master] > +SELECT @@pid_file, @@datadir; > +@@pid_file MYSQL_TEST_DIR/var/run/mysqld.1.pid > +@@datadir MYSQL_TEST_DIR/var/mysqld.1/data/ > +**** Relay log variables > +SELECT @@relay_log, @@relay_log_index, @@relay_log_basename; > +@@relay_log NULL > +@@relay_log_index NULL > +@@relay_log_basename NULL > +**** Binary log variables > +SELECT @@log_bin, @@log_bin_index, @@log_bin_basename; > +@@log_bin 1 > +@@log_bin_index MYSQL_TEST_DIR/var/mysqld.1/data/master-bin.index > +@@log_bin_basename MYSQL_TEST_DIR/var/mysqld.1/data/master-bin > +[on slave] > +SELECT @@pid_file, @@datadir; > +@@pid_file MYSQL_TEST_DIR/var/run/mysqld.2.pid > +@@datadir MYSQL_TEST_DIR/var/mysqld.2/data/ > +**** Relay log variables > +SELECT @@relay_log, @@relay_log_index, @@relay_log_basename; > +@@relay_log slave-relay-bin > +@@relay_log_index MYSQL_TEST_DIR/var/mysqld.2/data/slave-relay-bin.index > +@@relay_log_basename MYSQL_TEST_DIR/var/mysqld.2/data/slave-relay-bin > +**** Binary log variables > +SELECT @@log_bin, @@log_bin_index, @@log_bin_basename; > +@@log_bin 1 > +@@log_bin_index MYSQL_TEST_DIR/var/mysqld.2/data/slave-bin.index > +@@log_bin_basename MYSQL_TEST_DIR/var/mysqld.2/data/slave-bin > +[on master] > CREATE TABLE tstmt (id INT AUTO_INCREMENT PRIMARY KEY, > truth BOOLEAN, > num INT, > > === modified file 'mysql-test/suite/rpl/t/rpl_variables.test' > --- a/mysql-test/suite/rpl/t/rpl_variables.test 2008-07-17 16:26:59 +0000 > +++ b/mysql-test/suite/rpl/t/rpl_variables.test 2010-10-28 15:42:17 +0000 > @@ -122,6 +122,30 @@ SET @@global.init_slave = 'SELECT 1'; > > --echo [on master] > connection master; > +# checking values of read-only variables > +--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR > +query_vertical SELECT @@pid_file, @@datadir; > +--echo **** Relay log variables > +--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR > +query_vertical SELECT @@relay_log, @@relay_log_index, @@relay_log_basename; > +--echo **** Binary log variables > +--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR > +query_vertical SELECT @@log_bin, @@log_bin_index, @@log_bin_basename; > + > +--echo [on slave] > +connection slave; > +# checking values of read-only variables > +--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR > +query_vertical SELECT @@pid_file, @@datadir; > +--echo **** Relay log variables > +--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR > +query_vertical SELECT @@relay_log, @@relay_log_index, @@relay_log_basename; > +--echo **** Binary log variables > +--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR > +query_vertical SELECT @@log_bin, @@log_bin_index, @@log_bin_basename; > + > +--echo [on master] > +connection master; > > # Tables where everything happens. > CREATE TABLE tstmt (id INT AUTO_INCREMENT PRIMARY KEY, > > === modified file 'mysql-test/suite/sys_vars/r/all_vars.result' > --- a/mysql-test/suite/sys_vars/r/all_vars.result 2010-06-17 09:13:53 +0000 > +++ b/mysql-test/suite/sys_vars/r/all_vars.result 2010-10-28 15:42:17 +0000 > @@ -10,7 +10,13 @@ There should be *no* long test name list > select variable_name as `There should be *no* variables listed below:` from t2 > left join t1 on variable_name=test_name where test_name is null; > There should be *no* variables listed below: > +RELAY_LOG_BASENAME > +LOG_BIN_BASENAME > +LOG_BIN_INDEX > INNODB_FILE_FORMAT_MAX > +RELAY_LOG_BASENAME > +LOG_BIN_BASENAME > +LOG_BIN_INDEX > INNODB_FILE_FORMAT_MAX > drop table t1; > drop table t2; > > === modified file 'mysql-test/t/flush2.test' > --- a/mysql-test/t/flush2.test 2007-03-23 11:36:07 +0000 > +++ b/mysql-test/t/flush2.test 2010-10-28 15:42:17 +0000 > @@ -4,6 +4,8 @@ > flush logs; > set global expire_logs_days = 3; > show variables like 'log_bin%'; > +show variables like 'relay_log%'; > flush logs; > show variables like 'log_bin%'; > +show variables like 'relay_log%'; > set global expire_logs_days = 0; > > === modified file 'mysql-test/t/variables-notembedded.test' > --- a/mysql-test/t/variables-notembedded.test 2008-12-13 19:42:12 +0000 > +++ b/mysql-test/t/variables-notembedded.test 2010-10-28 15:42:17 +0000 > @@ -58,6 +58,26 @@ SET @@session.relay_log= 'x'; > SET @@global.relay_log= 'x'; > # > --echo # > +SHOW VARIABLES like 'relay_log_basename'; > +--error ER_INCORRECT_GLOBAL_LOCAL_VAR > +SELECT @@session.relay_log_basename; > +SELECT @@global.relay_log_basename; > +--error ER_INCORRECT_GLOBAL_LOCAL_VAR > +SET @@session.relay_log_basename= 'x'; > +--error ER_INCORRECT_GLOBAL_LOCAL_VAR > +SET @@global.relay_log_basename= 'x'; > +# > +--echo # > +SHOW VARIABLES like 'log_bin_basename'; > +--error ER_INCORRECT_GLOBAL_LOCAL_VAR > +SELECT @@session.log_bin_basename; > +SELECT @@global.log_bin_basename; > +--error ER_INCORRECT_GLOBAL_LOCAL_VAR > +SET @@session.log_bin_basename= 'x'; > +--error ER_INCORRECT_GLOBAL_LOCAL_VAR > +SET @@global.log_bin_basename= 'x'; > +# > +--echo # > SHOW VARIABLES like 'relay_log_index'; > --error ER_INCORRECT_GLOBAL_LOCAL_VAR > SELECT @@session.relay_log_index; > @@ -68,6 +88,16 @@ SET @@session.relay_log_index= 'x'; > SET @@global.relay_log_index= 'x'; > # > --echo # > +SHOW VARIABLES like 'log_bin_index'; > +--error ER_INCORRECT_GLOBAL_LOCAL_VAR > +SELECT @@session.log_bin_index; > +SELECT @@global.log_bin_index; > +--error ER_INCORRECT_GLOBAL_LOCAL_VAR > +SET @@session.log_bin_index= 'x'; > +--error ER_INCORRECT_GLOBAL_LOCAL_VAR > +SET @@global.log_bin_index= 'x'; > +# > +--echo # > SHOW VARIABLES like 'relay_log_info_file'; > --error ER_INCORRECT_GLOBAL_LOCAL_VAR > SELECT @@session.relay_log_info_file; > > === modified file 'sql/log.cc' > --- a/sql/log.cc 2010-08-30 08:36:02 +0000 > +++ b/sql/log.cc 2010-10-28 15:42:17 +0000 > @@ -59,6 +59,9 @@ > > LOGGER logger; > > +const char *log_bin_index= 0; > +const char *log_bin_basename= 0; > + > MYSQL_BIN_LOG mysql_bin_log(&sync_binlog_period); > > static bool test_if_number(const char *str, > > === modified file 'sql/log.h' > --- a/sql/log.h 2010-08-20 11:22:46 +0000 > +++ b/sql/log.h 2010-10-28 15:42:17 +0000 > @@ -31,6 +31,9 @@ bool ending_single_stmt_trans(THD* thd, > bool trans_has_updated_non_trans_table(const THD* thd); > bool stmt_has_updated_non_trans_table(const THD* thd); > > +extern const char *log_bin_index; > +extern const char *log_bin_basename; > + > /* > Transaction Coordinator log - a base abstract class > for two different implementations > > === modified file 'sql/mysqld.cc' > --- a/sql/mysqld.cc 2010-08-30 14:07:40 +0000 > +++ b/sql/mysqld.cc 2010-10-28 15:42:17 +0000 > @@ -656,7 +656,8 @@ static my_bool opt_do_pstack; > static my_bool opt_bootstrap, opt_myisam_log; > static int cleanup_done; > static ulong opt_specialflag; > -static char *opt_update_logname, *opt_binlog_index_name; > +static char *opt_update_logname; > +char *opt_binlog_index_name; > char *mysql_home_ptr, *pidfile_name_ptr; > /** Initial command line arguments (count), after load_defaults().*/ > static int defaults_argc; > @@ -3080,6 +3081,34 @@ static inline char *make_default_log_nam > return make_log_name(buff, default_logfile_name, log_ext); > } > > +/** > + Create a replication file name or base for file names. > + > + @param[in] opt Value of option, or NULL > + @param[in] def Default value if option value is not set. > + @param[in] ext Extension to use for the path > + > + @returns Pointer to string containing the full file path, or NULL if > + it was not possible to create the path. > + */ > +static inline const char * > +rpl_make_log_name(const char *opt, > + const char *def, > + const char *ext) > +{ > + DBUG_ENTER("rpl_make_log_name"); > + DBUG_PRINT("enter", ("opt: %s, def: %s, ext: %s", opt, def, ext)); > + char buff[FN_REFLEN]; > + const char *base= opt ? opt : def; > + unsigned int options= > + MY_REPLACE_EXT | MY_UNPACK_FILENAME | MY_SAFE_PATH; > + if (fn_format(buff, base, mysql_real_data_home_ptr, ext, options)) > + DBUG_RETURN(strdup(buff)); > + else > + DBUG_RETURN(NULL); > +} > + > + > static int init_common_variables() > { > char buff[FN_REFLEN]; > @@ -3147,6 +3176,7 @@ static int init_common_variables() > strmake(pidfile_name, default_logfile_name, sizeof(pidfile_name)-5); > strmov(fn_ext(pidfile_name),".pid"); // Add proper extension > > + > /* > The default-storage-engine entry in my_long_options should have a > non-null default value. It was earlier intialized as > @@ -3865,6 +3895,45 @@ a file name for --log-bin-index option", > } > } > > + if (opt_bin_log) > + { > + log_bin_basename= > + rpl_make_log_name(opt_bin_logname, pidfile_name, > + opt_bin_logname ? "" : "-bin"); > + log_bin_index= > + rpl_make_log_name(opt_binlog_index_name, log_bin_basename, ".index"); > + if (log_bin_basename == NULL || log_bin_index == NULL) > + { > + sql_print_error("Unable to create replication path names:" > + " out of memory or path names too long" > + " (path name exceeds " STRINGIFY_ARG(FN_REFLEN) > + " or file name exceeds " STRINGIFY_ARG(FN_LEN) ")."); > + unireg_abort(1); > + } > + } > + > +#ifndef EMBEDDED_LIBRARY > + DBUG_PRINT("debug", > + ("opt_bin_logname: %s, opt_relay_logname: %s, pidfile_name: %s", > + opt_bin_logname, opt_relay_logname, pidfile_name)); > + if (opt_relay_logname) > + { > + relay_log_basename= > + rpl_make_log_name(opt_relay_logname, pidfile_name, > + opt_relay_logname ? "" : "-relay-bin"); > + relay_log_index= > + rpl_make_log_name(opt_relaylog_index_name, relay_log_basename, ".index"); > + if (relay_log_basename == NULL || relay_log_index == NULL) > + { > + sql_print_error("Unable to create replication path names:" > + " out of memory or path names too long" > + " (path name exceeds " STRINGIFY_ARG(FN_REFLEN) > + " or file name exceeds " STRINGIFY_ARG(FN_LEN) ")."); > + unireg_abort(1); > + } > + } > +#endif /* !EMBEDDED_LIBRARY */ > + > /* call ha_init_key_cache() on all key caches to init them */ > process_key_caches(&ha_init_key_cache); > > @@ -5778,9 +5847,13 @@ struct my_option my_long_options[]= > &opt_bin_logname,&opt_bin_logname, 0, GET_STR_ALLOC, > OPT_ARG, 0, 0, 0, 0, 0, 0}, > {"log-bin-index", 0, > - "File that holds the names for last binary log files.", > + "File that holds the names for binary log files.", > &opt_binlog_index_name,&opt_binlog_index_name, 0, GET_STR, > REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, > + {"relay-log-index", 0, > + "File that holds the names for relay log files.", > +&opt_relaylog_index_name,&opt_relaylog_index_name, 0, GET_STR, > + REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, > {"log-isam", OPT_ISAM_LOG, "Log all MyISAM changes to file.", > &myisam_log_filename,&myisam_log_filename, 0, GET_STR, > OPT_ARG, 0, 0, 0, 0, 0, 0}, > > === modified file 'sql/slave.cc' > --- a/sql/slave.cc 2010-07-29 12:32:11 +0000 > +++ b/sql/slave.cc 2010-10-28 15:42:17 +0000 > @@ -75,6 +75,9 @@ Master_info *active_mi= 0; > my_bool replicate_same_server_id; > ulonglong relay_log_space_limit = 0; > > +const char *relay_log_index= 0; > +const char *relay_log_basename= 0; > + > /* > When slave thread exits, we need to remember the temporary tables so we > can re-use them on slave start. > > === modified file 'sql/slave.h' > --- a/sql/slave.h 2010-03-31 14:05:33 +0000 > +++ b/sql/slave.h 2010-10-28 15:42:17 +0000 > @@ -113,11 +113,15 @@ extern bool use_slave_mask; > extern char *slave_load_tmpdir; > extern char *master_info_file, *relay_log_info_file; > extern char *opt_relay_logname, *opt_relaylog_index_name; > +extern char *opt_binlog_index_name; > extern my_bool opt_skip_slave_start, opt_reckless_slave; > extern my_bool opt_log_slave_updates; > extern char *opt_slave_skip_errors; > extern ulonglong relay_log_space_limit; > > +extern const char *relay_log_index; > +extern const char *relay_log_basename; > + > /* > 3 possible values for Master_info::slave_running and > Relay_log_info::slave_running. > > === modified file 'sql/sys_vars.cc' > --- a/sql/sys_vars.cc 2010-08-30 14:07:40 +0000 > +++ b/sql/sys_vars.cc 2010-10-28 15:42:17 +0000 > @@ -2897,10 +2897,37 @@ static Sys_var_charptr Sys_relay_log( > READ_ONLY GLOBAL_VAR(opt_relay_logname), CMD_LINE(REQUIRED_ARG), > IN_FS_CHARSET, DEFAULT(0)); > > +/* > + Uses NO_CMD_LINE since the --relay-log-index option set > + opt_relaylog_index_name variable and computes a value for the > + relay_log_index variable. > +*/ > static Sys_var_charptr Sys_relay_log_index( > "relay_log_index", "The location and name to use for the file " > "that keeps a list of the last relay logs", > - READ_ONLY GLOBAL_VAR(opt_relaylog_index_name), CMD_LINE(REQUIRED_ARG), > + READ_ONLY GLOBAL_VAR(relay_log_index), NO_CMD_LINE, > + IN_FS_CHARSET, DEFAULT(0)); > + > +/* > + Uses NO_CMD_LINE since the --log-bin-index option set > + opt_binlog_index_name variable and computes a value for the > + log_bin_index variable. > +*/ > +static Sys_var_charptr Sys_binlog_index( > + "log_bin_index", "File that holds the names for last binary log files.", > + READ_ONLY GLOBAL_VAR(log_bin_index), NO_CMD_LINE, > + IN_FS_CHARSET, DEFAULT(0)); > + > +static Sys_var_charptr Sys_relay_log_basename( > + "relay_log_basename", > + "The full path of the relay log file names, excluding the extension.", > + READ_ONLY GLOBAL_VAR(relay_log_basename), NO_CMD_LINE, > + IN_FS_CHARSET, DEFAULT(0)); > + > +static Sys_var_charptr Sys_log_bin_basename( > + "log_bin_basename", > + "The full path of the binary log file names, excluding the extension.", > + READ_ONLY GLOBAL_VAR(log_bin_basename), NO_CMD_LINE, > IN_FS_CHARSET, DEFAULT(0)); > > static Sys_var_charptr Sys_relay_log_info_file( > > > > >