From c63227e2b6142f4364b25192b38872fc91399360 Mon Sep 17 00:00:00 2001 From: Mark Story Date: Wed, 1 Jul 2015 23:07:53 -0400 Subject: [PATCH] Restrict constraint reflection to be on the same schema. Only collect constraint data for matching database names. Refs #6918 --- src/Database/Schema/MysqlSchema.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Database/Schema/MysqlSchema.php b/src/Database/Schema/MysqlSchema.php index da3d301c680..aad36f8bf39 100644 --- a/src/Database/Schema/MysqlSchema.php +++ b/src/Database/Schema/MysqlSchema.php @@ -222,8 +222,11 @@ public function describeForeignKeySql($tableName, $config) { $sql = 'SELECT * FROM information_schema.key_column_usage AS kcu INNER JOIN information_schema.referential_constraints AS rc - ON (kcu.CONSTRAINT_NAME = rc.CONSTRAINT_NAME) - WHERE kcu.TABLE_SCHEMA = ? AND kcu.TABLE_NAME = ? and rc.TABLE_NAME = ?'; + ON ( + kcu.CONSTRAINT_NAME = rc.CONSTRAINT_NAME + AND kcu.CONSTRAINT_SCHEMA = rc.CONSTRAINT_SCHEMA + ) + WHERE kcu.TABLE_SCHEMA = ? AND kcu.TABLE_NAME = ? AND rc.TABLE_NAME = ?'; return [$sql, [$config['database'], $tableName, $tableName]]; }