Browse Source

Fix #18171: Change case of column names in SQL query for `findConstraints` to fix MySQL 8 compatibility

tags/2.0.37
DarkDef 4 years ago committed by GitHub
parent
commit
f1aaa0de89
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      framework/CHANGELOG.md
  2. 24
      framework/db/mysql/Schema.php

3
framework/CHANGELOG.md

@ -4,7 +4,8 @@ Yii Framework 2 Change Log
2.0.37 under development
------------------------
Fix #18170: Fix regression in passing extra console command arguments to the action (darkdef)
- Bug #18171: Change case of column names in SQL query for `findConstraints` to fix MySQL 8 compatibility (darkdef)
- Bug #18170: Fix 2.0.36 regression in passing extra console command arguments to the action (darkdef)
2.0.36 July 07, 2020

24
framework/db/mysql/Schema.php

@ -370,20 +370,20 @@ SQL;
{
$sql = <<<'SQL'
SELECT
kcu.constraint_name,
kcu.column_name,
kcu.referenced_table_name,
kcu.referenced_column_name
FROM information_schema.referential_constraints AS rc
JOIN information_schema.key_column_usage AS kcu ON
`kcu`.`CONSTRAINT_NAME` AS `constraint_name`,
`kcu`.`COLUMN_NAME` AS `column_name`,
`kcu`.`REFERENCED_TABLE_NAME` AS `referenced_table_name`,
`kcu`.`REFERENCED_COLUMN_NAME` AS `referenced_column_name`
FROM `information_schema`.`REFERENTIAL_CONSTRAINTS` AS `rc`
JOIN `information_schema`.`KEY_COLUMN_USAGE` AS `kcu` ON
(
kcu.constraint_catalog = rc.constraint_catalog OR
(kcu.constraint_catalog IS NULL AND rc.constraint_catalog IS NULL)
`kcu`.`CONSTRAINT_CATALOG` = `rc`.`CONSTRAINT_CATALOG` OR
(`kcu`.`CONSTRAINT_CATALOG` IS NULL AND `rc`.`CONSTRAINT_CATALOG` IS NULL)
) AND
kcu.constraint_schema = rc.constraint_schema AND
kcu.constraint_name = rc.constraint_name
WHERE rc.constraint_schema = database() AND kcu.table_schema = database()
AND rc.table_name = :tableName AND kcu.table_name = :tableName1
`kcu`.`CONSTRAINT_SCHEMA` = `rc`.`CONSTRAINT_SCHEMA` AND
`kcu`.`CONSTRAINT_NAME` = `rc`.`CONSTRAINT_NAME`
WHERE `rc`.`CONSTRAINT_SCHEMA` = database() AND `kcu`.`TABLE_SCHEMA` = database()
AND `rc`.`TABLE_NAME` = :tableName AND `kcu`.`TABLE_NAME` = :tableName1
SQL;
try {

Loading…
Cancel
Save