mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-06 04:17:55 +00:00
Fixed all tests for MySQL 5.7
Most of the failing tests were failing due to changes in MySQL 5.7 default sql_mode and because of invalid timestamps ('0000-00-00')
This commit is contained in:
@@ -39,6 +39,7 @@ use Data::Dumper;
|
||||
$Data::Dumper::Indent = 1;
|
||||
$Data::Dumper::Sortkeys = 1;
|
||||
$Data::Dumper::Quotekeys = 0;
|
||||
use VersionParser;
|
||||
|
||||
use constant PTDEBUG => $ENV{PTDEBUG} || 0;
|
||||
|
||||
@@ -844,7 +845,14 @@ sub _explain_query {
|
||||
$dbh->do($sql);
|
||||
}
|
||||
|
||||
$sql = "EXPLAIN EXTENDED $query";
|
||||
$self->{db_version} ||= VersionParser->new($dbh);
|
||||
if ( $self->{db_version} < '5.7.3' ) {
|
||||
$sql = "EXPLAIN EXTENDED $query";
|
||||
}
|
||||
else {
|
||||
$sql = "EXPLAIN $query"; # EXTENDED is implicit as of 5.7.3
|
||||
}
|
||||
|
||||
PTDEBUG && _d($dbh, $sql);
|
||||
eval {
|
||||
$dbh->do($sql); # don't need the result
|
||||
|
@@ -545,7 +545,7 @@ SKIP: {
|
||||
["1=1"],
|
||||
"Doesn't chunk if chunk size > total rows"
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
# #############################################################################
|
||||
# Issue 47: TableChunker::range_num broken for very large bigint
|
||||
@@ -845,75 +845,80 @@ is_deeply(
|
||||
# Test issue 941 + issue 602
|
||||
# #############################################################################
|
||||
|
||||
$dbh->do("insert into issue_602.t values ('12', '0000-00-00 00:00:00')");
|
||||
# Now we have:
|
||||
# | 12 | 0000-00-00 00:00:00 |
|
||||
# | 11 | 2010-00-09 00:00:00 |
|
||||
# | 10 | 2010-04-30 00:00:00 |
|
||||
# So min is a zero row. If we don't want zero row, next min will be an
|
||||
# invalid row, and we don't want that. So we should get row "10" as min.
|
||||
SKIP: {
|
||||
skip "Requires MySQL < 5.7", 19 if ($sandbox_version ge '5.7');
|
||||
|
||||
%params = $c->get_range_statistics(
|
||||
dbh => $dbh,
|
||||
db => 'issue_602',
|
||||
tbl => 't',
|
||||
chunk_col => 'b',
|
||||
tbl_struct => {
|
||||
type_for => { b => 'datetime' },
|
||||
is_numeric => { b => 0 },
|
||||
},
|
||||
);
|
||||
|
||||
is_deeply(
|
||||
\%params,
|
||||
{
|
||||
min => '2010-04-30 00:00:00',
|
||||
max => '2010-05-09 00:00:00',
|
||||
rows_in_range => 12,
|
||||
},
|
||||
"Gets valid min after zero row"
|
||||
);
|
||||
|
||||
# #############################################################################
|
||||
# Test _validate_temporal_value() because it's magical.
|
||||
# #############################################################################
|
||||
my @invalid_t = (
|
||||
'00:00:60',
|
||||
'00:60:00',
|
||||
'0000-00-00',
|
||||
'2009-00-00',
|
||||
'2009-13-00',
|
||||
'0000-00-00 00:00:00',
|
||||
'1000-00-00 00:00:00',
|
||||
'2009-00-00 00:00:00',
|
||||
'2009-13-00 00:00:00',
|
||||
'2009-05-26 00:00:60',
|
||||
'2009-05-26 00:60:00',
|
||||
'2009-05-26 24:00:00',
|
||||
);
|
||||
foreach my $t ( @invalid_t ) {
|
||||
my $res = TableChunker::_validate_temporal_value($dbh, $t);
|
||||
is(
|
||||
$res,
|
||||
undef,
|
||||
"$t is invalid"
|
||||
);
|
||||
}
|
||||
|
||||
my @valid_t = (
|
||||
'00:00:01',
|
||||
'1000-01-01',
|
||||
'2009-01-01',
|
||||
'1000-01-01 00:00:00',
|
||||
'2009-01-01 00:00:00',
|
||||
'2010-05-26 17:48:30',
|
||||
);
|
||||
foreach my $t ( @valid_t ) {
|
||||
my $res = TableChunker::_validate_temporal_value($dbh, $t);
|
||||
ok(
|
||||
defined $res,
|
||||
"$t is valid"
|
||||
);
|
||||
$dbh->do("insert into issue_602.t values ('12', '0000-00-00 00:00:00')");
|
||||
|
||||
# Now we have:
|
||||
# | 12 | 0000-00-00 00:00:00 |
|
||||
# | 11 | 2010-00-09 00:00:00 |
|
||||
# | 10 | 2010-04-30 00:00:00 |
|
||||
# So min is a zero row. If we don't want zero row, next min will be an
|
||||
# invalid row, and we don't want that. So we should get row "10" as min.
|
||||
|
||||
%params = $c->get_range_statistics(
|
||||
dbh => $dbh,
|
||||
db => 'issue_602',
|
||||
tbl => 't',
|
||||
chunk_col => 'b',
|
||||
tbl_struct => {
|
||||
type_for => { b => 'datetime' },
|
||||
is_numeric => { b => 0 },
|
||||
},
|
||||
);
|
||||
|
||||
is_deeply(
|
||||
\%params,
|
||||
{
|
||||
min => '2010-04-30 00:00:00',
|
||||
max => '2010-05-09 00:00:00',
|
||||
rows_in_range => 12,
|
||||
},
|
||||
"Gets valid min after zero row"
|
||||
);
|
||||
|
||||
# #############################################################################
|
||||
# Test _validate_temporal_value() because it's magical.
|
||||
# #############################################################################
|
||||
my @invalid_t = (
|
||||
'00:00:60',
|
||||
'00:60:00',
|
||||
'0000-00-00',
|
||||
'2009-00-00',
|
||||
'2009-13-00',
|
||||
'0000-00-00 00:00:00',
|
||||
'1000-00-00 00:00:00',
|
||||
'2009-00-00 00:00:00',
|
||||
'2009-13-00 00:00:00',
|
||||
'2009-05-26 00:00:60',
|
||||
'2009-05-26 00:60:00',
|
||||
'2009-05-26 24:00:00',
|
||||
);
|
||||
foreach my $t ( @invalid_t ) {
|
||||
my $res = TableChunker::_validate_temporal_value($dbh, $t);
|
||||
is(
|
||||
$res,
|
||||
undef,
|
||||
"$t is invalid"
|
||||
);
|
||||
}
|
||||
|
||||
my @valid_t = (
|
||||
'00:00:01',
|
||||
'1000-01-01',
|
||||
'2009-01-01',
|
||||
'1000-01-01 00:00:00',
|
||||
'2009-01-01 00:00:00',
|
||||
'2010-05-26 17:48:30',
|
||||
);
|
||||
foreach my $t ( @valid_t ) {
|
||||
my $res = TableChunker::_validate_temporal_value($dbh, $t);
|
||||
ok(
|
||||
defined $res,
|
||||
"$t is valid"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
# #############################################################################
|
||||
|
@@ -635,6 +635,7 @@ SKIP: {
|
||||
"DBI:mysql:host=127.0.0.1;port=12345", 'root', 'msandbox',
|
||||
{ PrintError => 0, RaiseError => 1 });
|
||||
|
||||
$root_dbh->do(q[CREATE USER 'user'@'%' IDENTIFIED BY '';] ) || die($root_dbh->errstr);
|
||||
$root_dbh->do(q[GRANT SELECT ON test.* TO 'user'@'%'] ) || die($root_dbh->errstr);
|
||||
|
||||
my $user_dbh = DBI->connect(
|
||||
|
537
t/lib/samples/SchemaIterator/all-dbs-tbls-5.7.txt
Normal file
537
t/lib/samples/SchemaIterator/all-dbs-tbls-5.7.txt
Normal file
@@ -0,0 +1,537 @@
|
||||
mysql.columns_priv
|
||||
CREATE TABLE `columns_priv` (
|
||||
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`User` char(32) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Table_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Column_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`,`Column_name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Column privileges'
|
||||
|
||||
mysql.db
|
||||
CREATE TABLE `db` (
|
||||
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`User` char(32) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Select_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Insert_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Update_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Delete_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Drop_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Grant_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`References_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Index_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Alter_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Show_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Execute_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Event_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Trigger_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
PRIMARY KEY (`Host`,`Db`,`User`),
|
||||
KEY `User` (`User`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Database privileges'
|
||||
|
||||
mysql.engine_cost
|
||||
CREATE TABLE `engine_cost` (
|
||||
`engine_name` varchar(64) NOT NULL,
|
||||
`device_type` int(11) NOT NULL,
|
||||
`cost_name` varchar(64) NOT NULL,
|
||||
`cost_value` float DEFAULT NULL,
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`comment` varchar(1024) DEFAULT NULL,
|
||||
PRIMARY KEY (`cost_name`,`engine_name`,`device_type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0
|
||||
|
||||
mysql.event
|
||||
CREATE TABLE `event` (
|
||||
`db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`name` char(64) NOT NULL DEFAULT '',
|
||||
`body` longblob NOT NULL,
|
||||
`definer` char(93) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`execute_at` datetime DEFAULT NULL,
|
||||
`interval_value` int(11) DEFAULT NULL,
|
||||
`interval_field` enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') DEFAULT NULL,
|
||||
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`last_executed` datetime DEFAULT NULL,
|
||||
`starts` datetime DEFAULT NULL,
|
||||
`ends` datetime DEFAULT NULL,
|
||||
`status` enum('ENABLED','DISABLED','SLAVESIDE_DISABLED') NOT NULL DEFAULT 'ENABLED',
|
||||
`on_completion` enum('DROP','PRESERVE') NOT NULL DEFAULT 'DROP',
|
||||
`sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '',
|
||||
`comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`originator` int(10) unsigned NOT NULL,
|
||||
`time_zone` char(64) CHARACTER SET latin1 NOT NULL DEFAULT 'SYSTEM',
|
||||
`character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||
`collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||
`db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||
`body_utf8` longblob,
|
||||
PRIMARY KEY (`db`,`name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Events'
|
||||
|
||||
mysql.func
|
||||
CREATE TABLE `func` (
|
||||
`name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`ret` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`dl` char(128) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`type` enum('function','aggregate') CHARACTER SET utf8 NOT NULL,
|
||||
PRIMARY KEY (`name`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='User defined functions'
|
||||
|
||||
mysql.gtid_executed
|
||||
CREATE TABLE `gtid_executed` (
|
||||
`source_uuid` char(36) NOT NULL COMMENT 'uuid of the source where the transaction was originally executed.',
|
||||
`interval_start` bigint(20) NOT NULL COMMENT 'First number of interval.',
|
||||
`interval_end` bigint(20) NOT NULL COMMENT 'Last number of interval.',
|
||||
PRIMARY KEY (`source_uuid`,`interval_start`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
|
||||
mysql.help_category
|
||||
CREATE TABLE `help_category` (
|
||||
`help_category_id` smallint(5) unsigned NOT NULL,
|
||||
`name` char(64) NOT NULL,
|
||||
`parent_category_id` smallint(5) unsigned DEFAULT NULL,
|
||||
`url` text NOT NULL,
|
||||
PRIMARY KEY (`help_category_id`),
|
||||
UNIQUE KEY `name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='help categories'
|
||||
|
||||
mysql.help_keyword
|
||||
CREATE TABLE `help_keyword` (
|
||||
`help_keyword_id` int(10) unsigned NOT NULL,
|
||||
`name` char(64) NOT NULL,
|
||||
PRIMARY KEY (`help_keyword_id`),
|
||||
UNIQUE KEY `name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='help keywords'
|
||||
|
||||
mysql.help_relation
|
||||
CREATE TABLE `help_relation` (
|
||||
`help_topic_id` int(10) unsigned NOT NULL,
|
||||
`help_keyword_id` int(10) unsigned NOT NULL,
|
||||
PRIMARY KEY (`help_keyword_id`,`help_topic_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='keyword-topic relation'
|
||||
|
||||
mysql.help_topic
|
||||
CREATE TABLE `help_topic` (
|
||||
`help_topic_id` int(10) unsigned NOT NULL,
|
||||
`name` char(64) NOT NULL,
|
||||
`help_category_id` smallint(5) unsigned NOT NULL,
|
||||
`description` text NOT NULL,
|
||||
`example` text NOT NULL,
|
||||
`url` text NOT NULL,
|
||||
PRIMARY KEY (`help_topic_id`),
|
||||
UNIQUE KEY `name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='help topics'
|
||||
|
||||
mysql.ndb_binlog_index
|
||||
CREATE TABLE `ndb_binlog_index` (
|
||||
`Position` bigint(20) unsigned NOT NULL,
|
||||
`File` varchar(255) NOT NULL,
|
||||
`epoch` bigint(20) unsigned NOT NULL,
|
||||
`inserts` int(10) unsigned NOT NULL,
|
||||
`updates` int(10) unsigned NOT NULL,
|
||||
`deletes` int(10) unsigned NOT NULL,
|
||||
`schemaops` int(10) unsigned NOT NULL,
|
||||
`orig_server_id` int(10) unsigned NOT NULL,
|
||||
`orig_epoch` bigint(20) unsigned NOT NULL,
|
||||
`gci` int(10) unsigned NOT NULL,
|
||||
`next_position` bigint(20) unsigned NOT NULL,
|
||||
`next_file` varchar(255) NOT NULL,
|
||||
PRIMARY KEY (`epoch`,`orig_server_id`,`orig_epoch`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
|
||||
mysql.procs_priv
|
||||
CREATE TABLE `procs_priv` (
|
||||
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`User` char(32) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Routine_name` char(64) CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
`Routine_type` enum('FUNCTION','PROCEDURE') COLLATE utf8_bin NOT NULL,
|
||||
`Grantor` char(93) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Proc_priv` set('Execute','Alter Routine','Grant') CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`Host`,`Db`,`User`,`Routine_name`,`Routine_type`),
|
||||
KEY `Grantor` (`Grantor`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Procedure privileges'
|
||||
|
||||
mysql.proxies_priv
|
||||
CREATE TABLE `proxies_priv` (
|
||||
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`User` char(32) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Proxied_host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Proxied_user` char(32) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`With_grant` tinyint(1) NOT NULL DEFAULT '0',
|
||||
`Grantor` char(93) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`Host`,`User`,`Proxied_host`,`Proxied_user`),
|
||||
KEY `Grantor` (`Grantor`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='User proxy privileges'
|
||||
|
||||
mysql.server_cost
|
||||
CREATE TABLE `server_cost` (
|
||||
`cost_name` varchar(64) NOT NULL,
|
||||
`cost_value` float DEFAULT NULL,
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`comment` varchar(1024) DEFAULT NULL,
|
||||
PRIMARY KEY (`cost_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0
|
||||
|
||||
mysql.servers
|
||||
CREATE TABLE `servers` (
|
||||
`Server_name` char(64) NOT NULL DEFAULT '',
|
||||
`Host` char(64) NOT NULL DEFAULT '',
|
||||
`Db` char(64) NOT NULL DEFAULT '',
|
||||
`Username` char(64) NOT NULL DEFAULT '',
|
||||
`Password` char(64) NOT NULL DEFAULT '',
|
||||
`Port` int(4) NOT NULL DEFAULT '0',
|
||||
`Socket` char(64) NOT NULL DEFAULT '',
|
||||
`Wrapper` char(64) NOT NULL DEFAULT '',
|
||||
`Owner` char(64) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`Server_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='MySQL Foreign Servers table'
|
||||
|
||||
mysql.tables_priv
|
||||
CREATE TABLE `tables_priv` (
|
||||
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`User` char(32) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Table_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Grantor` char(93) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
`Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`),
|
||||
KEY `Grantor` (`Grantor`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Table privileges'
|
||||
|
||||
mysql.time_zone
|
||||
CREATE TABLE `time_zone` (
|
||||
`Time_zone_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`Use_leap_seconds` enum('Y','N') NOT NULL DEFAULT 'N',
|
||||
PRIMARY KEY (`Time_zone_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='Time zones'
|
||||
|
||||
mysql.time_zone_leap_second
|
||||
CREATE TABLE `time_zone_leap_second` (
|
||||
`Transition_time` bigint(20) NOT NULL,
|
||||
`Correction` int(11) NOT NULL,
|
||||
PRIMARY KEY (`Transition_time`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='Leap seconds information for time zones'
|
||||
|
||||
mysql.time_zone_name
|
||||
CREATE TABLE `time_zone_name` (
|
||||
`Name` char(64) NOT NULL,
|
||||
`Time_zone_id` int(10) unsigned NOT NULL,
|
||||
PRIMARY KEY (`Name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='Time zone names'
|
||||
|
||||
mysql.time_zone_transition
|
||||
CREATE TABLE `time_zone_transition` (
|
||||
`Time_zone_id` int(10) unsigned NOT NULL,
|
||||
`Transition_time` bigint(20) NOT NULL,
|
||||
`Transition_type_id` int(10) unsigned NOT NULL,
|
||||
PRIMARY KEY (`Time_zone_id`,`Transition_time`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='Time zone transitions'
|
||||
|
||||
mysql.time_zone_transition_type
|
||||
CREATE TABLE `time_zone_transition_type` (
|
||||
`Time_zone_id` int(10) unsigned NOT NULL,
|
||||
`Transition_type_id` int(10) unsigned NOT NULL,
|
||||
`Offset` int(11) NOT NULL DEFAULT '0',
|
||||
`Is_DST` tinyint(3) unsigned NOT NULL DEFAULT '0',
|
||||
`Abbreviation` char(8) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`Time_zone_id`,`Transition_type_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 STATS_PERSISTENT=0 COMMENT='Time zone transition types'
|
||||
|
||||
mysql.user
|
||||
CREATE TABLE `user` (
|
||||
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`User` char(32) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Select_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Insert_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Update_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Delete_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Drop_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Reload_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Shutdown_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Process_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`File_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Grant_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`References_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Index_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Alter_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Show_db_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Super_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Execute_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Repl_slave_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Repl_client_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Show_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_user_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Event_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Trigger_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_tablespace_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`ssl_type` enum('','ANY','X509','SPECIFIED') CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
`ssl_cipher` blob NOT NULL,
|
||||
`x509_issuer` blob NOT NULL,
|
||||
`x509_subject` blob NOT NULL,
|
||||
`max_questions` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`max_updates` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`max_connections` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`max_user_connections` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`plugin` char(64) COLLATE utf8_bin NOT NULL DEFAULT 'mysql_native_password',
|
||||
`authentication_string` text COLLATE utf8_bin,
|
||||
`password_expired` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`password_last_changed` timestamp NULL DEFAULT NULL,
|
||||
`password_lifetime` smallint(5) unsigned DEFAULT NULL,
|
||||
`account_locked` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
PRIMARY KEY (`Host`,`User`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges'
|
||||
|
||||
percona_test.checksums
|
||||
CREATE TABLE `checksums` (
|
||||
`db_tbl` varchar(128) NOT NULL,
|
||||
`checksum` int(10) unsigned NOT NULL,
|
||||
PRIMARY KEY (`db_tbl`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
|
||||
percona_test.load_data
|
||||
CREATE TABLE `load_data` (
|
||||
`i` int(11) DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
|
||||
percona_test.sentinel
|
||||
CREATE TABLE `sentinel` (
|
||||
`id` int(11) NOT NULL,
|
||||
`ping` varchar(64) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
|
||||
sakila.actor
|
||||
CREATE TABLE `actor` (
|
||||
`actor_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`first_name` varchar(45) NOT NULL,
|
||||
`last_name` varchar(45) NOT NULL,
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`actor_id`),
|
||||
KEY `idx_actor_last_name` (`last_name`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=201 DEFAULT CHARSET=utf8
|
||||
|
||||
sakila.address
|
||||
CREATE TABLE `address` (
|
||||
`address_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`address` varchar(50) NOT NULL,
|
||||
`address2` varchar(50) DEFAULT NULL,
|
||||
`district` varchar(20) NOT NULL,
|
||||
`city_id` smallint(5) unsigned NOT NULL,
|
||||
`postal_code` varchar(10) DEFAULT NULL,
|
||||
`phone` varchar(20) NOT NULL,
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`address_id`),
|
||||
KEY `idx_fk_city_id` (`city_id`),
|
||||
CONSTRAINT `fk_address_city` FOREIGN KEY (`city_id`) REFERENCES `city` (`city_id`) ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=606 DEFAULT CHARSET=utf8
|
||||
|
||||
sakila.category
|
||||
CREATE TABLE `category` (
|
||||
`category_id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(25) NOT NULL,
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`category_id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8
|
||||
|
||||
sakila.city
|
||||
CREATE TABLE `city` (
|
||||
`city_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`city` varchar(50) NOT NULL,
|
||||
`country_id` smallint(5) unsigned NOT NULL,
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`city_id`),
|
||||
KEY `idx_fk_country_id` (`country_id`),
|
||||
CONSTRAINT `fk_city_country` FOREIGN KEY (`country_id`) REFERENCES `country` (`country_id`) ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=601 DEFAULT CHARSET=utf8
|
||||
|
||||
sakila.country
|
||||
CREATE TABLE `country` (
|
||||
`country_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`country` varchar(50) NOT NULL,
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`country_id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=110 DEFAULT CHARSET=utf8
|
||||
|
||||
sakila.customer
|
||||
CREATE TABLE `customer` (
|
||||
`customer_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`store_id` tinyint(3) unsigned NOT NULL,
|
||||
`first_name` varchar(45) NOT NULL,
|
||||
`last_name` varchar(45) NOT NULL,
|
||||
`email` varchar(50) DEFAULT NULL,
|
||||
`address_id` smallint(5) unsigned NOT NULL,
|
||||
`active` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`create_date` datetime NOT NULL,
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`customer_id`),
|
||||
KEY `idx_fk_store_id` (`store_id`),
|
||||
KEY `idx_fk_address_id` (`address_id`),
|
||||
KEY `idx_last_name` (`last_name`),
|
||||
CONSTRAINT `fk_customer_address` FOREIGN KEY (`address_id`) REFERENCES `address` (`address_id`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `fk_customer_store` FOREIGN KEY (`store_id`) REFERENCES `store` (`store_id`) ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=600 DEFAULT CHARSET=utf8
|
||||
|
||||
sakila.film
|
||||
CREATE TABLE `film` (
|
||||
`film_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`title` varchar(255) NOT NULL,
|
||||
`description` text,
|
||||
`release_year` year(4) DEFAULT NULL,
|
||||
`language_id` tinyint(3) unsigned NOT NULL,
|
||||
`original_language_id` tinyint(3) unsigned DEFAULT NULL,
|
||||
`rental_duration` tinyint(3) unsigned NOT NULL DEFAULT '3',
|
||||
`rental_rate` decimal(4,2) NOT NULL DEFAULT '4.99',
|
||||
`length` smallint(5) unsigned DEFAULT NULL,
|
||||
`replacement_cost` decimal(5,2) NOT NULL DEFAULT '19.99',
|
||||
`rating` enum('G','PG','PG-13','R','NC-17') DEFAULT 'G',
|
||||
`special_features` set('Trailers','Commentaries','Deleted Scenes','Behind the Scenes') DEFAULT NULL,
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`film_id`),
|
||||
KEY `idx_title` (`title`),
|
||||
KEY `idx_fk_language_id` (`language_id`),
|
||||
KEY `idx_fk_original_language_id` (`original_language_id`),
|
||||
CONSTRAINT `fk_film_language` FOREIGN KEY (`language_id`) REFERENCES `language` (`language_id`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `fk_film_language_original` FOREIGN KEY (`original_language_id`) REFERENCES `language` (`language_id`) ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8
|
||||
|
||||
sakila.film_actor
|
||||
CREATE TABLE `film_actor` (
|
||||
`actor_id` smallint(5) unsigned NOT NULL,
|
||||
`film_id` smallint(5) unsigned NOT NULL,
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`actor_id`,`film_id`),
|
||||
KEY `idx_fk_film_id` (`film_id`),
|
||||
CONSTRAINT `fk_film_actor_actor` FOREIGN KEY (`actor_id`) REFERENCES `actor` (`actor_id`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `fk_film_actor_film` FOREIGN KEY (`film_id`) REFERENCES `film` (`film_id`) ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8
|
||||
|
||||
sakila.film_category
|
||||
CREATE TABLE `film_category` (
|
||||
`film_id` smallint(5) unsigned NOT NULL,
|
||||
`category_id` tinyint(3) unsigned NOT NULL,
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`film_id`,`category_id`),
|
||||
KEY `fk_film_category_category` (`category_id`),
|
||||
CONSTRAINT `fk_film_category_category` FOREIGN KEY (`category_id`) REFERENCES `category` (`category_id`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `fk_film_category_film` FOREIGN KEY (`film_id`) REFERENCES `film` (`film_id`) ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8
|
||||
|
||||
sakila.film_text
|
||||
CREATE TABLE `film_text` (
|
||||
`film_id` smallint(6) NOT NULL,
|
||||
`title` varchar(255) NOT NULL,
|
||||
`description` text,
|
||||
PRIMARY KEY (`film_id`),
|
||||
FULLTEXT KEY `idx_title_description` (`title`,`description`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||
|
||||
sakila.inventory
|
||||
CREATE TABLE `inventory` (
|
||||
`inventory_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`film_id` smallint(5) unsigned NOT NULL,
|
||||
`store_id` tinyint(3) unsigned NOT NULL,
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`inventory_id`),
|
||||
KEY `idx_fk_film_id` (`film_id`),
|
||||
KEY `idx_store_id_film_id` (`store_id`,`film_id`),
|
||||
CONSTRAINT `fk_inventory_film` FOREIGN KEY (`film_id`) REFERENCES `film` (`film_id`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `fk_inventory_store` FOREIGN KEY (`store_id`) REFERENCES `store` (`store_id`) ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=4582 DEFAULT CHARSET=utf8
|
||||
|
||||
sakila.language
|
||||
CREATE TABLE `language` (
|
||||
`language_id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`name` char(20) NOT NULL,
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`language_id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8
|
||||
|
||||
sakila.payment
|
||||
CREATE TABLE `payment` (
|
||||
`payment_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`customer_id` smallint(5) unsigned NOT NULL,
|
||||
`staff_id` tinyint(3) unsigned NOT NULL,
|
||||
`rental_id` int(11) DEFAULT NULL,
|
||||
`amount` decimal(5,2) NOT NULL,
|
||||
`payment_date` datetime NOT NULL,
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`payment_id`),
|
||||
KEY `idx_fk_staff_id` (`staff_id`),
|
||||
KEY `idx_fk_customer_id` (`customer_id`),
|
||||
KEY `fk_payment_rental` (`rental_id`),
|
||||
CONSTRAINT `fk_payment_customer` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`customer_id`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `fk_payment_rental` FOREIGN KEY (`rental_id`) REFERENCES `rental` (`rental_id`) ON DELETE SET NULL ON UPDATE CASCADE,
|
||||
CONSTRAINT `fk_payment_staff` FOREIGN KEY (`staff_id`) REFERENCES `staff` (`staff_id`) ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=16050 DEFAULT CHARSET=utf8
|
||||
|
||||
sakila.rental
|
||||
CREATE TABLE `rental` (
|
||||
`rental_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`rental_date` datetime NOT NULL,
|
||||
`inventory_id` mediumint(8) unsigned NOT NULL,
|
||||
`customer_id` smallint(5) unsigned NOT NULL,
|
||||
`return_date` datetime DEFAULT NULL,
|
||||
`staff_id` tinyint(3) unsigned NOT NULL,
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`rental_id`),
|
||||
UNIQUE KEY `rental_date` (`rental_date`,`inventory_id`,`customer_id`),
|
||||
KEY `idx_fk_inventory_id` (`inventory_id`),
|
||||
KEY `idx_fk_customer_id` (`customer_id`),
|
||||
KEY `idx_fk_staff_id` (`staff_id`),
|
||||
CONSTRAINT `fk_rental_customer` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`customer_id`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `fk_rental_inventory` FOREIGN KEY (`inventory_id`) REFERENCES `inventory` (`inventory_id`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `fk_rental_staff` FOREIGN KEY (`staff_id`) REFERENCES `staff` (`staff_id`) ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=16050 DEFAULT CHARSET=utf8
|
||||
|
||||
sakila.staff
|
||||
CREATE TABLE `staff` (
|
||||
`staff_id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`first_name` varchar(45) NOT NULL,
|
||||
`last_name` varchar(45) NOT NULL,
|
||||
`address_id` smallint(5) unsigned NOT NULL,
|
||||
`picture` blob,
|
||||
`email` varchar(50) DEFAULT NULL,
|
||||
`store_id` tinyint(3) unsigned NOT NULL,
|
||||
`active` tinyint(1) NOT NULL DEFAULT '1',
|
||||
`username` varchar(16) NOT NULL,
|
||||
`password` varchar(40) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`staff_id`),
|
||||
KEY `idx_fk_store_id` (`store_id`),
|
||||
KEY `idx_fk_address_id` (`address_id`),
|
||||
CONSTRAINT `fk_staff_address` FOREIGN KEY (`address_id`) REFERENCES `address` (`address_id`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `fk_staff_store` FOREIGN KEY (`store_id`) REFERENCES `store` (`store_id`) ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8
|
||||
|
||||
sakila.store
|
||||
CREATE TABLE `store` (
|
||||
`store_id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`manager_staff_id` tinyint(3) unsigned NOT NULL,
|
||||
`address_id` smallint(5) unsigned NOT NULL,
|
||||
`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`store_id`),
|
||||
UNIQUE KEY `idx_unique_manager` (`manager_staff_id`),
|
||||
KEY `idx_fk_address_id` (`address_id`),
|
||||
CONSTRAINT `fk_store_address` FOREIGN KEY (`address_id`) REFERENCES `address` (`address_id`) ON UPDATE CASCADE,
|
||||
CONSTRAINT `fk_store_staff` FOREIGN KEY (`manager_staff_id`) REFERENCES `staff` (`staff_id`) ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8
|
||||
|
50
t/lib/samples/SchemaIterator/mysql-user-ddl-5.7.txt
Normal file
50
t/lib/samples/SchemaIterator/mysql-user-ddl-5.7.txt
Normal file
@@ -0,0 +1,50 @@
|
||||
mysql.user
|
||||
CREATE TABLE `user` (
|
||||
`Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`User` char(32) COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`Select_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Insert_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Update_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Delete_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Drop_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Reload_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Shutdown_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Process_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`File_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Grant_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`References_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Index_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Alter_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Show_db_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Super_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Execute_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Repl_slave_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Repl_client_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Show_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_user_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Event_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Trigger_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`Create_tablespace_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`ssl_type` enum('','ANY','X509','SPECIFIED') CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
`ssl_cipher` blob NOT NULL,
|
||||
`x509_issuer` blob NOT NULL,
|
||||
`x509_subject` blob NOT NULL,
|
||||
`max_questions` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`max_updates` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`max_connections` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`max_user_connections` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
`plugin` char(64) COLLATE utf8_bin NOT NULL DEFAULT 'mysql_native_password',
|
||||
`authentication_string` text COLLATE utf8_bin,
|
||||
`password_expired` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
`password_last_changed` timestamp NULL DEFAULT NULL,
|
||||
`password_lifetime` smallint(5) unsigned DEFAULT NULL,
|
||||
`account_locked` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
|
||||
PRIMARY KEY (`Host`,`User`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges'
|
||||
|
@@ -1,3 +1,6 @@
|
||||
-- For MySQL 5.7+
|
||||
set sql_mode='ALLOW_INVALID_DATES';
|
||||
|
||||
drop database if exists issue_941;
|
||||
create database issue_941;
|
||||
use issue_941;
|
||||
|
@@ -74,74 +74,72 @@ FORMAT(rows_examined_pct_95, 6) AS rows_examined_pct_95, rows_sent_max,
|
||||
FORMAT(query_time_median, 6) AS query_time_median, lock_time_sum FROM
|
||||
test.query_review_history', { Slice => {} } );
|
||||
|
||||
my $expected = [ { lock_time_median => '0',
|
||||
lock_time_stddev => '0',
|
||||
query_time_sum => '0.000036',
|
||||
checksum => '11676753765851784517',
|
||||
rows_examined_stddev => '0.000000',
|
||||
ts_cnt => '3',
|
||||
sample => 'SELECT col FROM foo_tbl',
|
||||
rows_examined_median => '0.000000',
|
||||
rows_sent_min => '0',
|
||||
rows_examined_min => '0',
|
||||
rows_sent_sum => '0',
|
||||
query_time_min => '0.000012',
|
||||
query_time_pct_95 => '0.000012',
|
||||
rows_examined_sum => '0',
|
||||
rows_sent_stddev => '0.000000',
|
||||
rows_sent_pct_95 => '0.000000',
|
||||
query_time_max => '0.000012',
|
||||
rows_examined_max => '0',
|
||||
query_time_stddev => '0.000000',
|
||||
rows_sent_median => '0',
|
||||
lock_time_pct_95 => '0.000000',
|
||||
ts_min => '2007-12-18 11:48:27',
|
||||
lock_time_min => '0.000000',
|
||||
lock_time_max => '0',
|
||||
ts_max => '2007-12-18 11:49:30',
|
||||
rows_examined_pct_95 => '0.000000',
|
||||
rows_sent_max => '0',
|
||||
query_time_median => '0.000012',
|
||||
lock_time_sum => '0'
|
||||
},
|
||||
{ lock_time_median => '0',
|
||||
lock_time_stddev => '0',
|
||||
query_time_sum => '0.000036',
|
||||
checksum => '15334040482108055940',
|
||||
rows_examined_stddev => '0.000000',
|
||||
ts_cnt => '3',
|
||||
sample => 'SELECT col FROM bar_tbl',
|
||||
rows_examined_median => '0.000000',
|
||||
rows_sent_min => '0',
|
||||
rows_examined_min => '0',
|
||||
rows_sent_sum => '0',
|
||||
query_time_min => '0.000012',
|
||||
query_time_pct_95 => '0.000012',
|
||||
rows_examined_sum => '0',
|
||||
rows_sent_stddev => '0.000000',
|
||||
rows_sent_pct_95 => '0.000000',
|
||||
query_time_max => '0.000012',
|
||||
rows_examined_max => '0',
|
||||
query_time_stddev => '0.000000',
|
||||
rows_sent_median => '0',
|
||||
lock_time_pct_95 => '0.000000',
|
||||
ts_min => '2007-12-18 11:48:57',
|
||||
lock_time_min => '0.000000',
|
||||
lock_time_max => '0',
|
||||
ts_max => '2007-12-18 11:49:07',
|
||||
rows_examined_pct_95 => '0.000000',
|
||||
rows_sent_max => '0',
|
||||
query_time_median => '0.000012',
|
||||
lock_time_sum => '0'
|
||||
}
|
||||
];
|
||||
my $expected = [
|
||||
{
|
||||
checksum => '11676753765851785216.00000000',
|
||||
lock_time_max => '0.00000000',
|
||||
lock_time_median => '0.00000000',
|
||||
lock_time_min => '0.00000000',
|
||||
lock_time_pct_95 => '0.00000000',
|
||||
lock_time_stddev => '0.00000000',
|
||||
lock_time_sum => '0.00000000',
|
||||
query_time_max => '0.00001200',
|
||||
query_time_median => '0.00001200',
|
||||
query_time_min => '0.00001200',
|
||||
query_time_pct_95 => '0.00001200',
|
||||
query_time_stddev => '0.00000000',
|
||||
query_time_sum => '0.00003600',
|
||||
rows_examined_max => '0.00000000',
|
||||
rows_examined_median => '0.00000000',
|
||||
rows_examined_min => '0.00000000',
|
||||
rows_examined_pct_95 => '0.00000000',
|
||||
rows_examined_stddev => '0.00000000',
|
||||
rows_examined_sum => '0.00000000',
|
||||
rows_sent_max => '0.00000000',
|
||||
rows_sent_median => '0.00000000',
|
||||
rows_sent_min => '0.00000000',
|
||||
rows_sent_pct_95 => '0.00000000',
|
||||
rows_sent_stddev => '0.00000000',
|
||||
rows_sent_sum => '0.00000000',
|
||||
sample => 'SELECT col FROM foo_tbl',
|
||||
ts_cnt => '3.00000000',
|
||||
ts_max => '2007-12-18 11:49:30',
|
||||
ts_min => '2007-12-18 11:48:27'
|
||||
},
|
||||
{
|
||||
checksum => '15334040482108055552.00000000',
|
||||
lock_time_max => '0.00000000',
|
||||
lock_time_median => '0.00000000',
|
||||
lock_time_min => '0.00000000',
|
||||
lock_time_pct_95 => '0.00000000',
|
||||
lock_time_stddev => '0.00000000',
|
||||
lock_time_sum => '0.00000000',
|
||||
query_time_max => '0.00001200',
|
||||
query_time_median => '0.00001200',
|
||||
query_time_min => '0.00001200',
|
||||
query_time_pct_95 => '0.00001200',
|
||||
query_time_stddev => '0.00000000',
|
||||
query_time_sum => '0.00003600',
|
||||
rows_examined_max => '0.00000000',
|
||||
rows_examined_median => '0.00000000',
|
||||
rows_examined_min => '0.00000000',
|
||||
rows_examined_pct_95 => '0.00000000',
|
||||
rows_examined_stddev => '0.00000000',
|
||||
rows_examined_sum => '0.00000000',
|
||||
rows_sent_max => '0.00000000',
|
||||
rows_sent_median => '0.00000000',
|
||||
rows_sent_min => '0.00000000',
|
||||
rows_sent_pct_95 => '0.00000000',
|
||||
rows_sent_stddev => '0.00000000',
|
||||
rows_sent_sum => '0.00000000',
|
||||
sample => 'SELECT col FROM bar_tbl',
|
||||
ts_cnt => '3.00000000',
|
||||
ts_max => '2007-12-18 11:49:07',
|
||||
ts_min => '2007-12-18 11:48:57'
|
||||
}
|
||||
];
|
||||
|
||||
normalize_numbers($res);
|
||||
normalize_numbers($expected);
|
||||
|
||||
diag('--------------------------------------------------------');
|
||||
diag(Data::Dumper::Dumper($res));
|
||||
diag('--------------------------------------------------------');
|
||||
|
||||
is_deeply(
|
||||
$res,
|
||||
|
@@ -1,3 +1,6 @@
|
||||
-- For MySQL 5.7+
|
||||
set sql_mode='ALLOW_INVALID_DATES';
|
||||
|
||||
-- Issue 602: mk-table-checksum issue with invalid dates
|
||||
drop database if exists issue_602;
|
||||
create database issue_602;
|
||||
|
@@ -3,7 +3,7 @@ CREATE TABLE `messages` (
|
||||
`MID` int(20) NOT NULL default '0',
|
||||
`TID` bigint(20) NOT NULL default '0',
|
||||
`AUTHOR` varchar(32) NOT NULL default '',
|
||||
`DATE` datetime NOT NULL default '0000-00-00 00:00:00',
|
||||
`DATE` datetime NOT NULL default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`INTERNAL` char(1) NOT NULL default '0',
|
||||
`ISOPER` char(1) NOT NULL default '0',
|
||||
`HEADERS` text NOT NULL,
|
||||
|
@@ -38,18 +38,18 @@ sub clear_warnings {
|
||||
|
||||
# default 5.7 mode "STRICT_TRANS_TABLES" converts truncation warnings to errors
|
||||
# as this is simply a change in category of difference, we disable it for
|
||||
# test to work.
|
||||
|
||||
# test to work. DON'T USE GLOBAL for SqlModes otherwise it will affect the server
|
||||
# globally but the current connection will remain unchanged.
|
||||
use SqlModes;
|
||||
my $modes_host1 = new SqlModes($dbh1, global=>1);
|
||||
my $modes_host2 = new SqlModes($dbh2, global=>1);
|
||||
my $modes_host1 = new SqlModes($dbh1);
|
||||
my $modes_host2 = new SqlModes($dbh2);
|
||||
|
||||
$modes_host1->del('STRICT_TRANS_TABLES');
|
||||
$modes_host2->del('STRICT_TRANS_TABLES');
|
||||
|
||||
$dbh1->do("INSERT INTO test.t VALUES (2, '', 123456789)");
|
||||
$dbh2->do("INSERT INTO test.t VALUES (3, '', 123456789)");
|
||||
|
||||
|
||||
my $event_exec = EventExecutor->new();
|
||||
my $w1 = $event_exec->get_warnings(dbh => $dbh1);
|
||||
my $w2 = $event_exec->get_warnings(dbh => $dbh2);
|
||||
|
Reference in New Issue
Block a user