diff --git a/t/lib/SchemaIterator.t b/t/lib/SchemaIterator.t index 91c5b6b5..8f5bd6a8 100644 --- a/t/lib/SchemaIterator.t +++ b/t/lib/SchemaIterator.t @@ -130,7 +130,7 @@ SKIP: { # Test simple, unfiltered get_db_itr(). # ######################################################################## test_so( - result => $sandbox_version eq '5.1' ? "$out/all-dbs-tbls.txt" + result => $sandbox_version ge '5.1' ? "$out/all-dbs-tbls.txt" : "$out/all-dbs-tbls-5.0.txt", test_name => "Iterate all schema objects with dbh", ); @@ -373,7 +373,9 @@ is( # ############################################################################ test_so( filters => [qw(-d sakila)], - result => "$out/resume-from-sakila-payment.txt", + result => $sandbox_version ge '5.1' + ? "$out/resume-from-sakila-payment.txt" + : "$out/resume-from-sakila-payment-5.0.txt", resume => 'sakila.payment', test_name => "Resume" ); @@ -381,7 +383,9 @@ test_so( # Ignore the table being resumed from; resume from next table. test_so( filters => [qw(-d sakila --ignore-tables sakila.payment)], - result => "$out/resume-from-ignored-sakila-payment.txt", + result => $sandbox_version ge '5.1' + ? "$out/resume-from-ignored-sakila-payment.txt" + : "$out/resume-from-ignored-sakila-payment-5.0.txt", resume => 'sakila.payment', test_name => "Resume from ignored table" ); diff --git a/t/lib/samples/SchemaIterator/all-dbs-tbls-5.0.txt b/t/lib/samples/SchemaIterator/all-dbs-tbls-5.0.txt index 41c4720c..dabc12bc 100644 --- a/t/lib/samples/SchemaIterator/all-dbs-tbls-5.0.txt +++ b/t/lib/samples/SchemaIterator/all-dbs-tbls-5.0.txt @@ -1,33 +1,454 @@ 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(16) 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(16) 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', + PRIMARY KEY (`Host`,`Db`,`User`), + KEY `User` (`User`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Database privileges' + 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.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` char(128) NOT NULL, + PRIMARY KEY (`help_category_id`), + UNIQUE KEY `name` (`name`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 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=MyISAM DEFAULT CHARSET=utf8 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=MyISAM DEFAULT CHARSET=utf8 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` char(128) NOT NULL, + PRIMARY KEY (`help_topic_id`), + UNIQUE KEY `name` (`name`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='help topics' + mysql.host +CREATE TABLE `host` ( + `Host` char(60) collate utf8_bin NOT NULL default '', + `Db` char(64) 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', + PRIMARY KEY (`Host`,`Db`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Host privileges; Merged with database privileges' + mysql.proc +CREATE TABLE `proc` ( + `db` char(64) character set utf8 collate utf8_bin NOT NULL default '', + `name` char(64) NOT NULL default '', + `type` enum('FUNCTION','PROCEDURE') NOT NULL, + `specific_name` char(64) NOT NULL default '', + `language` enum('SQL') NOT NULL default 'SQL', + `sql_data_access` enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') NOT NULL default 'CONTAINS_SQL', + `is_deterministic` enum('YES','NO') NOT NULL default 'NO', + `security_type` enum('INVOKER','DEFINER') NOT NULL default 'DEFINER', + `param_list` blob NOT NULL, + `returns` char(64) NOT NULL default '', + `body` longblob NOT NULL, + `definer` char(77) character set utf8 collate utf8_bin NOT NULL default '', + `created` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, + `modified` timestamp NOT NULL default '0000-00-00 00:00:00', + `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') NOT NULL default '', + `comment` char(64) character set utf8 collate utf8_bin NOT NULL default '', + PRIMARY KEY (`db`,`name`,`type`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Stored Procedures' + 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(16) collate utf8_bin NOT NULL default '', + `Routine_name` char(64) collate utf8_bin NOT NULL default '', + `Routine_type` enum('FUNCTION','PROCEDURE') collate utf8_bin NOT NULL, + `Grantor` char(77) 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.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(16) collate utf8_bin NOT NULL default '', + `Table_name` char(64) collate utf8_bin NOT NULL default '', + `Grantor` char(77) 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') 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=MyISAM DEFAULT CHARSET=utf8 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=MyISAM DEFAULT CHARSET=utf8 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=MyISAM DEFAULT CHARSET=utf8 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=MyISAM DEFAULT CHARSET=utf8 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=MyISAM DEFAULT CHARSET=utf8 COMMENT='Time zone transition types' + mysql.user +CREATE TABLE `user` ( + `Host` char(60) collate utf8_bin NOT NULL default '', + `User` char(16) collate utf8_bin NOT NULL default '', + `Password` char(41) character set latin1 collate latin1_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', + `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', + PRIMARY KEY (`Host`,`User`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges' + 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_film` FOREIGN KEY (`film_id`) REFERENCES `film` (`film_id`) ON UPDATE CASCADE, + CONSTRAINT `fk_film_category_category` FOREIGN KEY (`category_id`) REFERENCES `category` (`category_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_store` FOREIGN KEY (`store_id`) REFERENCES `store` (`store_id`) ON UPDATE CASCADE, + CONSTRAINT `fk_inventory_film` FOREIGN KEY (`film_id`) REFERENCES `film` (`film_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_rental` FOREIGN KEY (`rental_id`) REFERENCES `rental` (`rental_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `fk_payment_customer` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`customer_id`) 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_staff` FOREIGN KEY (`staff_id`) REFERENCES `staff` (`staff_id`) ON UPDATE CASCADE, + CONSTRAINT `fk_rental_inventory` FOREIGN KEY (`inventory_id`) REFERENCES `inventory` (`inventory_id`) ON UPDATE CASCADE, + CONSTRAINT `fk_rental_customer` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`customer_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_store` FOREIGN KEY (`store_id`) REFERENCES `store` (`store_id`) ON UPDATE CASCADE, + CONSTRAINT `fk_staff_address` FOREIGN KEY (`address_id`) REFERENCES `address` (`address_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_staff` FOREIGN KEY (`manager_staff_id`) REFERENCES `staff` (`staff_id`) ON UPDATE CASCADE, + CONSTRAINT `fk_store_address` FOREIGN KEY (`address_id`) REFERENCES `address` (`address_id`) ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 + diff --git a/t/lib/samples/SchemaIterator/resume-from-ignored-sakila-payment-5.0.txt b/t/lib/samples/SchemaIterator/resume-from-ignored-sakila-payment-5.0.txt new file mode 100644 index 00000000..825a2b81 --- /dev/null +++ b/t/lib/samples/SchemaIterator/resume-from-ignored-sakila-payment-5.0.txt @@ -0,0 +1,52 @@ +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_staff` FOREIGN KEY (`staff_id`) REFERENCES `staff` (`staff_id`) ON UPDATE CASCADE, + CONSTRAINT `fk_rental_inventory` FOREIGN KEY (`inventory_id`) REFERENCES `inventory` (`inventory_id`) ON UPDATE CASCADE, + CONSTRAINT `fk_rental_customer` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`customer_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_store` FOREIGN KEY (`store_id`) REFERENCES `store` (`store_id`) ON UPDATE CASCADE, + CONSTRAINT `fk_staff_address` FOREIGN KEY (`address_id`) REFERENCES `address` (`address_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_staff` FOREIGN KEY (`manager_staff_id`) REFERENCES `staff` (`staff_id`) ON UPDATE CASCADE, + CONSTRAINT `fk_store_address` FOREIGN KEY (`address_id`) REFERENCES `address` (`address_id`) ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 + diff --git a/t/lib/samples/SchemaIterator/resume-from-sakila-payment-5.0.txt b/t/lib/samples/SchemaIterator/resume-from-sakila-payment-5.0.txt new file mode 100644 index 00000000..3d0ec419 --- /dev/null +++ b/t/lib/samples/SchemaIterator/resume-from-sakila-payment-5.0.txt @@ -0,0 +1,70 @@ +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_rental` FOREIGN KEY (`rental_id`) REFERENCES `rental` (`rental_id`) ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `fk_payment_customer` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`customer_id`) 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_staff` FOREIGN KEY (`staff_id`) REFERENCES `staff` (`staff_id`) ON UPDATE CASCADE, + CONSTRAINT `fk_rental_inventory` FOREIGN KEY (`inventory_id`) REFERENCES `inventory` (`inventory_id`) ON UPDATE CASCADE, + CONSTRAINT `fk_rental_customer` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`customer_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_store` FOREIGN KEY (`store_id`) REFERENCES `store` (`store_id`) ON UPDATE CASCADE, + CONSTRAINT `fk_staff_address` FOREIGN KEY (`address_id`) REFERENCES `address` (`address_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_staff` FOREIGN KEY (`manager_staff_id`) REFERENCES `staff` (`staff_id`) ON UPDATE CASCADE, + CONSTRAINT `fk_store_address` FOREIGN KEY (`address_id`) REFERENCES `address` (`address_id`) ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 +