Commit 2a3fe45d authored by Marko Mäkelä's avatar Marko Mäkelä

Remove XtraDB

The XtraDB storage engine was already replaced by InnoDB
and disabled in MariaDB Server 10.2. Let us remove it altogether
to avoid dragging dead code around.

Replace some references to XtraDB with references to InnoDB.

rpl_get_position_info(): Remove.

Remove the mysql-test-run --suite=percona, because it only contains
tests specific to XtraDB, many of which were disabled already in
earlier MariaDB versions.
parent 99e017d0
......@@ -139,9 +139,6 @@ IF(UNIX)
")
ENDIF()
# Remove libaio dependency from mysqld
#SET(XTRADB_PREFER_STATIC_LIBAIO 1)
# Unfortunately, linking shared libmysqld with static aio
# does not work, unless we add also dynamic one. This also means
# libmysqld.so will depend on libaio.so
......
......@@ -523,7 +523,6 @@
WITH_<ENGINE>_STORAGE_ENGINE for the whole server)
*/
#cmakedefine WITH_INNOBASE_STORAGE_ENGINE 1
#cmakedefine WITH_XTRADB_STORAGE_ENGINE 1
#cmakedefine WITH_PARTITION_STORAGE_ENGINE 1
#cmakedefine WITH_PERFSCHEMA_STORAGE_ENGINE 1
#cmakedefine WITH_ARIA_STORAGE_ENGINE 1
......
......@@ -143,7 +143,6 @@ my $have_subquerycache_vals = 0;
my $have_binlog_vals = 0;
my $have_tokudb_engine = 0;
my $use_thread_pool = 0;
my $use_xtradb = 0;
if(defined $op{'r'})
{
......@@ -699,15 +698,6 @@ sub get_MySQL_version
} else {
$have_tokudb_engine = 0;
}
$use_xtradb = $dbh->selectall_arrayref("SELECT 1 FROM INFORMATION_SCHEMA.ENGINES WHERE ENGINE = 'InnoDB' AND COMMENT LIKE 'Percona-XtraDB%';", undef)->[0][0];
if(defined($use_xtradb) && $use_xtradb eq "1")
{
print "XtraDB detected\n" if $op{debug};
$use_xtradb = 1;
} else {
$use_xtradb = 0;
}
}
}
......@@ -1204,11 +1194,6 @@ sub write_InnoDB
$~ = 'IB';
write;
if($use_xtradb)
{
$~ = 'IB_XTRADB';
write;
}
# Innodb_row_lock_ values were added in MySQL 5.0.3
if($MySQL_version >= 50003)
......@@ -1216,11 +1201,6 @@ sub write_InnoDB
$~ = 'IB_LOCK';
write;
}
if($use_xtradb)
{
$~ = 'IB_LOCK_XTRADB';
write;
}
# Data, Pages, Rows
$~ = 'IB_DPR';
......@@ -1511,11 +1491,6 @@ Flushes @>>>>>>>> @>>>>>/s
make_short($stats{'Innodb_buffer_pool_pages_flushed'}), t($stats{'Innodb_buffer_pool_pages_flushed'})
.
format IB_XTRADB =
LRU @>>>>>>>> @>>>>>/s %LRU: @>>>>>
make_short($stats{'Innodb_buffer_pool_pages_lru_flushed'}), t($stats{'Innodb_buffer_pool_pages_lru_flushed'}), perc($stats{'Innodb_buffer_pool_pages_lru_flushed'}, $stats{'Innodb_buffer_pool_pages_flushed'})
.
format IB_LOCK =
__ InnoDB Lock _________________________________________________________
......@@ -1532,11 +1507,6 @@ $stats{'Innodb_row_lock_time_avg'}
$stats{'Innodb_row_lock_time_max'}
.
format IB_LOCK_XTRADB =
Trx history @>>>>>>>>
make_short($stats{'Innodb_history_list_length'})
.
format IB_DPR =
__ InnoDB Data, Pages, Rows ____________________________________________
......
......@@ -64,7 +64,7 @@ IF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
ENDIF()
ENDIF()
IF(WITH_INNOBASE_STORAGE_ENGINE OR WITH_XTRADB_STORAGE_ENGINE)
IF(WITH_INNOBASE_STORAGE_ENGINE)
# Add path to the InnoDB headers
INCLUDE_DIRECTORIES(
${CMAKE_SOURCE_DIR}/storage/innobase/include
......
......@@ -30,7 +30,7 @@ ENDIF()
INCLUDE_DIRECTORIES(
${CMAKE_SOURCE_DIR}/include
${CMAKE_SOURCE_DIR}/storage/xtradb/include
${CMAKE_SOURCE_DIR}/storage/innobase/include
${CMAKE_SOURCE_DIR}/sql
${CMAKE_CURRENT_SOURCE_DIR}/quicklz
${CMAKE_CURRENT_SOURCE_DIR}
......
......@@ -1938,7 +1938,7 @@ Run stress test, providing options to mysql\-stress\-test\&.pl\&. Options are se
\fB\-\-suite[s]=\fR\fB\fIsuite_name...\fR\fR
.sp
Comma separated list of suite names to run. The default is: "main-,archive-,binlog-,csv-,federated-,funcs_1-,funcs_2-,handler-,heap-,innodb-,innodb_fts-,
innodb_zip-,maria-,multi_source-,optimizer_unfixed_bugs-,parts-,percona-,perfschema-,
innodb_zip-,maria-,multi_source-,optimizer_unfixed_bugs-,parts-,perfschema-,
plugins-,roles-,rpl-,sys_vars-,unit-,vcol-"\&.
.RE
.sp
......
......@@ -18,36 +18,6 @@ innodb-sys-tables
innodb-sys-virtual
innodb-metrics
[xtradb_plugin]
ignore-builtin-innodb
plugin-load-add=$HA_XTRADB_SO
innodb
innodb-cmpmem
innodb-cmp-per-index
innodb-trx
innodb-locks
innodb-buffer-pool-stats
innodb-buffer-page
innodb-buffer-page-lru
innodb-sys-foreign
innodb-sys-foreign-cols
innodb-sys-tables
innodb-metrics
[xtradb]
innodb
innodb-cmpmem
innodb-cmp-per-index
innodb-trx
innodb-locks
innodb-metrics
innodb-buffer-pool-stats
innodb-buffer-page
innodb-buffer-page-lru
innodb-sys-foreign
innodb-sys-foreign-cols
innodb-sys-tables
[innodb]
innodb
innodb-cmpmem
......
#
# suite.pm will make sure that all tests including this file
# will be skipped unless innodb or xtradb is enabled
# will be skipped unless innodb is enabled
#
# The test below is redundant
......
disable_query_log;
--require r/not_true.require
select (PLUGIN_LIBRARY LIKE 'ha_innodb_plugin%' OR PLUGIN_DESCRIPTION LIKE '%xtradb%') as `TRUE` from information_schema.plugins where PLUGIN_NAME='InnoDB';
enable_query_log;
[xtradb_plugin]
ignore-builtin-innodb
plugin-load-add=$HA_XTRADB_SO
innodb
innodb-cmpmem
innodb-trx
innodb-sys-indexes
[xtradb]
innodb
innodb-cmpmem
innodb-trx
innodb-sys-indexes
#
# suite.pm will make sure that all tests including this file
# will be skipped unless xtradb is enabled
#
# The test below is redundant
if (!`SELECT count(*) FROM information_schema.plugins WHERE
plugin_name = 'innodb' AND plugin_status = 'active' AND
plugin_description LIKE '%xtradb%'`){
skip Needs XtraDB engine;
}
......@@ -189,7 +189,6 @@ my @DEFAULT_SUITES= qw(
multi_source-
optimizer_unfixed_bugs-
parts-
percona-
perfschema-
plugins-
roles-
......@@ -1737,18 +1736,6 @@ sub command_line_setup {
$opt_strace=1;
}
# InnoDB does not bother to do individual de-allocations at exit. Instead it
# relies on a custom allocator to track every allocation, and frees all at
# once during exit.
# In XtraDB, an option use-sys-malloc is introduced (and on by default) to
# disable this (for performance). But this exposes Valgrind to all the
# missing de-allocations, so we need to disable it to at least get
# meaningful leak checking for the rest of the server.
if ($opt_valgrind_mysqld)
{
push(@opt_extra_mysqld_opt, "--loose-skip-innodb-use-sys-malloc");
}
if ($opt_debug_common)
{
$opt_debug= 1;
......@@ -5966,7 +5953,7 @@ Examples:
alias
main.alias 'main' is the name of the suite for the 't' directory.
rpl.rpl_invoked_features,mix,xtradb_plugin
rpl.rpl_invoked_features,mix,innodb
suite/rpl/t/rpl.rpl_invoked_features
Options to control what engine/variation to run:
......
DROP TABLE IF EXISTS t0,t1,t2,t3,t4,t5;
DROP VIEW IF EXISTS v1;
#
# Bug#18925: subqueries with MIN/MAX functions on INFORMATION_SCHEMA
#
......
......@@ -6,20 +6,12 @@ use My::Platform;
sub skip_combinations {
my @combinations;
# disable innodb/xtradb combinatons for configurations that were not built
# disable innodb combinations for configurations that were not built
push @combinations, 'innodb_plugin' unless $ENV{HA_INNODB_SO};
push @combinations, qw(xtradb innodb) unless $::mysqld_variables{'innodb'} eq "ON";
push @combinations, 'innodb' unless $::mysqld_variables{'innodb'} eq "ON";
# unconditionally, for now in 10.2. Later it could check for xtradb I_S plugins
push @combinations, 'xtradb';
# XtraDB is RECOMPILE_FOR_EMBEDDED, ha_xtradb.so cannot work with embedded server
push @combinations, 'xtradb_plugin' if not $ENV{HA_XTRADB_SO}
or $::opt_embedded_server;
my %skip = ( 'include/have_innodb.combinations' => [ @combinations ],
'include/have_xtradb.combinations' => [ @combinations ]);
my %skip = ( 'include/have_innodb.combinations' => [ @combinations ]);
# don't run tests for the wrong platform
$skip{'include/platform.combinations'} = [ (IS_WINDOWS) ? 'unix' : 'win' ];
......
create table t1 (i int) engine=InnoDB;
set innodb_fake_changes = 1;
insert into t1 values (1);
ERROR HY000: Got error 131 "Command not supported by database" during COMMIT
set innodb_fake_changes = 0;
drop table t1;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 10 AND end_lsn > 20 ;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA . `INNODB_CHANGED_PAGES` AS table1 WHERE ( ( (NOT ( ( ( ( (NOT ( table1 . `page_id` <> table1 . `start_lsn` AND table1 . `space_id` <> 8) AND table1 . `page_id` >= table1 . `end_lsn`) OR table1 . `end_lsn` = table1 . `space_id`) AND table1 . `end_lsn` <> table1 . `page_id`) OR table1 . `end_lsn` < 8) AND table1 . `space_id` >= '2000-06-10 11:33:07.046821') AND table1 . `end_lsn` >= 5) AND table1 . `start_lsn` < 'mm') OR table1 . `end_lsn` != table1 . `end_lsn`) HAVING ( table1 . `start_lsn` < '2005-09-09 01:34:19.012946' OR table1 . `page_id` < 6) ORDER BY table1 . `start_lsn`
LIMIT 3;
space_id page_id start_lsn end_lsn
Warnings:
Warning 1292 Truncated incorrect DOUBLE value: 'mm'
Warning 1292 Truncated incorrect DOUBLE value: '2005-09-09 01:34:19.012946'
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 2000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn <= 2000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE end_lsn > 2000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE end_lsn >= 2000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE end_lsn > 2000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE end_lsn >= 2000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 and end_lsn < 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 and end_lsn < 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 and end_lsn <= 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 and end_lsn <= 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn = 2000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE end_lsn = 2000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 2000000 or end_lsn < 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn <= 2000000 or end_lsn < 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 2000000 or end_lsn <= 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn <= 2000000 or end_lsn <= 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 or end_lsn < 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 or end_lsn < 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 or end_lsn <= 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 or end_lsn <= 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 2000000 or end_lsn > 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn <= 2000000 or end_lsn > 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 2000000 or end_lsn >= 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn <= 2000000 or end_lsn >= 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 or end_lsn > 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 or end_lsn > 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 or end_lsn >= 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 or end_lsn >= 3000000;
space_id page_id start_lsn end_lsn
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE (start_lsn > 2000000 and end_lsn < 3000000) or (start_lsn > 4000000 and end_lsn < 5000000);
space_id page_id start_lsn end_lsn
FLUSH NO_WRITE_TO_BINLOG changed_page_bitmaps;
select * from information_schema.changed_page_bitmaps;
dummy
0
--source include/have_log_bin.inc
--source include/have_xtradb.inc
create table t1 (i int) engine=InnoDB;
set innodb_fake_changes = 1;
--disable_abort_on_error
insert into t1 values (1);
set innodb_fake_changes = 0;
drop table t1;
--innodb-track-changed-pages=0 --innodb-changed-pages=1
\ No newline at end of file
-- source include/have_xtradb.inc
#
# This test requires innodb-changed-pages=1 so that necessary information schema table exists
# and innodb-track-changed-pages=0 to disable actual changed pages tracking, because
# page number are not consistent from run to run
#
#
# MDEV-4791: ssertion range_end >= range_start fails in log0online.c
# on select from I_S.INNODB_CHANGED_PAGES
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 10 AND end_lsn > 20 ;
SELECT * FROM INFORMATION_SCHEMA . `INNODB_CHANGED_PAGES` AS table1 WHERE ( ( (NOT ( ( ( ( (NOT ( table1 . `page_id` <> table1 . `start_lsn` AND table1 . `space_id` <> 8) AND table1 . `page_id` >= table1 . `end_lsn`) OR table1 . `end_lsn` = table1 . `space_id`) AND table1 . `end_lsn` <> table1 . `page_id`) OR table1 . `end_lsn` < 8) AND table1 . `space_id` >= '2000-06-10 11:33:07.046821') AND table1 . `end_lsn` >= 5) AND table1 . `start_lsn` < 'mm') OR table1 . `end_lsn` != table1 . `end_lsn`) HAVING ( table1 . `start_lsn` < '2005-09-09 01:34:19.012946' OR table1 . `page_id` < 6) ORDER BY table1 . `start_lsn`
LIMIT 3;
#
# Basic tests
#
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 2000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn <= 2000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE end_lsn > 2000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE end_lsn >= 2000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE end_lsn > 2000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE end_lsn >= 2000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 and end_lsn < 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 and end_lsn < 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 and end_lsn <= 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 and end_lsn <= 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn = 2000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE end_lsn = 2000000;
#
# OR
#
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 2000000 or end_lsn < 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn <= 2000000 or end_lsn < 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 2000000 or end_lsn <= 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn <= 2000000 or end_lsn <= 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 or end_lsn < 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 or end_lsn < 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 or end_lsn <= 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 or end_lsn <= 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 2000000 or end_lsn > 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn <= 2000000 or end_lsn > 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn < 2000000 or end_lsn >= 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn <= 2000000 or end_lsn >= 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 or end_lsn > 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 or end_lsn > 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn > 2000000 or end_lsn >= 3000000;
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE start_lsn >= 2000000 or end_lsn >= 3000000;
#
# Range
#
SELECT * FROM INFORMATION_SCHEMA.INNODB_CHANGED_PAGES WHERE (start_lsn > 2000000 and end_lsn < 3000000) or (start_lsn > 4000000 and end_lsn < 5000000);
--changed-page-bitmaps
--innodb-track-changed-pages
-- source include/have_xtradb.inc
-- source include/not_embedded.inc
FLUSH NO_WRITE_TO_BINLOG changed_page_bitmaps;
select * from information_schema.changed_page_bitmaps;
percona_sync_flush: removed from XtraDB-26.0
percona_suppress_log_warning_1592: Feature not merged into MariaDB
percona_log_slow_slave_statements: Feature not merged into MariaDB
percona_log_slow_slave_statements-and-use_global_long_query_time: Feature not merged into MariaDB
percona_slow_query_log-control_global_slow: Feature not merged into MariaDB
percona_slow_query_log-microseconds_in_slow_query_log: Feature not merged into MariaDB
percona_query_cache_with_comments: Feature not merged into MariaDB
percona_query_cache_with_comments_prepared_statements: Feature not merged into MariaDB
percona_show_temp_tables: Feature not merged into MariaDB
percona_slow_query_log-use_global_long_query_time: Feature not merged into MariaDB
percona_query_cache_with_comments_disable: Feature not merged into MariaDB
percona_log_connection_error: Feature not merged into MariaDB
percona_query_response_time: Feature not merged into MariaDB
percona_query_response_time-stored: Feature not merged into MariaDB
percona_sql_no_fcache: Feature not merged into MariaDB
percona_status_wait_query_cache_mutex: Feature not merged into MariaDB
percona_slave_innodb_stats: Feature not merged into MariaDB
percona_query_response_time-replication: Feature not merged into MariaDB
percona_server_variables_debug: Feature not merged into MariaDB
percona_server_variables_release: Feature not merged into MariaDB
percona_slow_query_log-log_slow_verbosity: InnoDB filtering information not fully merged into MariaDB
percona_innodb_buffer_pool_shm: Requires big shmmax not default on many systems
percona_log_warnings_suppress: Feature not merged into MariaDB
percona_slow_extended-log_slow_sp_statements-cl: Feature not merged into MariaDB
percona_slow_extended-log_slow_verbosity-cl: Feature not merged into MariaDB
slow_query_log_use_global_control: Feature not merged into MariaDB
percona_slow_extended-use_global_control: Feature not merged into MariaDB
percona_slow_query_log-log_slow_verbosity: Feature not merged into MariaDB
percona_slow_extended-log_slow_verbosity: Feature not merged into MariaDB
percona_slow_extended-microseconds_in_slow_extended: Feature not merged into MariaDB
percona_slow_extended-use_global_long_query_time: Feature not merged into MariaDB
percona_slow_extended-slow_query_log_timestamp_always-cl: Feature not merged into MariaDB
percona_slow_extended-slow_query_log_microseconds_timestamp-cl: Feature not merged into MariaDB
percona_bug643149: Feature not merged into MariaDB
percona_processlist_row_stats: Feature not merged into MariaDB
percona_server_variables_debug: Feature not merged into MariaDB
percona_slow_extended-slave_statements: Feature not merged into MariaDB
percona_show_slave_status_nolock: Feature not merged into MariaDB
percona_slow_extended-slave_innodb_stats: Feature not merged into MariaDB
percona_slow_extended-slave_statements-and-use_global_long_query_time: Feature not merged into MariaDB
userstat_bug602047: Feature not merged into MariaDB
percona_innodb_expand_fast_index_creation: Feature not merged into MariaDB
percona_innodb_kill_idle_trx: Feature not merged into MariaDB
percona_innodb_kill_idle_trx_locks: Feature not merged into MariaDB
if (`SELECT @@have_response_time_distribution != 'YES'`)
{
--skip No response time distribution
}
Variable_name Value
have_response_time_distribution YES
SELECT COUNT(*) FROM `information_schema`.`INNODB_SYS_INDEXES` ;
CREATE TABLE test.t1 ( `a` SERIAL NOT NULL , `b` VARCHAR( 255 ) NOT NULL , INDEX ( `b` ) ) ENGINE = InnoDB ;
SHOW TABLE STATUS FROM `information_schema` LIKE 'INNODB\_SYS\_INDEXES%' ;
drop table test.t1;
SHOW TABLE STATUS FROM `information_schema` LIKE 'INNODB\_SYS\_INDEXES%' ;
SELECT COUNT(*) FROM `information_schema`.`INNODB_SYS_INDEXES` ;
CREATE TABLE test.t1 ( `a` SERIAL NOT NULL , `b` VARCHAR( 255 ) NOT NULL , INDEX ( `b` ) ) ENGINE = InnoDB ;
SHOW TABLE STATUS FROM `information_schema` LIKE 'INNODB\_SYS\_INDEXES%' ;
SELECT COUNT(*) FROM `information_schema`.`INNODB_SYS_INDEXES` ;
drop table test.t1;
SHOW TABLE STATUS FROM `information_schema` LIKE 'INNODB\_SYS\_INDEXES%' ;
--source include/big_test.inc
--source include/have_xtradb.inc
#
# test for bug LP#875797 "Using 'innodb_sys_indexes' causes core dump"
#
--disable_result_log
SELECT COUNT(*) FROM `information_schema`.`INNODB_SYS_INDEXES` ;
CREATE TABLE test.t1 ( `a` SERIAL NOT NULL , `b` VARCHAR( 255 ) NOT NULL , INDEX ( `b` ) ) ENGINE = InnoDB ;
SHOW TABLE STATUS FROM `information_schema` LIKE 'INNODB\_SYS\_INDEXES%' ;
drop table test.t1;
SHOW TABLE STATUS FROM `information_schema` LIKE 'INNODB\_SYS\_INDEXES%' ;
SELECT COUNT(*) FROM `information_schema`.`INNODB_SYS_INDEXES` ;
CREATE TABLE test.t1 ( `a` SERIAL NOT NULL , `b` VARCHAR( 255 ) NOT NULL , INDEX ( `b` ) ) ENGINE = InnoDB ;
SHOW TABLE STATUS FROM `information_schema` LIKE 'INNODB\_SYS\_INDEXES%' ;
SELECT COUNT(*) FROM `information_schema`.`INNODB_SYS_INDEXES` ;
drop table test.t1;
SHOW TABLE STATUS FROM `information_schema` LIKE 'INNODB\_SYS\_INDEXES%' ;
--enable_result_log
SET @old_max_connections = @@max_connections;
SET @old_log_warnings = @@log_warnings;
SET GLOBAL max_connections=2;
SET GLOBAL LOG_WARNINGS = 0;
connect(localhost,root,,test,port,socket);
ERROR HY000: Too many connections
SET GLOBAL LOG_WARNINGS = 1;
connect(localhost,root,,test,port,socket);
ERROR HY000: Too many connections
SET GLOBAL LOG_WARNINGS = 0;
connect(localhost,root,,test,port,socket);
ERROR HY000: Too many connections
SET GLOBAL max_connections = @old_max_connections;
SET GLOBAL log_warnings = @old_log_warnings;
[log_grep.inc] file: percona.log_connection_error.err pattern: Too many connections
[log_grep.inc] lines: 1
--source include/not_embedded.inc
connect (main,localhost,root,,);
connection main;
SET @old_max_connections = @@max_connections;
SET @old_log_warnings = @@log_warnings;
SET GLOBAL max_connections=2;
let $port=`SELECT Variable_value FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE Variable_name LIKE 'port'`;
let $socket=`SELECT Variable_value FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE Variable_name LIKE 'socket'`;
SET GLOBAL LOG_WARNINGS = 0;
--connect (conn0,localhost,root,,)
connection conn0;
replace_result $port port $socket socket;
--error 1040
--connect(conn1,localhost,root,,)
disconnect conn0;
SLEEP 0.1; # tsarev: hack, but i don't know (and didn't find) how right
connection main;
SET GLOBAL LOG_WARNINGS = 1;
--connect (conn1,localhost,root,,)
replace_result $port port $socket socket;
--error 1040
--connect (conn0,localhost,root,,)
disconnect conn1;
SLEEP 0.1; # tsarev: hack, but i don't know (and didn't find) how right
connection main;
SET GLOBAL LOG_WARNINGS = 0;
--connect (conn0,localhost,root,,)
replace_result $port port $socket socket;
--error 1040
--connect(conn1,localhost,root,,)
disconnect conn0;
SLEEP 0.1; # tsarev: hack, but i don't know (and didn't find) how right
connection main;
SET GLOBAL max_connections = @old_max_connections;
SET GLOBAL log_warnings = @old_log_warnings;
let $log_error_= `SELECT @@GLOBAL.log_error`;
if(!`select LENGTH('$log_error_')`)
{
# MySQL Server on windows is started with --console and thus
# does not know the location of its .err log, use default location
let $log_error_ = $MYSQLTEST_VARDIR/log/mysqld.1.err;
}
--let log_error=$log_error_
--let log_file=percona.log_connection_error.err
--let log_file_full_path=$log_error
--let grep_pattern= Too many connections
--source log_grep.inc
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (id INT AUTO_INCREMENT, foo CHAR(255), PRIMARY KEY (id)) ENGINE=InnoDB;
INSERT INTO t1(foo) VALUES ('a'), ('b');
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
DROP TABLE t1;
# Test for innodb_flush_neighbor_pages=contiguous.
# The test is very crude: we simply overflow the buffer pool with such a number of
# new/modified pages that some flushing is bound to happen.
--source include/have_xtradb.inc
--source include/big_test.inc
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
CREATE TABLE t1 (id INT AUTO_INCREMENT, foo CHAR(255), PRIMARY KEY (id)) ENGINE=InnoDB;
INSERT INTO t1(foo) VALUES ('a'), ('b');
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
INSERT INTO t1(foo) SELECT foo FROM t1;
# TODO: cannot record a stable value here. A check of > 0 should be enough,
# but the variable is not accessible through INFORMATION_SCHEMA currently.
# SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages_flushed';
DROP TABLE t1;
show variables like 'innodb_buffer_pool_shm%';
Variable_name Value
innodb_buffer_pool_shm_checksum ON
innodb_buffer_pool_shm_key 123456
--source include/have_xtradb.inc
show variables like 'innodb_buffer_pool_shm%';
connect con1,localhost,root,,;
connect con2,localhost,root,,;
connect con3,localhost,root,,;
# Drop test table
drop table if exists t;
# Create test table
create table t(a INT PRIMARY KEY, b INT) engine=InnoDB;
# Insert two rows to test table
insert into t values(2,1);
insert into t values(1,2);
connection con1;
BEGIN;
SELECT b FROM t WHERE a=1 FOR UPDATE;
connection con2;
BEGIN;
SELECT b FROM t WHERE a=2 FOR UPDATE;
connection con1;
SELECT b FROM t WHERE a=2 FOR UPDATE;
connection con2;
SELECT b FROM t WHERE a=1 FOR UPDATE;
connection con1;
ROLLBACK;
connection con2;
ROLLBACK;
connection con3;
Deadlocks: 1
# Drop test table
drop table t;
--source include/have_xtradb.inc
connect (con1,localhost,root,,);
connect (con2,localhost,root,,);
connect (con3,localhost,root,,);
--echo # Drop test table
--disable_warnings
drop table if exists t;
--enable_warnings
--echo # Create test table
create table t(a INT PRIMARY KEY, b INT) engine=InnoDB;
--echo # Insert two rows to test table
insert into t values(2,1);
insert into t values(1,2);
#--echo # Save current deadlock count
let $current = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Innodb_deadlocks'`;
--disable_result_log
connection con1;
BEGIN; SELECT b FROM t WHERE a=1 FOR UPDATE;
connection con2;
BEGIN; SELECT b FROM t WHERE a=2 FOR UPDATE;
connection con1;
SEND SELECT b FROM t WHERE a=2 FOR UPDATE;
connection con2;
SEND SELECT b FROM t WHERE a=1 FOR UPDATE;
connection con1;
--error 0, ER_LOCK_DEADLOCK
reap;
ROLLBACK;
connection con2;
--error 0, ER_LOCK_DEADLOCK
reap;
ROLLBACK;
connection con3;
let $result = `SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Innodb_deadlocks'`;
--enable_result_log
let $diff = `SELECT $result - $current`;
echo Deadlocks: $diff;
--echo # Drop test table
drop table t;
CREATE TABLE t1(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
a CHAR(1) NOT NULL,
b CHAR(36) NOT NULL) ENGINE=InnoDB;
INSERT INTO t1(a,b) VALUES ('a','b');
INSERT INTO t1(a,b) SELECT a,b FROM t1;
INSERT INTO t1(a,b) SELECT a,b FROM t1;
INSERT INTO t1(a,b) SELECT a,b FROM t1;
INSERT INTO t1(a,b) SELECT a,b FROM t1;
ALTER TABLE t1 ADD KEY (a);
affected rows: 0
info: Records: 0 Duplicates: 0 Warnings: 0
EXPLAIN SELECT COUNT(*) FROM t1, t1 t2 WHERE t1.a = t2.a AND t1.b = t2.b;
id 1
select_type SIMPLE
table t1
type ALL
possible_keys a
key NULL
key_len NULL
ref NULL
rows 16
Extra
id 1
select_type SIMPLE
table t2
type ref
possible_keys a
key a
key_len 1
ref test.t1.a
rows 1
Extra Using where
ALTER TABLE t1 DROP KEY a;
SET expand_fast_index_creation = 1;
SELECT @@expand_fast_index_creation;
@@expand_fast_index_creation
1
ALTER TABLE t1 ADD KEY (a);
affected rows: 0
info: Records: 0 Duplicates: 0 Warnings: 0
EXPLAIN SELECT COUNT(*) FROM t1, t1 t2 WHERE t1.a = t2.a AND t1.b = t2.b;
id 1
select_type SIMPLE
table t1
type ALL
possible_keys a
key NULL
key_len NULL
ref NULL
rows 16
Extra
id 1
select_type SIMPLE
table t2
type ALL
possible_keys a
key NULL
key_len NULL
ref NULL
rows 16
Extra Using where; Using join buffer
SET expand_fast_index_creation = 0;
DROP TABLE t1;
--source include/have_innodb.inc
########################################################################
# Bug #857590: Fast index creation does not update index statistics
########################################################################
CREATE TABLE t1(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
a CHAR(1) NOT NULL,
b CHAR(36) NOT NULL) ENGINE=InnoDB;
INSERT INTO t1(a,b) VALUES ('a','b');
INSERT INTO t1(a,b) SELECT a,b FROM t1;
INSERT INTO t1(a,b) SELECT a,b FROM t1;
INSERT INTO t1(a,b) SELECT a,b FROM t1;
INSERT INTO t1(a,b) SELECT a,b FROM t1;
# Check that fast index creation is used
--enable_info
ALTER TABLE t1 ADD KEY (a);
--disable_info
# The default (wrong) plan due to bogus statistics
--vertical_results
EXPLAIN SELECT COUNT(*) FROM t1, t1 t2 WHERE t1.a = t2.a AND t1.b = t2.b;
--horizontal_results
ALTER TABLE t1 DROP KEY a;
SET expand_fast_index_creation = 1;
SELECT @@expand_fast_index_creation;
# Check that stats are updated with the option enabled
--enable_info
ALTER TABLE t1 ADD KEY (a);
--disable_info
--vertical_results
EXPLAIN SELECT COUNT(*) FROM t1, t1 t2 WHERE t1.a = t2.a AND t1.b = t2.b;
--horizontal_results
SET expand_fast_index_creation = 0;
DROP TABLE t1;
DROP TABLE IF EXISTS t1;
# Checking variables
SHOW VARIABLES LIKE 'innodb_fake_changes';
Variable_name Value
innodb_fake_changes OFF
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_fake_changes';
VARIABLE_VALUE
OFF
SET innodb_fake_changes=1;
SHOW VARIABLES LIKE 'innodb_fake_changes';
Variable_name Value
innodb_fake_changes ON
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_fake_changes';
VARIABLE_VALUE
ON
SET innodb_fake_changes=default;
SHOW VARIABLES LIKE 'innodb_fake_changes';
Variable_name Value
innodb_fake_changes OFF
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_fake_changes';
VARIABLE_VALUE
OFF
# Explicit COMMIT should fail when innodb_fake_changes is enabled
# DML should be fine
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
SET autocommit=0;
SET innodb_fake_changes=1;
BEGIN;
INSERT INTO t1 VALUES (2);
UPDATE t1 SET a=0;
DELETE FROM t1 LIMIT 1;
SELECT * FROM t1;
a
1
COMMIT;
ERROR HY000: Got error 131 "Command not supported by database" during COMMIT
SET innodb_fake_changes=default;
DROP TABLE t1;
# DDL must result in error
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
SET autocommit=0;
SET innodb_fake_changes=1;
BEGIN;
CREATE TABLE t2 (a INT) ENGINE=InnoDB;
ERROR HY000: Can't create table `test`.`t2` (errno: 131 "Command not supported by database")
DROP TABLE t1;
ERROR HY000: Storage engine InnoDB of the table `test`.`t1` doesn't have this option
TRUNCATE TABLE t1;
ERROR HY000: Got error 131 "Command not supported by database" during COMMIT
ALTER TABLE t1 ENGINE=MyISAM;
ERROR HY000: Got error 131 "Command not supported by database" during COMMIT
ROLLBACK;
SET innodb_fake_changes=default;
DROP TABLE t1;
--source include/have_xtradb.inc
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
--echo # Checking variables
SHOW VARIABLES LIKE 'innodb_fake_changes';
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_fake_changes';
SET innodb_fake_changes=1;
SHOW VARIABLES LIKE 'innodb_fake_changes';
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_fake_changes';
SET innodb_fake_changes=default;
SHOW VARIABLES LIKE 'innodb_fake_changes';
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='innodb_fake_changes';
--echo # Explicit COMMIT should fail when innodb_fake_changes is enabled
--echo # DML should be fine
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
SET autocommit=0;
SET innodb_fake_changes=1;
BEGIN;
INSERT INTO t1 VALUES (2);
UPDATE t1 SET a=0;
DELETE FROM t1 LIMIT 1;
SELECT * FROM t1;
--error 1180
COMMIT;
SET innodb_fake_changes=default;
DROP TABLE t1;
--echo # DDL must result in error
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
SET autocommit=0;
SET innodb_fake_changes=1;
BEGIN;
--error 1005
CREATE TABLE t2 (a INT) ENGINE=InnoDB;
--error 1031
DROP TABLE t1;
--error 1180
TRUNCATE TABLE t1;
--error 1180
ALTER TABLE t1 ENGINE=MyISAM;
ROLLBACK;
SET innodb_fake_changes=default;
DROP TABLE t1;
DROP TABLE IF EXISTS t1;
# Verifying that X_LOCK not acquired
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
connect conn1,localhost,root,,;
connection conn1;
SET autocommit=0;
SET innodb_fake_changes=1;
BEGIN;
SELECT * FROM t1 FOR UPDATE;
a
1
connection default;
SET innodb_lock_wait_timeout=3;
UPDATE t1 SET a=2;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
SELECT * FROM t1 LOCK IN SHARE MODE;
a
1
connection conn1;
ROLLBACK;
SET innodb_fake_changes=default;
DROP TABLE t1;
--source include/have_xtradb.inc
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
--echo # Verifying that X_LOCK not acquired
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
INSERT INTO t1 VALUES (1);
--connect (conn1,localhost,root,,)
--connection conn1
SET autocommit=0;
SET innodb_fake_changes=1;
BEGIN;
SELECT * FROM t1 FOR UPDATE;
--connection default
SET innodb_lock_wait_timeout=3;
--error 1205
UPDATE t1 SET a=2;
SELECT * FROM t1 LOCK IN SHARE MODE;
--connection conn1
ROLLBACK;
SET innodb_fake_changes=default;
DROP TABLE t1;
DROP TABLE IF EXISTS t1;
SET autocommit=0;
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
SHOW GLOBAL VARIABLES LIKE 'innodb_kill_idle_transaction';
Variable_name Value
innodb_kill_idle_transaction 0
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_kill_idle_transaction';
VARIABLE_NAME VARIABLE_VALUE
INNODB_KILL_IDLE_TRANSACTION 0
SET GLOBAL innodb_kill_idle_transaction=1;
SHOW GLOBAL VARIABLES LIKE 'innodb_kill_idle_transaction';
Variable_name Value
innodb_kill_idle_transaction 1
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_kill_idle_transaction';
VARIABLE_NAME VARIABLE_VALUE
INNODB_KILL_IDLE_TRANSACTION 1
BEGIN;
INSERT INTO t1 VALUES (1),(2),(3);
COMMIT;
SELECT * FROM t1;
a
1
2
3
BEGIN;
INSERT INTO t1 VALUES (4),(5),(6);
SELECT * FROM t1;
ERROR HY000: MySQL server has gone away
SELECT * FROM t1;
a
1
2
3
DROP TABLE t1;
SET GLOBAL innodb_kill_idle_transaction=0;
SHOW GLOBAL VARIABLES LIKE 'innodb_kill_idle_transaction';
Variable_name Value
innodb_kill_idle_transaction 0
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_kill_idle_transaction';
VARIABLE_NAME VARIABLE_VALUE
INNODB_KILL_IDLE_TRANSACTION 0
--source include/have_innodb.inc
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
SET autocommit=0;
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
--source percona_innodb_kill_idle_trx_show.inc
SET GLOBAL innodb_kill_idle_transaction=1;
--source percona_innodb_kill_idle_trx_show.inc
BEGIN;
INSERT INTO t1 VALUES (1),(2),(3);
COMMIT;
SELECT * FROM t1;
BEGIN;
INSERT INTO t1 VALUES (4),(5),(6);
sleep 3;
--enable_reconnect
--error 2006 --error CR_SERVER_GONE_ERROR
SELECT * FROM t1;
SELECT * FROM t1;
DROP TABLE t1;
SET GLOBAL innodb_kill_idle_transaction=0;
--source percona_innodb_kill_idle_trx_show.inc
DROP TABLE IF EXISTS t1;
SET autocommit=0;
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
SHOW GLOBAL VARIABLES LIKE 'innodb_kill_idle_transaction';
Variable_name Value
innodb_kill_idle_transaction 0
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_kill_idle_transaction';
VARIABLE_NAME VARIABLE_VALUE
INNODB_KILL_IDLE_TRANSACTION 0
SET GLOBAL innodb_kill_idle_transaction=5;
SHOW GLOBAL VARIABLES LIKE 'innodb_kill_idle_transaction';
Variable_name Value
innodb_kill_idle_transaction 5
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_kill_idle_transaction';
VARIABLE_NAME VARIABLE_VALUE
INNODB_KILL_IDLE_TRANSACTION 5
BEGIN;
INSERT INTO t1 VALUES (1),(2),(3);
COMMIT;
SELECT * FROM t1;
a
1
2
3
### Locking rows. Lock should be released when idle trx is killed.
BEGIN;
SELECT * FROM t1 FOR UPDATE;
a
1
2
3
UPDATE t1 set a=4;
SELECT * FROM t1;
a
4
4
4
DROP TABLE t1;
SET GLOBAL innodb_kill_idle_transaction=0;
SHOW GLOBAL VARIABLES LIKE 'innodb_kill_idle_transaction';
Variable_name Value
innodb_kill_idle_transaction 0
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_kill_idle_transaction';
VARIABLE_NAME VARIABLE_VALUE
INNODB_KILL_IDLE_TRANSACTION 0
--source include/have_innodb.inc
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
SET autocommit=0;
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
--source percona_innodb_kill_idle_trx_show.inc
SET GLOBAL innodb_kill_idle_transaction=5;
--source percona_innodb_kill_idle_trx_show.inc
connect (conn1,localhost,root,,);
connection conn1;
BEGIN;
INSERT INTO t1 VALUES (1),(2),(3);
COMMIT;
SELECT * FROM t1;
--echo ### Locking rows. Lock should be released when idle trx is killed.
BEGIN;
SELECT * FROM t1 FOR UPDATE;
connection default;
UPDATE t1 set a=4;
SELECT * FROM t1;
DROP TABLE t1;
SET GLOBAL innodb_kill_idle_transaction=0;
--source percona_innodb_kill_idle_trx_show.inc
SHOW GLOBAL VARIABLES LIKE 'innodb_kill_idle_transaction';
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='innodb_kill_idle_transaction';
SET @old_log_warnings = @@log_warnings;
SET @old_log_warnings_suppress = @@log_warnings_suppress;
DROP TABLE IF EXISTS t1;
CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(20));
SET GLOBAL log_warnings_suppress='';
SET GLOBAL LOG_WARNINGS=0;
SHOW GLOBAL VARIABLES LIKE 'log_warnings_suppress';
Variable_name Value
log_warnings_suppress
INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
SET GLOBAL LOG_WARNINGS=1;
INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
SET GLOBAL log_warnings_suppress='1592';
SET GLOBAL LOG_WARNINGS=0;
INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
SET GLOBAL LOG_WARNINGS=1;
INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
Warnings:
Note 1592 Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave.
DROP TABLE t1;
SET GLOBAL log_warnings = @old_log_warnings;
SET GLOBAL log_warnings_suppress = @old_log_warnings_suppress;
# Count the number of times the "Unsafe" message was printed
# to the error log.
Occurrences: 1
-- source include/have_log_bin.inc
-- source include/have_binlog_format_statement.inc
SET @old_log_warnings = @@log_warnings;
SET @old_log_warnings_suppress = @@log_warnings_suppress;
--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
CREATE TABLE t1 (a VARCHAR(36), b VARCHAR(20));
SET GLOBAL log_warnings_suppress='';
SET GLOBAL LOG_WARNINGS=0;
SHOW GLOBAL VARIABLES LIKE 'log_warnings_suppress';
INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
SET GLOBAL LOG_WARNINGS=1;
INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
SET GLOBAL log_warnings_suppress='1592';
SET GLOBAL LOG_WARNINGS=0;
INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
SET GLOBAL LOG_WARNINGS=1;
INSERT INTO t1 VALUES(UUID(), 'suppress_1592');
DROP TABLE t1;
SET GLOBAL log_warnings = @old_log_warnings;
SET GLOBAL log_warnings_suppress = @old_log_warnings_suppress;
let $log_error_= `SELECT @@GLOBAL.log_error`;
if(!`select LENGTH('$log_error_')`)
{
# MySQL Server on windows is started with --console and thus
# does not know the location of its .err log, use default location
let $log_error_ = $MYSQLTEST_VARDIR/log/mysqld.1.err;
}
# Assign env variable LOG_ERROR
let LOG_ERROR=$log_error_;
--echo # Count the number of times the "Unsafe" message was printed
--echo # to the error log.
perl;
use strict;
my $log_error= $ENV{'LOG_ERROR'} or die "LOG_ERROR not set";
open(FILE, "$log_error") or die("Unable to open $log_error: $!\n");
my $count = () = grep(/suppress_1592/g,<FILE>);
print "Occurrences: $count\n";
close(FILE);
EOF
DROP TABLE IF EXISTS t1;
DROP TABLE IF EXISTS t2;
CREATE TABLE t2 (a INT);
INSERT INTO t2 VALUES(10);
INSERT INTO t2 VALUES(10);
INSERT INTO t2 VALUES(20);
INSERT INTO t2 VALUES(10);
INSERT INTO t2 VALUES(20);
SET DEBUG_SYNC= 'locked_table_name SIGNAL thread1_ready WAIT_FOR threads_dumped';
CREATE TABLE t1 (a INT);
SET DEBUG_SYNC= 'now WAIT_FOR thread1_ready';
SET DEBUG_SYNC= 'execute_command_after_close_tables SIGNAL thread2_ready WAIT_FOR threads_dumped';
SELECT a FROM t2 WHERE a > 15;
SET DEBUG_SYNC= 'now WAIT_FOR thread2_ready';
SHOW PROCESSLIST;
Id User Host db Command Time State Info Rows_sent Rows_examined Rows_read
### root ### test Query ### ### SHOW PROCESSLIST 0 0 2
### root ### test Query ### ### CREATE TABLE t1 (a INT) 0 0 1
### root ### test Query ### ### SELECT a FROM t2 WHERE a > 15 2 5 6
SELECT id, info, rows_sent, rows_examined, rows_read FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id;
id info rows_sent rows_examined rows_read
### SELECT id, info, rows_sent, rows_examined, rows_read FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id 0 0 1
### CREATE TABLE t1 (a INT) 0 0 1
### SELECT a FROM t2 WHERE a > 15 2 5 6
SET DEBUG_SYNC= 'now SIGNAL threads_dumped';
a
20
20
SET DEBUG_SYNC= 'sent_row SIGNAL thread1_ready WAIT_FOR threads_dumped';
SELECT a FROM t2 WHERE a < 15;
SET DEBUG_SYNC= 'now WAIT_FOR thread1_ready';
SET DEBUG_SYNC= 'sent_row SIGNAL thread2_ready WAIT_FOR threads_dumped';
SELECT a FROM t2 WHERE a > 15;
SET DEBUG_SYNC= 'now WAIT_FOR thread2_ready';
SHOW PROCESSLIST;
Id User Host db Command Time State Info Rows_sent Rows_examined Rows_read
### root ### test Query ### ### SHOW PROCESSLIST 0 0 4
### root ### test Query ### ### SELECT a FROM t2 WHERE a < 15 1 0 1
### root ### test Query ### ### SELECT a FROM t2 WHERE a > 15 1 0 3
SELECT id, info, rows_sent, rows_examined, rows_read FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id;
id info rows_sent rows_examined rows_read
### SELECT id, info, rows_sent, rows_examined, rows_read FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id 0 0 1
### SELECT a FROM t2 WHERE a < 15 1 0 1
### SELECT a FROM t2 WHERE a > 15 1 0 3
SET DEBUG_SYNC= 'now SIGNAL threads_dumped';
a
10
10
10
a
20
20
SET DEBUG_SYNC= 'execute_command_after_close_tables SIGNAL thread1_ready WAIT_FOR threads_dumped';
UPDATE t2 SET a = 15 WHERE a = 20;
SET DEBUG_SYNC= 'now WAIT_FOR thread1_ready';
SET DEBUG_SYNC= 'execute_command_after_close_tables SIGNAL thread2_ready WAIT_FOR threads_dumped';
UPDATE t2 SET a = 15 WHERE a = 10;
SET DEBUG_SYNC= 'now WAIT_FOR thread2_ready';
SHOW PROCESSLIST;
Id User Host db Command Time State Info Rows_sent Rows_examined Rows_read
### root ### test Query ### ### SHOW PROCESSLIST 0 0 4
### root ### test Query ### ### UPDATE t2 SET a = 15 WHERE a = 20 0 5 6
### root ### test Query ### ### UPDATE t2 SET a = 15 WHERE a = 10 0 5 6
SELECT id, info, rows_sent, rows_examined, rows_read FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id;
id info rows_sent rows_examined rows_read
### SELECT id, info, rows_sent, rows_examined, rows_read FROM INFORMATION_SCHEMA.PROCESSLIST ORDER BY id 0 0 1
### UPDATE t2 SET a = 15 WHERE a = 20 0 5 6
### UPDATE t2 SET a = 15 WHERE a = 10 0 5 6
SET DEBUG_SYNC= 'now SIGNAL threads_dumped';
DROP TABLES t1, t2;
# Testing of INFORMATION_SCHEMA.PROCESSLIST fields ROWS_SENT, ROWS_EXAMINED, ROWS_READ
--source include/have_debug_sync.inc
--disable_warnings
DROP TABLE IF EXISTS t1;
DROP TABLE IF EXISTS t2;
--enable_warnings
CREATE TABLE t2 (a INT);
INSERT INTO t2 VALUES(10);
INSERT INTO t2 VALUES(10);
INSERT INTO t2 VALUES(20);
INSERT INTO t2 VALUES(10);
INSERT INTO t2 VALUES(20);
--connect (conn1, localhost, root, ,)
--connect (conn2, localhost, root, ,)
--connection conn1
SET DEBUG_SYNC= 'locked_table_name SIGNAL thread1_ready WAIT_FOR threads_dumped';
send CREATE TABLE t1 (a INT);
--connection default
SET DEBUG_SYNC= 'now WAIT_FOR thread1_ready';
--connection conn2
SET DEBUG_SYNC= 'execute_command_after_close_tables SIGNAL thread2_ready WAIT_FOR threads_dumped';
send SELECT a FROM t2 WHERE a > 15;
--connection default
SET DEBUG_SYNC= 'now WAIT_FOR thread2_ready';
--source include/percona_processlist_row_stats_show.inc
--connection conn1
reap;
--connection conn2
reap;
--connection conn1
SET DEBUG_SYNC= 'sent_row SIGNAL thread1_ready WAIT_FOR threads_dumped';
send SELECT a FROM t2 WHERE a < 15;
--connection default
SET DEBUG_SYNC= 'now WAIT_FOR thread1_ready';
--connection conn2
SET DEBUG_SYNC= 'sent_row SIGNAL thread2_ready WAIT_FOR threads_dumped';
send SELECT a FROM t2 WHERE a > 15;
--connection default
SET DEBUG_SYNC= 'now WAIT_FOR thread2_ready';
--source include/percona_processlist_row_stats_show.inc
--connection conn1
reap;
--connection conn2
reap;
--connection conn1
SET DEBUG_SYNC= 'execute_command_after_close_tables SIGNAL thread1_ready WAIT_FOR threads_dumped';
send UPDATE t2 SET a = 15 WHERE a = 20;
--connection default
SET DEBUG_SYNC= 'now WAIT_FOR thread1_ready';
--connection conn2
SET DEBUG_SYNC= 'execute_command_after_close_tables SIGNAL thread2_ready WAIT_FOR threads_dumped';
send UPDATE t2 SET a = 15 WHERE a = 10;
--connection default
SET DEBUG_SYNC= 'now WAIT_FOR thread2_ready';
--source include/percona_processlist_row_stats_show.inc
--connection conn1
reap;
--connection conn2
reap;
--connection default
disconnect conn1;
disconnect conn2;
DROP TABLES t1, t2;
--source include/percona_query_cache_with_comments_clear.inc
let $query=/* with comment first */select * from t1;
eval $query;
--source include/percona_query_cache_with_comments_eval.inc
let $query=# with comment first
select * from t1;
--source include/percona_query_cache_with_comments_eval.inc
let $query=-- with comment first
select * from t1;
--source include/percona_query_cache_with_comments_eval.inc
let $query=/* with comment first and "quote" */select * from t1;
--source include/percona_query_cache_with_comments_eval.inc
let $query=# with comment first and "quote"
select * from t1;
--source include/percona_query_cache_with_comments_eval.inc
let $query=-- with comment first and "quote"
select * from t1;
--source include/percona_query_cache_with_comments_eval.inc
let $query=
/* with comment and whitespaces first */select * from t1;
--source include/percona_query_cache_with_comments_eval.inc
let $query=
# with comment and whitespaces first
select * from t1;
--source include/percona_query_cache_with_comments_eval.inc
let $query=
-- with comment and whitespaces first
select * from t1;
--source include/percona_query_cache_with_comments_eval.inc
let $internal=* internal comment *;
let $query=select * /$internal/ from t1;
--source include/percona_query_cache_with_comments_eval.inc
let $query=select */$internal/ from t1;
--source include/percona_query_cache_with_comments_eval.inc
let $query=select */$internal/from t1;
--source include/percona_query_cache_with_comments_eval.inc
let $internal=* internal comment with "quote" *;
let $query=select * /$internal/ from t1;
--source include/percona_query_cache_with_comments_eval.inc
let $query=select */$internal/ from t1;
--source include/percona_query_cache_with_comments_eval.inc
let $query=select */$internal/from t1;
--source include/percona_query_cache_with_comments_eval.inc
let $query=select * from t1
;
--source include/percona_query_cache_with_comments_eval.inc
let $query=select * from t1 ;
--source include/percona_query_cache_with_comments_eval.inc
let $query=select * from t1 ;
--source include/percona_query_cache_with_comments_eval.inc
let $query=select * from t1
/* comment in the end */;
--source include/percona_query_cache_with_comments_eval.inc
let $query=select * from t1
/* comment in the end */
;
--source include/percona_query_cache_with_comments_eval.inc
let $query=select * from t1 #comment in the end;
--source include/percona_query_cache_with_comments_eval.inc
let $query=select * from t1 #comment in the end
;
--source include/percona_query_cache_with_comments_eval.inc
let $query=select * from t1 -- comment in the end;
--source include/percona_query_cache_with_comments_eval.inc
let $query=select * from t1 -- comment in the end
;
--source include/percona_query_cache_with_comments_eval.inc
SET GLOBAL query_exec_time=0.1;
--source include/have_response_time_distribution.inc
--source include/have_debug.inc
--source include/have_binlog_format_statement.inc
--source include/master-slave.inc
--let base=1
--source include/query_response_time-replication.inc
--let base=2
--source include/query_response_time-replication.inc
--let base=10
--source include/query_response_time-replication.inc
--let base=7
--source include/query_response_time-replication.inc
--let base=156
--source include/query_response_time-replication.inc
--let base=1000
--source include/query_response_time-replication.inc
--let base=1001
--source include/query_response_time-replication.inc
--source include/rpl_end.inc
SET GLOBAL query_exec_time=default;
connection slave;
SET GLOBAL query_exec_time=default;
--source include/have_response_time_distribution.inc
--source include/have_debug.inc
CREATE TABLE t(a INT);
delimiter ^;
CREATE PROCEDURE test_f(t DECIMAL(3,2))
BEGIN
SET SESSION query_exec_time=t;
INSERT INTO t VALUES(1);
SET SESSION query_exec_time=0.1;
DELETE FROM t;
END^
delimiter ;^
--let base=1
--source include/query_response_time-stored.inc
--let base=2
--source include/query_response_time-stored.inc
--let base=10
--source include/query_response_time-stored.inc
--let base=7
--source include/query_response_time-stored.inc
--let base=156
--source include/query_response_time-stored.inc
--let base=1000
--source include/query_response_time-stored.inc
--let base=1001
--source include/query_response_time-stored.inc
SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
DROP PROCEDURE test_f;
DROP TABLE t;
--source include/have_response_time_distribution.inc
--source include/have_debug.inc
--let base=1
--source include/query_response_time.inc
--let base=2
--source include/query_response_time.inc
--let base=10
--source include/query_response_time.inc
--let base=7
--source include/query_response_time.inc
--let base=156
--source include/query_response_time.inc
--let base=1000
--source include/query_response_time.inc
--let base=1001
--source include/query_response_time.inc
SET GLOBAL QUERY_RESPONSE_TIME_RANGE_BASE=default;
SET GLOBAL QUERY_RESPONSE_TIME_STATS=default;
SELECT d.count,
(SELECT SUM(a.count) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as a WHERE a.count != 0) as query_count,
(SELECT SUM((b.total * 1000000) DIV 1000000) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as b WHERE b.count != 0) as query_total,
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as c WHERE c.count != 0) as not_zero_region_count,
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME) as region_count
FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME as d WHERE d.count > 0;
SELECT COUNT(*) as region_count FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
SELECT time FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
SET SESSION debug="+d,query_exec_time_0.31";
SET SESSION debug="+d,query_exec_time_0.32";
SET SESSION debug="+d,query_exec_time_0.33";
SET SESSION debug="+d,query_exec_time_0.34";
SET SESSION debug="+d,query_exec_time_0.35";
SET SESSION debug="+d,query_exec_time_0.36";
SET SESSION debug="+d,query_exec_time_0.37";
SET SESSION debug="+d,query_exec_time_0.38";
SET SESSION debug="+d,query_exec_time_0.39";
SET SESSION debug="+d,query_exec_time_0.4";
SET SESSION debug="+d,query_exec_time_1.1";
SET SESSION debug="+d,query_exec_time_1.2";
SET SESSION debug="+d,query_exec_time_1.3";
SET SESSION debug="+d,query_exec_time_1.5";
SET SESSION debug="+d,query_exec_time_1.4";
SET SESSION debug="+d,query_exec_time_0.5";
SET SESSION debug="+d,query_exec_time_2.1";
SET SESSION debug="+d,query_exec_time_2.3";
SET SESSION debug="+d,query_exec_time_2.5";
--source have_response_time_distribution.inc
--source include/have_xtradb.inc
SELECT Variable_name FROM INFORMATION_SCHEMA.SESSION_VARIABLES ORDER BY 1;
SELECT Variable_name FROM INFORMATION_SCHEMA.SESSION_VARIABLES ORDER BY 1;
Variable_name
AUTOCOMMIT
AUTOMATIC_SP_PRIVILEGES
AUTO_INCREMENT_INCREMENT
AUTO_INCREMENT_OFFSET
BACK_LOG
BASEDIR
BIG_TABLES
BINLOG_CACHE_SIZE
BINLOG_DIRECT_NON_TRANSACTIONAL_UPDATES
BINLOG_FORMAT
BINLOG_STMT_CACHE_SIZE
BULK_INSERT_BUFFER_SIZE
CHARACTER_SETS_DIR
CHARACTER_SET_CLIENT
CHARACTER_SET_CONNECTION
CHARACTER_SET_DATABASE
CHARACTER_SET_FILESYSTEM
CHARACTER_SET_RESULTS
CHARACTER_SET_SERVER
CHARACTER_SET_SYSTEM
COLLATION_CONNECTION
COLLATION_DATABASE
COLLATION_SERVER
COMPLETION_TYPE
CONCURRENT_INSERT
CONNECT_TIMEOUT
DATADIR
DATETIME_FORMAT
DATE_FORMAT
DEBUG
DEBUG_SYNC
DEFAULT_STORAGE_ENGINE
DEFAULT_WEEK_FORMAT
DELAYED_INSERT_LIMIT
DELAYED_INSERT_TIMEOUT
DELAYED_QUEUE_SIZE
DELAY_KEY_WRITE
DIV_PRECISION_INCREMENT
ENGINE_CONDITION_PUSHDOWN
ERROR_COUNT
EVENT_SCHEDULER
EXPAND_FAST_INDEX_CREATION
EXPIRE_LOGS_DAYS
EXTERNAL_USER
FAST_INDEX_CREATION
FLUSH
FLUSH_TIME
FOREIGN_KEY_CHECKS
FT_BOOLEAN_SYNTAX
FT_MAX_WORD_LEN
FT_MIN_WORD_LEN
FT_QUERY_EXPANSION_LIMIT
FT_STOPWORD_FILE
GENERAL_LOG
GENERAL_LOG_FILE
GROUP_CONCAT_MAX_LEN
HAVE_COMPRESS
HAVE_CRYPT
HAVE_CSV
HAVE_DYNAMIC_LOADING
HAVE_GEOMETRY
HAVE_INNODB
HAVE_NDBCLUSTER
HAVE_OPENSSL
HAVE_PARTITIONING
HAVE_PROFILING
HAVE_QUERY_CACHE
HAVE_RESPONSE_TIME_DISTRIBUTION
HAVE_RTREE_KEYS
HAVE_SSL
HAVE_SYMLINK
HOSTNAME
IDENTITY
IGNORE_BUILTIN_INNODB
INIT_CONNECT
INIT_FILE
INIT_SLAVE
INNODB_ADAPTIVE_FLUSHING
INNODB_ADAPTIVE_FLUSHING_METHOD
INNODB_ADAPTIVE_HASH_INDEX
INNODB_ADAPTIVE_HASH_INDEX_PARTITIONS
INNODB_ADDITIONAL_MEM_POOL_SIZE
INNODB_AUTOEXTEND_INCREMENT
INNODB_AUTOINC_LOCK_MODE
INNODB_BLOCKING_BUFFER_POOL_RESTORE
INNODB_BUFFER_POOL_INSTANCES
INNODB_BUFFER_POOL_RESTORE_AT_STARTUP
INNODB_BUFFER_POOL_SHM_CHECKSUM
INNODB_BUFFER_POOL_SHM_KEY
INNODB_BUFFER_POOL_SIZE
INNODB_CHANGE_BUFFERING
INNODB_CHANGE_BUFFERING_DEBUG
INNODB_CHECKPOINT_AGE_TARGET
INNODB_CHECKSUMS
INNODB_COMMIT_CONCURRENCY
INNODB_CONCURRENCY_TICKETS
INNODB_CORRUPT_TABLE_ACTION
INNODB_DATA_FILE_PATH
INNODB_DATA_HOME_DIR
INNODB_DICT_SIZE_LIMIT
INNODB_DOUBLEWRITE
INNODB_DOUBLEWRITE_FILE
INNODB_FAKE_CHANGES
INNODB_FAST_CHECKSUM
INNODB_FAST_SHUTDOWN
INNODB_FILE_FORMAT
INNODB_FILE_FORMAT_CHECK
INNODB_FILE_FORMAT_MAX
INNODB_FILE_PER_TABLE
INNODB_FLUSH_CHECKPOINT_DEBUG
INNODB_FLUSH_LOG_AT_TRX_COMMIT
INNODB_FLUSH_METHOD
INNODB_FLUSH_NEIGHBOR_PAGES
INNODB_FORCE_LOAD_CORRUPTED
INNODB_FORCE_RECOVERY
INNODB_IBUF_ACCEL_RATE
INNODB_IBUF_ACTIVE_CONTRACT
INNODB_IBUF_MAX_SIZE
INNODB_IMPORT_TABLE_FROM_XTRABACKUP
INNODB_IO_CAPACITY
INNODB_KILL_IDLE_TRANSACTION
INNODB_LARGE_PREFIX
INNODB_LAZY_DROP_TABLE
INNODB_LOCKS_UNSAFE_FOR_BINLOG
INNODB_LOCK_WAIT_TIMEOUT
INNODB_LOG_BLOCK_SIZE
INNODB_LOG_BUFFER_SIZE
INNODB_LOG_FILES_IN_GROUP
INNODB_LOG_FILE_SIZE
INNODB_LOG_GROUP_HOME_DIR
INNODB_MAX_DIRTY_PAGES_PCT
INNODB_MAX_PURGE_LAG
INNODB_MIRRORED_LOG_GROUPS
INNODB_OLD_BLOCKS_PCT
INNODB_OLD_BLOCKS_TIME
INNODB_OPEN_FILES
INNODB_PAGE_SIZE
INNODB_PURGE_BATCH_SIZE
INNODB_PURGE_THREADS
INNODB_RANDOM_READ_AHEAD
INNODB_READ_AHEAD
INNODB_READ_AHEAD_THRESHOLD
INNODB_READ_IO_THREADS
INNODB_RECOVERY_STATS
INNODB_RECOVERY_UPDATE_RELAY_LOG
INNODB_REPLICATION_DELAY
INNODB_ROLLBACK_ON_TIMEOUT
INNODB_ROLLBACK_SEGMENTS
INNODB_SHOW_LOCKS_HELD
INNODB_SHOW_VERBOSE_LOCKS
INNODB_SPIN_WAIT_DELAY
INNODB_STATS_AUTO_UPDATE
INNODB_STATS_METHOD
INNODB_STATS_ON_METADATA
INNODB_STATS_SAMPLE_PAGES
INNODB_STATS_UPDATE_NEED_LOCK
INNODB_STRICT_MODE
INNODB_SUPPORT_XA
INNODB_SYNC_SPIN_LOOPS
INNODB_TABLE_LOCKS
INNODB_THREAD_CONCURRENCY
INNODB_THREAD_CONCURRENCY_TIMER_BASED
INNODB_THREAD_SLEEP_DELAY
INNODB_USE_GLOBAL_FLUSH_LOG_AT_TRX_COMMIT
INNODB_USE_NATIVE_AIO
INNODB_USE_SYS_MALLOC
INNODB_USE_SYS_STATS_TABLE
INNODB_VERSION
INNODB_WRITE_IO_THREADS
INSERT_ID
INTERACTIVE_TIMEOUT
JOIN_BUFFER_SIZE
KEEP_FILES_ON_CREATE
KEY_BUFFER_SIZE
KEY_CACHE_AGE_THRESHOLD
KEY_CACHE_BLOCK_SIZE
KEY_CACHE_DIVISION_LIMIT
LARGE_FILES_SUPPORT
LARGE_PAGES
LARGE_PAGE_SIZE
LAST_INSERT_ID
LC_MESSAGES
LC_MESSAGES_DIR
LC_TIME_NAMES
LICENSE
LOCAL_INFILE
LOCKED_IN_MEMORY
LOCK_WAIT_TIMEOUT
LOG
LOG_BIN
LOG_BIN_TRUST_FUNCTION_CREATORS
LOG_ERROR
LOG_OUTPUT
LOG_QUERIES_NOT_USING_INDEXES
LOG_SLAVE_UPDATES
LOG_SLOW_ADMIN_STATEMENTS
LOG_SLOW_FILTER
LOG_SLOW_QUERIES
LOG_SLOW_RATE_LIMIT
LOG_SLOW_SLAVE_STATEMENTS
LOG_SLOW_SP_STATEMENTS
LOG_SLOW_VERBOSITY
LOG_WARNINGS
LOG_WARNINGS_SUPPRESS
LONG_QUERY_TIME
LOWER_CASE_FILE_SYSTEM
LOWER_CASE_TABLE_NAMES
LOW_PRIORITY_UPDATES
MAX_ALLOWED_PACKET
MAX_BINLOG_CACHE_SIZE
MAX_BINLOG_SIZE
MAX_BINLOG_STMT_CACHE_SIZE
MAX_CONNECTIONS
MAX_CONNECT_ERRORS
MAX_DELAYED_THREADS
MAX_ERROR_COUNT
MAX_HEAP_TABLE_SIZE
MAX_INSERT_DELAYED_THREADS
MAX_JOIN_SIZE
MAX_LENGTH_FOR_SORT_DATA
MAX_LONG_DATA_SIZE
MAX_PREPARED_STMT_COUNT
MAX_RELAY_LOG_SIZE
MAX_SEEKS_FOR_KEY
MAX_SORT_LENGTH
MAX_SP_RECURSION_DEPTH
MAX_TMP_TABLES
MAX_USER_CONNECTIONS
MAX_WRITE_LOCK_COUNT
METADATA_LOCKS_CACHE_SIZE
MIN_EXAMINED_ROW_LIMIT
MULTI_RANGE_COUNT
MYISAM_DATA_POINTER_SIZE
MYISAM_MAX_SORT_FILE_SIZE
MYISAM_MMAP_SIZE
MYISAM_RECOVER_OPTIONS
MYISAM_REPAIR_THREADS
MYISAM_SORT_BUFFER_SIZE
MYISAM_STATS_METHOD
MYISAM_USE_MMAP
NET_BUFFER_LENGTH
NET_READ_TIMEOUT
NET_RETRY_COUNT
NET_WRITE_TIMEOUT
NEW
OLD
OLD_ALTER_TABLE
OLD_PASSWORDS
OPEN_FILES_LIMIT
OPTIMIZER_FIX
OPTIMIZER_PRUNE_LEVEL
OPTIMIZER_SEARCH_DEPTH
OPTIMIZER_SWITCH
PERFORMANCE_SCHEMA
PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_LONG_SIZE
PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_SIZE
PERFORMANCE_SCHEMA_MAX_COND_CLASSES
PERFORMANCE_SCHEMA_MAX_COND_INSTANCES
PERFORMANCE_SCHEMA_MAX_FILE_CLASSES
PERFORMANCE_SCHEMA_MAX_FILE_HANDLES
PERFORMANCE_SCHEMA_MAX_FILE_INSTANCES
PERFORMANCE_SCHEMA_MAX_MUTEX_CLASSES
PERFORMANCE_SCHEMA_MAX_MUTEX_INSTANCES
PERFORMANCE_SCHEMA_MAX_RWLOCK_CLASSES
PERFORMANCE_SCHEMA_MAX_RWLOCK_INSTANCES
PERFORMANCE_SCHEMA_MAX_TABLE_HANDLES
PERFORMANCE_SCHEMA_MAX_TABLE_INSTANCES
PERFORMANCE_SCHEMA_MAX_THREAD_CLASSES
PERFORMANCE_SCHEMA_MAX_THREAD_INSTANCES
PID_FILE
PLUGIN_DIR
PORT
PRELOAD_BUFFER_SIZE
PROFILING
PROFILING_HISTORY_SIZE
PROTOCOL_VERSION
PROXY_USER
PSEUDO_THREAD_ID
QUERY_ALLOC_BLOCK_SIZE
QUERY_CACHE_LIMIT
QUERY_CACHE_MIN_RES_UNIT
QUERY_CACHE_SIZE
QUERY_CACHE_STRIP_COMMENTS
QUERY_CACHE_TYPE
QUERY_CACHE_WLOCK_INVALIDATE
QUERY_EXEC_TIME
QUERY_PREALLOC_SIZE
QUERY_RESPONSE_TIME_RANGE_BASE
QUERY_RESPONSE_TIME_STATS
RAND_SEED1
RAND_SEED2
RANGE_ALLOC_BLOCK_SIZE
READ_BUFFER_SIZE
READ_ONLY
READ_RND_BUFFER_SIZE
RELAY_LOG
RELAY_LOG_INDEX
RELAY_LOG_INFO_FILE
RELAY_LOG_PURGE
RELAY_LOG_RECOVERY
RELAY_LOG_SPACE_LIMIT
REPORT_HOST
REPORT_PASSWORD
REPORT_PORT
REPORT_USER
RPL_RECOVERY_RANK
SECURE_AUTH
SECURE_FILE_PRIV
SERVER_ID
SKIP_EXTERNAL_LOCKING
SKIP_NAME_RESOLVE
SKIP_NETWORKING
SKIP_SHOW_DATABASE
SLAVE_COMPRESSED_PROTOCOL
SLAVE_EXEC_MODE
SLAVE_LOAD_TMPDIR
SLAVE_NET_TIMEOUT
SLAVE_SKIP_ERRORS
SLAVE_TRANSACTION_RETRIES
SLAVE_TYPE_CONVERSIONS
SLOW_LAUNCH_TIME
SLOW_QUERY_LOG
SLOW_QUERY_LOG_FILE
SLOW_QUERY_LOG_TIMESTAMP_ALWAYS
SLOW_QUERY_LOG_TIMESTAMP_PRECISION
SLOW_QUERY_LOG_USE_GLOBAL_CONTROL
SOCKET
SORT_BUFFER_SIZE
SQL_AUTO_IS_NULL
SQL_BIG_SELECTS
SQL_BIG_TABLES
SQL_BUFFER_RESULT
SQL_LOG_BIN
SQL_LOG_OFF
SQL_LOW_PRIORITY_UPDATES
SQL_MAX_JOIN_SIZE
SQL_MODE
SQL_NOTES
SQL_QUOTE_SHOW_CREATE
SQL_SAFE_UPDATES
SQL_SELECT_LIMIT
SQL_SLAVE_SKIP_COUNTER
SQL_WARNINGS
SSL_CA
SSL_CAPATH
SSL_CERT
SSL_CIPHER
SSL_KEY
STORAGE_ENGINE
SYNC_BINLOG
SYNC_FRM
SYNC_MASTER_INFO
SYNC_RELAY_LOG
SYNC_RELAY_LOG_INFO
SYSTEM_TIME_ZONE
TABLE_DEFINITION_CACHE
TABLE_OPEN_CACHE
THREAD_CACHE_SIZE
THREAD_CONCURRENCY
THREAD_HANDLING
THREAD_STACK
THREAD_STATISTICS
TIMED_MUTEXES
TIMESTAMP
TIME_FORMAT
TIME_ZONE
TMPDIR
TMP_TABLE_SIZE
TRANSACTION_ALLOC_BLOCK_SIZE
TRANSACTION_PREALLOC_SIZE
TX_ISOLATION
UNIQUE_CHECKS
UPDATABLE_VIEWS_WITH_LIMIT
USERSTAT
VERSION
VERSION_COMMENT
VERSION_COMPILE_MACHINE
VERSION_COMPILE_OS
WAIT_TIMEOUT
WARNING_COUNT
--source include/have_debug.inc
--source percona_server_variables.inc
SELECT Variable_name FROM INFORMATION_SCHEMA.SESSION_VARIABLES ORDER BY 1;
Variable_name
AUTOCOMMIT
AUTOMATIC_SP_PRIVILEGES
AUTO_INCREMENT_INCREMENT
AUTO_INCREMENT_OFFSET
BACK_LOG
BASEDIR
BIG_TABLES
BINLOG_CACHE_SIZE
BINLOG_DIRECT_NON_TRANSACTIONAL_UPDATES
BINLOG_FORMAT
BINLOG_STMT_CACHE_SIZE
BULK_INSERT_BUFFER_SIZE
CHARACTER_SETS_DIR
CHARACTER_SET_CLIENT
CHARACTER_SET_CONNECTION
CHARACTER_SET_DATABASE
CHARACTER_SET_FILESYSTEM
CHARACTER_SET_RESULTS
CHARACTER_SET_SERVER
CHARACTER_SET_SYSTEM
COLLATION_CONNECTION
COLLATION_DATABASE
COLLATION_SERVER
COMPLETION_TYPE
CONCURRENT_INSERT
CONNECT_TIMEOUT
DATADIR
DATETIME_FORMAT
DATE_FORMAT
DEFAULT_STORAGE_ENGINE
DEFAULT_WEEK_FORMAT
DELAYED_INSERT_LIMIT
DELAYED_INSERT_TIMEOUT
DELAYED_QUEUE_SIZE
DELAY_KEY_WRITE
DIV_PRECISION_INCREMENT
ENGINE_CONDITION_PUSHDOWN
ERROR_COUNT
EVENT_SCHEDULER
EXPAND_FAST_INDEX_CREATION
EXPIRE_LOGS_DAYS
EXTERNAL_USER
FAST_INDEX_CREATION
FLUSH
FLUSH_TIME
FOREIGN_KEY_CHECKS
FT_BOOLEAN_SYNTAX
FT_MAX_WORD_LEN
FT_MIN_WORD_LEN
FT_QUERY_EXPANSION_LIMIT
FT_STOPWORD_FILE
GENERAL_LOG
GENERAL_LOG_FILE
GROUP_CONCAT_MAX_LEN
HAVE_COMPRESS
HAVE_CRYPT
HAVE_CSV
HAVE_DYNAMIC_LOADING
HAVE_GEOMETRY
HAVE_INNODB
HAVE_NDBCLUSTER
HAVE_OPENSSL
HAVE_PARTITIONING
HAVE_PROFILING
HAVE_QUERY_CACHE
HAVE_RESPONSE_TIME_DISTRIBUTION
HAVE_RTREE_KEYS
HAVE_SSL
HAVE_SYMLINK
HOSTNAME
IDENTITY
IGNORE_BUILTIN_INNODB
INIT_CONNECT
INIT_FILE
INIT_SLAVE
INNODB_ADAPTIVE_FLUSHING
INNODB_ADAPTIVE_FLUSHING_METHOD
INNODB_ADAPTIVE_HASH_INDEX
INNODB_ADAPTIVE_HASH_INDEX_PARTITIONS
INNODB_ADDITIONAL_MEM_POOL_SIZE
INNODB_AUTOEXTEND_INCREMENT
INNODB_AUTOINC_LOCK_MODE
INNODB_BLOCKING_BUFFER_POOL_RESTORE
INNODB_BUFFER_POOL_INSTANCES
INNODB_BUFFER_POOL_RESTORE_AT_STARTUP
INNODB_BUFFER_POOL_SHM_CHECKSUM
INNODB_BUFFER_POOL_SHM_KEY
INNODB_BUFFER_POOL_SIZE
INNODB_CHANGE_BUFFERING
INNODB_CHECKPOINT_AGE_TARGET
INNODB_CHECKSUMS
INNODB_COMMIT_CONCURRENCY
INNODB_CONCURRENCY_TICKETS
INNODB_CORRUPT_TABLE_ACTION
INNODB_DATA_FILE_PATH
INNODB_DATA_HOME_DIR
INNODB_DICT_SIZE_LIMIT
INNODB_DOUBLEWRITE
INNODB_DOUBLEWRITE_FILE
INNODB_FAKE_CHANGES
INNODB_FAST_CHECKSUM
INNODB_FAST_SHUTDOWN
INNODB_FILE_FORMAT
INNODB_FILE_FORMAT_CHECK
INNODB_FILE_FORMAT_MAX
INNODB_FILE_PER_TABLE
INNODB_FLUSH_LOG_AT_TRX_COMMIT
INNODB_FLUSH_METHOD
INNODB_FLUSH_NEIGHBOR_PAGES
INNODB_FORCE_LOAD_CORRUPTED
INNODB_FORCE_RECOVERY
INNODB_IBUF_ACCEL_RATE
INNODB_IBUF_ACTIVE_CONTRACT
INNODB_IBUF_MAX_SIZE
INNODB_IMPORT_TABLE_FROM_XTRABACKUP
INNODB_IO_CAPACITY
INNODB_KILL_IDLE_TRANSACTION
INNODB_LARGE_PREFIX
INNODB_LAZY_DROP_TABLE
INNODB_LOCKS_UNSAFE_FOR_BINLOG
INNODB_LOCK_WAIT_TIMEOUT
INNODB_LOG_BLOCK_SIZE
INNODB_LOG_BUFFER_SIZE
INNODB_LOG_FILES_IN_GROUP
INNODB_LOG_FILE_SIZE
INNODB_LOG_GROUP_HOME_DIR
INNODB_MAX_DIRTY_PAGES_PCT
INNODB_MAX_PURGE_LAG
INNODB_MIRRORED_LOG_GROUPS
INNODB_OLD_BLOCKS_PCT
INNODB_OLD_BLOCKS_TIME
INNODB_OPEN_FILES
INNODB_PAGE_SIZE
INNODB_PURGE_BATCH_SIZE
INNODB_PURGE_THREADS
INNODB_RANDOM_READ_AHEAD
INNODB_READ_AHEAD
INNODB_READ_AHEAD_THRESHOLD
INNODB_READ_IO_THREADS
INNODB_RECOVERY_STATS
INNODB_RECOVERY_UPDATE_RELAY_LOG
INNODB_REPLICATION_DELAY
INNODB_ROLLBACK_ON_TIMEOUT
INNODB_ROLLBACK_SEGMENTS
INNODB_SHOW_LOCKS_HELD
INNODB_SHOW_VERBOSE_LOCKS
INNODB_SPIN_WAIT_DELAY
INNODB_STATS_AUTO_UPDATE
INNODB_STATS_METHOD
INNODB_STATS_ON_METADATA
INNODB_STATS_SAMPLE_PAGES
INNODB_STATS_UPDATE_NEED_LOCK
INNODB_STRICT_MODE
INNODB_SUPPORT_XA
INNODB_SYNC_SPIN_LOOPS
INNODB_TABLE_LOCKS
INNODB_THREAD_CONCURRENCY
INNODB_THREAD_CONCURRENCY_TIMER_BASED
INNODB_THREAD_SLEEP_DELAY
INNODB_USE_GLOBAL_FLUSH_LOG_AT_TRX_COMMIT
INNODB_USE_NATIVE_AIO
INNODB_USE_SYS_MALLOC
INNODB_USE_SYS_STATS_TABLE
INNODB_VERSION
INNODB_WRITE_IO_THREADS
INSERT_ID
INTERACTIVE_TIMEOUT
JOIN_BUFFER_SIZE
KEEP_FILES_ON_CREATE
KEY_BUFFER_SIZE
KEY_CACHE_AGE_THRESHOLD
KEY_CACHE_BLOCK_SIZE
KEY_CACHE_DIVISION_LIMIT
LARGE_FILES_SUPPORT
LARGE_PAGES
LARGE_PAGE_SIZE
LAST_INSERT_ID
LC_MESSAGES
LC_MESSAGES_DIR
LC_TIME_NAMES
LICENSE
LOCAL_INFILE
LOCKED_IN_MEMORY
LOCK_WAIT_TIMEOUT
LOG
LOG_BIN
LOG_BIN_TRUST_FUNCTION_CREATORS
LOG_ERROR
LOG_OUTPUT
LOG_QUERIES_NOT_USING_INDEXES
LOG_SLAVE_UPDATES
LOG_SLOW_ADMIN_STATEMENTS
LOG_SLOW_FILTER
LOG_SLOW_QUERIES
LOG_SLOW_RATE_LIMIT
LOG_SLOW_SLAVE_STATEMENTS
LOG_SLOW_SP_STATEMENTS
LOG_SLOW_VERBOSITY
LOG_WARNINGS
LOG_WARNINGS_SUPPRESS
LONG_QUERY_TIME
LOWER_CASE_FILE_SYSTEM
LOWER_CASE_TABLE_NAMES
LOW_PRIORITY_UPDATES
MAX_ALLOWED_PACKET
MAX_BINLOG_CACHE_SIZE
MAX_BINLOG_SIZE
MAX_BINLOG_STMT_CACHE_SIZE
MAX_CONNECTIONS
MAX_CONNECT_ERRORS
MAX_DELAYED_THREADS
MAX_ERROR_COUNT
MAX_HEAP_TABLE_SIZE
MAX_INSERT_DELAYED_THREADS
MAX_JOIN_SIZE
MAX_LENGTH_FOR_SORT_DATA
MAX_LONG_DATA_SIZE
MAX_PREPARED_STMT_COUNT
MAX_RELAY_LOG_SIZE
MAX_SEEKS_FOR_KEY
MAX_SORT_LENGTH
MAX_SP_RECURSION_DEPTH
MAX_TMP_TABLES
MAX_USER_CONNECTIONS
MAX_WRITE_LOCK_COUNT
METADATA_LOCKS_CACHE_SIZE
MIN_EXAMINED_ROW_LIMIT
MULTI_RANGE_COUNT
MYISAM_DATA_POINTER_SIZE
MYISAM_MAX_SORT_FILE_SIZE
MYISAM_MMAP_SIZE
MYISAM_RECOVER_OPTIONS
MYISAM_REPAIR_THREADS
MYISAM_SORT_BUFFER_SIZE
MYISAM_STATS_METHOD
MYISAM_USE_MMAP
NET_BUFFER_LENGTH
NET_READ_TIMEOUT
NET_RETRY_COUNT
NET_WRITE_TIMEOUT
NEW
OLD
OLD_ALTER_TABLE
OLD_PASSWORDS
OPEN_FILES_LIMIT
OPTIMIZER_FIX
OPTIMIZER_PRUNE_LEVEL
OPTIMIZER_SEARCH_DEPTH
OPTIMIZER_SWITCH
PERFORMANCE_SCHEMA
PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_LONG_SIZE
PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_SIZE
PERFORMANCE_SCHEMA_MAX_COND_CLASSES
PERFORMANCE_SCHEMA_MAX_COND_INSTANCES
PERFORMANCE_SCHEMA_MAX_FILE_CLASSES
PERFORMANCE_SCHEMA_MAX_FILE_HANDLES
PERFORMANCE_SCHEMA_MAX_FILE_INSTANCES
PERFORMANCE_SCHEMA_MAX_MUTEX_CLASSES
PERFORMANCE_SCHEMA_MAX_MUTEX_INSTANCES
PERFORMANCE_SCHEMA_MAX_RWLOCK_CLASSES
PERFORMANCE_SCHEMA_MAX_RWLOCK_INSTANCES
PERFORMANCE_SCHEMA_MAX_TABLE_HANDLES
PERFORMANCE_SCHEMA_MAX_TABLE_INSTANCES
PERFORMANCE_SCHEMA_MAX_THREAD_CLASSES
PERFORMANCE_SCHEMA_MAX_THREAD_INSTANCES
PID_FILE
PLUGIN_DIR
PORT
PRELOAD_BUFFER_SIZE
PROFILING
PROFILING_HISTORY_SIZE
PROTOCOL_VERSION
PROXY_USER
PSEUDO_THREAD_ID
QUERY_ALLOC_BLOCK_SIZE
QUERY_CACHE_LIMIT
QUERY_CACHE_MIN_RES_UNIT
QUERY_CACHE_SIZE
QUERY_CACHE_STRIP_COMMENTS
QUERY_CACHE_TYPE
QUERY_CACHE_WLOCK_INVALIDATE
QUERY_PREALLOC_SIZE
QUERY_RESPONSE_TIME_RANGE_BASE
QUERY_RESPONSE_TIME_STATS
RAND_SEED1
RAND_SEED2
RANGE_ALLOC_BLOCK_SIZE
READ_BUFFER_SIZE
READ_ONLY
READ_RND_BUFFER_SIZE
RELAY_LOG
RELAY_LOG_INDEX
RELAY_LOG_INFO_FILE
RELAY_LOG_PURGE
RELAY_LOG_RECOVERY
RELAY_LOG_SPACE_LIMIT
REPORT_HOST
REPORT_PASSWORD
REPORT_PORT
REPORT_USER
RPL_RECOVERY_RANK
SECURE_AUTH
SECURE_FILE_PRIV
SERVER_ID
SKIP_EXTERNAL_LOCKING
SKIP_NAME_RESOLVE
SKIP_NETWORKING
SKIP_SHOW_DATABASE
SLAVE_COMPRESSED_PROTOCOL
SLAVE_EXEC_MODE
SLAVE_LOAD_TMPDIR
SLAVE_NET_TIMEOUT
SLAVE_SKIP_ERRORS
SLAVE_TRANSACTION_RETRIES
SLAVE_TYPE_CONVERSIONS
SLOW_LAUNCH_TIME
SLOW_QUERY_LOG
SLOW_QUERY_LOG_FILE
SLOW_QUERY_LOG_TIMESTAMP_ALWAYS
SLOW_QUERY_LOG_TIMESTAMP_PRECISION
SLOW_QUERY_LOG_USE_GLOBAL_CONTROL
SOCKET
SORT_BUFFER_SIZE
SQL_AUTO_IS_NULL
SQL_BIG_SELECTS
SQL_BIG_TABLES
SQL_BUFFER_RESULT
SQL_LOG_BIN
SQL_LOG_OFF
SQL_LOW_PRIORITY_UPDATES
SQL_MAX_JOIN_SIZE
SQL_MODE
SQL_NOTES
SQL_QUOTE_SHOW_CREATE
SQL_SAFE_UPDATES
SQL_SELECT_LIMIT
SQL_SLAVE_SKIP_COUNTER
SQL_WARNINGS
SSL_CA
SSL_CAPATH
SSL_CERT
SSL_CIPHER
SSL_KEY
STORAGE_ENGINE
SYNC_BINLOG
SYNC_FRM
SYNC_MASTER_INFO
SYNC_RELAY_LOG
SYNC_RELAY_LOG_INFO
SYSTEM_TIME_ZONE
TABLE_DEFINITION_CACHE
TABLE_OPEN_CACHE
THREAD_CACHE_SIZE
THREAD_CONCURRENCY
THREAD_HANDLING
THREAD_STACK
THREAD_STATISTICS
TIMED_MUTEXES
TIMESTAMP
TIME_FORMAT
TIME_ZONE
TMPDIR
TMP_TABLE_SIZE
TRANSACTION_ALLOC_BLOCK_SIZE
TRANSACTION_PREALLOC_SIZE
TX_ISOLATION
UNIQUE_CHECKS
UPDATABLE_VIEWS_WITH_LIMIT
USERSTAT
VERSION
VERSION_COMMENT
VERSION_COMPILE_MACHINE
VERSION_COMPILE_OS
WAIT_TIMEOUT
WARNING_COUNT
--source include/not_debug.inc
--source percona_server_variables.inc
drop table if exists t1,t2,t3;
drop database if exists showtemp;
create database if not exists showtemp;
use test;
create temporary table t1(id int);
create temporary table t2(id int);
create temporary table showtemp.t3(id int);
insert into t1 values(10),(20),(30),(40);
insert into showtemp.t3 values(999);
show temporary tables;
Temp_tables_in_test
t2
t1
show temporary tables from test;
Temp_tables_in_test
t2
t1
show temporary tables in showtemp;
Temp_tables_in_showtemp
t3
select table_schema, table_name, engine, table_rows from Information_schema.temporary_tables;
table_schema table_name engine table_rows
showtemp t3 MyISAM 1
test t2 MyISAM 0
test t1 MyISAM 4
select table_schema, table_name, engine, table_rows from Information_schema.global_temporary_tables;
table_schema table_name engine table_rows
showtemp t3 MyISAM 1
test t2 MyISAM 0
test t1 MyISAM 4
select table_schema, table_name, engine, table_rows from Information_schema.global_temporary_tables where table_schema='showtemp';
table_schema table_name engine table_rows
showtemp t3 MyISAM 1
select table_schema, table_name, engine, table_rows from Information_schema.global_temporary_tables where table_schema='temp';
table_schema table_name engine table_rows
drop table if exists showtemp.t2;
create temporary table t1(id int);
create temporary table showtemp.t2(id int);
show temporary tables;
Temp_tables_in_test
t1
select table_schema, table_name, engine, table_rows from Information_schema.global_temporary_tables;
table_schema table_name engine table_rows
showtemp t2 MyISAM 0
test t1 MyISAM 0
showtemp t3 MyISAM 1
test t2 MyISAM 0
test t1 MyISAM 4
drop table showtemp.t2;
drop table t1;
select table_schema, table_name, engine, table_rows from Information_schema.global_temporary_tables;
table_schema table_name engine table_rows
showtemp t3 MyISAM 1
test t2 MyISAM 0
test t1 MyISAM 4
drop table t1, t2;
drop table showtemp.t3;
drop database showtemp;
# Uses GRANT commands that usually disabled in embedded server
-- source include/not_embedded.inc
# Save the initial number of concurrent sessions
--source include/count_sessions.inc
#
# Test of SHOW [GLOBAL] TEMPORARY TABLES [FROM/IN] DB and
# Information_schema.temporary_tables and global_temporary_tables
#
connect(stcon1,localhost,root,,test);
connect(stcon2,localhost,root,,test);
connection stcon1;
--disable_warnings
drop table if exists t1,t2,t3;
drop database if exists showtemp;
create database if not exists showtemp;
--enable_warnings
use test;
create temporary table t1(id int);
create temporary table t2(id int);
create temporary table showtemp.t3(id int);
insert into t1 values(10),(20),(30),(40);
insert into showtemp.t3 values(999);
show temporary tables;
# "Session" is not same value always. mysql-test cannot test it always.
#show global temporary tables;
show temporary tables from test;
show temporary tables in showtemp;
select table_schema, table_name, engine, table_rows from Information_schema.temporary_tables;
select table_schema, table_name, engine, table_rows from Information_schema.global_temporary_tables;
select table_schema, table_name, engine, table_rows from Information_schema.global_temporary_tables where table_schema='showtemp';
select table_schema, table_name, engine, table_rows from Information_schema.global_temporary_tables where table_schema='temp';
connection stcon2;
--disable_warnings
drop table if exists showtemp.t2;
--enable_warnings
create temporary table t1(id int);
create temporary table showtemp.t2(id int);
show temporary tables;
select table_schema, table_name, engine, table_rows from Information_schema.global_temporary_tables;
drop table showtemp.t2;
drop table t1;
disconnect stcon2;
connection stcon1;
select table_schema, table_name, engine, table_rows from Information_schema.global_temporary_tables;
drop table t1, t2;
drop table showtemp.t3;
drop database showtemp;
connection default;
disconnect stcon1;
# Wait till all disconnects are completed
--source include/wait_until_count_sessions.inc
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment