From f9cb2ad2d08752663d583e54dfd7b11b49fbe53c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Meneghini=20Fauth?= Date: Sun, 24 Mar 2019 17:23:42 -0300 Subject: [PATCH] Create PhpMyAdmin\InternalRelations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Extracts libraries/information_schema_relations.inc.php and libraries/mysql_relations.inc.php relations to InternalRelations class. Signed-off-by: MaurĂ­cio Meneghini Fauth --- libraries/classes/InternalRelations.php | 505 ++++++++++++++++++ libraries/classes/Relation.php | 10 +- .../information_schema_relations.inc.php | 327 ------------ libraries/mysql_relations.inc.php | 170 ------ 4 files changed, 509 insertions(+), 503 deletions(-) create mode 100644 libraries/classes/InternalRelations.php delete mode 100644 libraries/information_schema_relations.inc.php delete mode 100644 libraries/mysql_relations.inc.php diff --git a/libraries/classes/InternalRelations.php b/libraries/classes/InternalRelations.php new file mode 100644 index 0000000000..b5ba36f0f3 --- /dev/null +++ b/libraries/classes/InternalRelations.php @@ -0,0 +1,505 @@ + [ + 'DEFAULT_COLLATE_NAME' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'COLLATIONS', + 'foreign_field' => 'COLLATION_NAME', + ], + ], + 'COLLATIONS' => [ + 'CHARACTER_SET_NAME' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'CHARACTER_SETS', + 'foreign_field' => 'CHARACTER_SET_NAME', + ], + ], + 'COLLATION_CHARACTER_SET_APPLICABILITY' => [ + 'CHARACTER_SET_NAME' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'CHARACTER_SETS', + 'foreign_field' => 'CHARACTER_SET_NAME', + ], + 'COLLATION_NAME' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'COLLATIONS', + 'foreign_field' => 'COLLATION_NAME', + ] + ], + 'COLUMNS' => [ + 'TABLE_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + 'CHARACTER_SET_NAME' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'CHARACTER_SETS', + 'foreign_field' => 'CHARACTER_SET_NAME', + ], + 'COLLATION_NAME' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'COLLATIONS', + 'foreign_field' => 'COLLATION_NAME', + ] + ], + 'COLUMN_PRIVILEGES' => [ + 'TABLE_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + ], + 'EVENTS' => [ + 'EVENT_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + 'CHARACTER_SET_CLIENT' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'CHARACTER_SETS', + 'foreign_field' => 'CHARACTER_SET_NAME', + ], + 'COLLATION_CONNECTION' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'COLLATIONS', + 'foreign_field' => 'COLLATION_NAME', + ], + 'DATABASE_COLLATION' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'COLLATIONS', + 'foreign_field' => 'COLLATION_NAME', + ] + ], + 'FILES' => [ + 'TABLESPACE_NAME' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'TABLESPACES', + 'foreign_field' => 'TABLESPACE_NAME', + ], + 'TABLE_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + 'COLLATION_CONNECTION' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'COLLATIONS', + 'foreign_field' => 'COLLATION_NAME', + ], + 'ENGINE' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'ENGINES', + 'foreign_field' => 'ENGINE', + ] + ], + 'KEY_COLUMN_USAGE' => [ + 'CONSTRAINT_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + 'TABLE_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + 'REFERENCED_TABLE_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + ], + 'PARAMETERS' => [ + 'SPECIFIC_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + 'CHARACTER_SET_NAME' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'CHARACTER_SETS', + 'foreign_field' => 'CHARACTER_SET_NAME', + ], + 'COLLATION_NAME' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'COLLATIONS', + 'foreign_field' => 'COLLATION_NAME', + ] + ], + 'PARTITIONS' => [ + 'TABLE_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + 'TABLESPACE_NAME' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'TABLESPACES', + 'foreign_field' => 'TABLESPACE_NAME', + ], + ], + 'PROCESSLIST' => [ + 'DB' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + ], + 'REFERENTIAL_CONSTRAINTS' => [ + 'CONSTRAINT_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + 'UNIQUE_CONSTRAINT_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + ], + 'ROUTINES' => [ + 'ROUTINE_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + 'CHARACTER_SET_NAME' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'CHARACTER_SETS', + 'foreign_field' => 'CHARACTER_SET_NAME', + ], + 'COLLATION_NAME' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'COLLATIONS', + 'foreign_field' => 'COLLATION_NAME', + ], + 'CHARACTER_SET_CLIENT' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'CHARACTER_SETS', + 'foreign_field' => 'CHARACTER_SET_NAME', + ], + 'COLLATION_CONNECTION' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'COLLATIONS', + 'foreign_field' => 'COLLATION_NAME', + ], + 'DATABASE_COLLATION' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'COLLATIONS', + 'foreign_field' => 'COLLATION_NAME', + ] + ], + 'SCHEMATA' => [ + 'DEFAULT_CHARACTER_SET_NAME' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'CHARACTER_SETS', + 'foreign_field' => 'CHARACTER_SET_NAME', + ], + 'DEFAULT_COLLATION_NAME' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'COLLATIONS', + 'foreign_field' => 'COLLATION_NAME', + ] + ], + 'SCHEMA_PRIVILEGES' => [ + 'TABLE_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + ], + 'STATISTICS' => [ + 'TABLE_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + 'INDEX_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + ], + 'TABLES' => [ + 'TABLE_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + 'TABLE_COLLATION' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'COLLATIONS', + 'foreign_field' => 'COLLATION_NAME', + ], + 'ENGINE' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'ENGINES', + 'foreign_field' => 'ENGINE', + ], + ], + 'TABLESAPCES' => [ + 'ENGINE' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'ENGINES', + 'foreign_field' => 'ENGINE', + ], + ], + 'TABLE_CONSTRAINTS' => [ + 'CONSTRAINT_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + 'TABLE_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ] + ], + 'TABLE_PRIVILEGES' => [ + 'TABLE_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + ], + 'TRIGGERS' => [ + 'TRIGGER_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + 'EVENT_OBJECT_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + 'CHARACTER_SET_CLIENT' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'CHARACTER_SETS', + 'foreign_field' => 'CHARACTER_SET_NAME', + ], + 'COLLATION_CONNECTION' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'COLLATIONS', + 'foreign_field' => 'COLLATION_NAME', + ], + 'DATABASE_COLLATION' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'COLLATIONS', + 'foreign_field' => 'COLLATION_NAME', + ] + ], + 'VIEWS' => [ + 'TABLE_SCHEMA' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + 'CHARACTER_SET_CLIENT' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'CHARACTER_SETS', + 'foreign_field' => 'CHARACTER_SET_NAME', + ], + 'COLLATION_CONNECTION' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'COLLATIONS', + 'foreign_field' => 'COLLATION_NAME', + ], + ] + ]; + + /** + * @var array + */ + private static $mysql = [ + 'columns_priv' => [ + 'Db' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + ], + 'db' => [ + 'Db' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + ], + 'event' => [ + 'db' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + 'character_set_client' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'CHARACTER_SETS', + 'foreign_field' => 'CHARACTER_SET_NAME', + ], + 'collation_connection' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'COLLATIONS', + 'foreign_field' => 'COLLATION_NAME', + ], + 'db_collation' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'COLLATIONS', + 'foreign_field' => 'COLLATION_NAME', + ], + ], + 'help_category' => [ + 'parent_category_id' => [ + 'foreign_db' => 'mysql', + 'foreign_table' => 'help_category', + 'foreign_field' => 'help_category_id', + ], + ], + 'help_relation' => [ + 'help_topic_id' => [ + 'foreign_db' => 'mysql', + 'foreign_table' => 'help_topic', + 'foreign_field' => 'help_topic_id', + ], + 'help_keyword_id' => [ + 'foreign_db' => 'mysql', + 'foreign_table' => 'help_keyword', + 'foreign_field' => 'help_keyword_id', + ], + ], + 'help_topic' => [ + 'help_category_id' => [ + 'foreign_db' => 'mysql', + 'foreign_table' => 'help_category', + 'foreign_field' => 'help_category_id', + ], + ], + 'innodb_index_stats' => [ + 'database_name' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + ], + 'innodb_table_stats' => [ + 'database_name' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + ], + 'proc' => [ + 'db' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + 'character_set_client' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'CHARACTER_SETS', + 'foreign_field' => 'CHARACTER_SET_NAME', + ], + 'collation_connection' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'COLLATIONS', + 'foreign_field' => 'COLLATION_NAME', + ], + 'db_collation' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'COLLATIONS', + 'foreign_field' => 'COLLATION_NAME', + ], + ], + 'proc_priv' => [ + 'Db' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + ], + 'servers' => [ + 'Db' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + ], + 'slow_log' => [ + 'db' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + ], + 'tables_priv' => [ + 'Db' => [ + 'foreign_db' => 'information_schema', + 'foreign_table' => 'SCHEMATA', + 'foreign_field' => 'SCHEMA_NAME', + ], + ], + 'time_zone_name' => [ + 'Time_zone_id' => [ + 'foreign_db' => 'mysql', + 'foreign_table' => 'time_zone', + 'foreign_field' => 'Time_zone_id', + ], + ], + 'time_zone_transition' => [ + 'Time_zone_id' => [ + 'foreign_db' => 'mysql', + 'foreign_table' => 'time_zone', + 'foreign_field' => 'Time_zone_id', + ], + 'Transition_time' => [ + 'foreign_db' => 'mysql', + 'foreign_table' => 'time_zone_leap_second', + 'foreign_field' => 'Transition_time', + ], + ], + 'time_zone_transition_type' => [ + 'Time_zone_id' => [ + 'foreign_db' => 'mysql', + 'foreign_table' => 'time_zone', + 'foreign_field' => 'Time_zone_id', + ], + ], + ]; + + /** + * @return array + */ + public static function getInformationSchema(): array + { + return self::$informationSchema; + } + + /** + * @return array + */ + public static function getMySql(): array + { + return self::$mysql; + } +} diff --git a/libraries/classes/Relation.php b/libraries/classes/Relation.php index e70c6499d2..1ce9e722be 100644 --- a/libraries/classes/Relation.php +++ b/libraries/classes/Relation.php @@ -841,14 +841,12 @@ class Relation && ($source == 'internal' || $source == 'both') ) { if ($isInformationSchema) { - $relations_key = 'information_schema_relations'; - include_once ROOT_PATH . 'libraries/information_schema_relations.inc.php'; + $internalRelations = InternalRelations::getInformationSchema(); } else { - $relations_key = 'mysql_relations'; - include_once ROOT_PATH . 'libraries/mysql_relations.inc.php'; + $internalRelations = InternalRelations::getMySql(); } - if (isset($GLOBALS[$relations_key][$table])) { - foreach ($GLOBALS[$relations_key][$table] as $field => $relations) { + if (isset($internalRelations[$table])) { + foreach ($internalRelations[$table] as $field => $relations) { if ((strlen($column) === 0 || $column == $field) && (! isset($foreign[$field]) || strlen($foreign[$field]) === 0) diff --git a/libraries/information_schema_relations.inc.php b/libraries/information_schema_relations.inc.php deleted file mode 100644 index 1f8d6294e8..0000000000 --- a/libraries/information_schema_relations.inc.php +++ /dev/null @@ -1,327 +0,0 @@ - [ - 'DEFAULT_COLLATE_NAME' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'COLLATIONS', - 'foreign_field' => 'COLLATION_NAME', - ], - ], - 'COLLATIONS' => [ - 'CHARACTER_SET_NAME' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'CHARACTER_SETS', - 'foreign_field' => 'CHARACTER_SET_NAME', - ], - ], - 'COLLATION_CHARACTER_SET_APPLICABILITY' => [ - 'CHARACTER_SET_NAME' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'CHARACTER_SETS', - 'foreign_field' => 'CHARACTER_SET_NAME', - ], - 'COLLATION_NAME' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'COLLATIONS', - 'foreign_field' => 'COLLATION_NAME', - ] - ], - 'COLUMNS' => [ - 'TABLE_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - 'CHARACTER_SET_NAME' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'CHARACTER_SETS', - 'foreign_field' => 'CHARACTER_SET_NAME', - ], - 'COLLATION_NAME' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'COLLATIONS', - 'foreign_field' => 'COLLATION_NAME', - ] - ], - 'COLUMN_PRIVILEGES' => [ - 'TABLE_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - ], - 'EVENTS' => [ - 'EVENT_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - 'CHARACTER_SET_CLIENT' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'CHARACTER_SETS', - 'foreign_field' => 'CHARACTER_SET_NAME', - ], - 'COLLATION_CONNECTION' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'COLLATIONS', - 'foreign_field' => 'COLLATION_NAME', - ], - 'DATABASE_COLLATION' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'COLLATIONS', - 'foreign_field' => 'COLLATION_NAME', - ] - ], - 'FILES' => [ - 'TABLESPACE_NAME' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'TABLESPACES', - 'foreign_field' => 'TABLESPACE_NAME', - ], - 'TABLE_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - 'COLLATION_CONNECTION' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'COLLATIONS', - 'foreign_field' => 'COLLATION_NAME', - ], - 'ENGINE' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'ENGINES', - 'foreign_field' => 'ENGINE', - ] - ], - 'KEY_COLUMN_USAGE' => [ - 'CONSTRAINT_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - 'TABLE_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - 'REFERENCED_TABLE_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - ], - 'PARAMETERS' => [ - 'SPECIFIC_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - 'CHARACTER_SET_NAME' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'CHARACTER_SETS', - 'foreign_field' => 'CHARACTER_SET_NAME', - ], - 'COLLATION_NAME' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'COLLATIONS', - 'foreign_field' => 'COLLATION_NAME', - ] - ], - 'PARTITIONS' => [ - 'TABLE_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - 'TABLESPACE_NAME' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'TABLESPACES', - 'foreign_field' => 'TABLESPACE_NAME', - ], - ], - 'PROCESSLIST' => [ - 'DB' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - ], - 'REFERENTIAL_CONSTRAINTS' => [ - 'CONSTRAINT_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - 'UNIQUE_CONSTRAINT_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - ], - 'ROUTINES' => [ - 'ROUTINE_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - 'CHARACTER_SET_NAME' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'CHARACTER_SETS', - 'foreign_field' => 'CHARACTER_SET_NAME', - ], - 'COLLATION_NAME' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'COLLATIONS', - 'foreign_field' => 'COLLATION_NAME', - ], - 'CHARACTER_SET_CLIENT' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'CHARACTER_SETS', - 'foreign_field' => 'CHARACTER_SET_NAME', - ], - 'COLLATION_CONNECTION' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'COLLATIONS', - 'foreign_field' => 'COLLATION_NAME', - ], - 'DATABASE_COLLATION' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'COLLATIONS', - 'foreign_field' => 'COLLATION_NAME', - ] - ], - 'SCHEMATA' => [ - 'DEFAULT_CHARACTER_SET_NAME' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'CHARACTER_SETS', - 'foreign_field' => 'CHARACTER_SET_NAME', - ], - 'DEFAULT_COLLATION_NAME' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'COLLATIONS', - 'foreign_field' => 'COLLATION_NAME', - ] - ], - 'SCHEMA_PRIVILEGES' => [ - 'TABLE_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - ], - 'STATISTICS' => [ - 'TABLE_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - 'INDEX_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - ], - 'TABLES' => [ - 'TABLE_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - 'TABLE_COLLATION' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'COLLATIONS', - 'foreign_field' => 'COLLATION_NAME', - ], - 'ENGINE' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'ENGINES', - 'foreign_field' => 'ENGINE', - ], - ], - 'TABLESAPCES' => [ - 'ENGINE' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'ENGINES', - 'foreign_field' => 'ENGINE', - ], - ], - 'TABLE_CONSTRAINTS' => [ - 'CONSTRAINT_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - 'TABLE_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ] - ], - 'TABLE_PRIVILEGES' => [ - 'TABLE_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - ], - 'TRIGGERS' => [ - 'TRIGGER_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - 'EVENT_OBJECT_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - 'CHARACTER_SET_CLIENT' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'CHARACTER_SETS', - 'foreign_field' => 'CHARACTER_SET_NAME', - ], - 'COLLATION_CONNECTION' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'COLLATIONS', - 'foreign_field' => 'COLLATION_NAME', - ], - 'DATABASE_COLLATION' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'COLLATIONS', - 'foreign_field' => 'COLLATION_NAME', - ] - ], - 'VIEWS' => [ - 'TABLE_SCHEMA' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - 'CHARACTER_SET_CLIENT' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'CHARACTER_SETS', - 'foreign_field' => 'CHARACTER_SET_NAME', - ], - 'COLLATION_CONNECTION' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'COLLATIONS', - 'foreign_field' => 'COLLATION_NAME', - ], - ] -]; diff --git a/libraries/mysql_relations.inc.php b/libraries/mysql_relations.inc.php deleted file mode 100644 index c58e7150b7..0000000000 --- a/libraries/mysql_relations.inc.php +++ /dev/null @@ -1,170 +0,0 @@ - [ - 'Db' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - ], - 'db' => [ - 'Db' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - ], - 'event' => [ - 'db' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - 'character_set_client' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'CHARACTER_SETS', - 'foreign_field' => 'CHARACTER_SET_NAME', - ], - 'collation_connection' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'COLLATIONS', - 'foreign_field' => 'COLLATION_NAME', - ], - 'db_collation' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'COLLATIONS', - 'foreign_field' => 'COLLATION_NAME', - ], - ], - 'help_category' => [ - 'parent_category_id' => [ - 'foreign_db' => 'mysql', - 'foreign_table' => 'help_category', - 'foreign_field' => 'help_category_id', - ], - ], - 'help_relation' => [ - 'help_topic_id' => [ - 'foreign_db' => 'mysql', - 'foreign_table' => 'help_topic', - 'foreign_field' => 'help_topic_id', - ], - 'help_keyword_id' => [ - 'foreign_db' => 'mysql', - 'foreign_table' => 'help_keyword', - 'foreign_field' => 'help_keyword_id', - ], - ], - 'help_topic' => [ - 'help_category_id' => [ - 'foreign_db' => 'mysql', - 'foreign_table' => 'help_category', - 'foreign_field' => 'help_category_id', - ], - ], - 'innodb_index_stats' => [ - 'database_name' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - ], - 'innodb_table_stats' => [ - 'database_name' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - ], - 'proc' => [ - 'db' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - 'character_set_client' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'CHARACTER_SETS', - 'foreign_field' => 'CHARACTER_SET_NAME', - ], - 'collation_connection' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'COLLATIONS', - 'foreign_field' => 'COLLATION_NAME', - ], - 'db_collation' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'COLLATIONS', - 'foreign_field' => 'COLLATION_NAME', - ], - ], - 'proc_priv' => [ - 'Db' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - ], - 'servers' => [ - 'Db' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - ], - 'slow_log' => [ - 'db' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - ], - 'tables_priv' => [ - 'Db' => [ - 'foreign_db' => 'information_schema', - 'foreign_table' => 'SCHEMATA', - 'foreign_field' => 'SCHEMA_NAME', - ], - ], - 'time_zone_name' => [ - 'Time_zone_id' => [ - 'foreign_db' => 'mysql', - 'foreign_table' => 'time_zone', - 'foreign_field' => 'Time_zone_id', - ], - ], - 'time_zone_transition' => [ - 'Time_zone_id' => [ - 'foreign_db' => 'mysql', - 'foreign_table' => 'time_zone', - 'foreign_field' => 'Time_zone_id', - ], - 'Transition_time' => [ - 'foreign_db' => 'mysql', - 'foreign_table' => 'time_zone_leap_second', - 'foreign_field' => 'Transition_time', - ], - ], - 'time_zone_transition_type' => [ - 'Time_zone_id' => [ - 'foreign_db' => 'mysql', - 'foreign_table' => 'time_zone', - 'foreign_field' => 'Time_zone_id', - ], - ], -];