Fix #16694 - Do not escape _ for TABLE_NAME in information schema

Signed-off-by: William Desportes <williamdes@wdes.fr>
This commit is contained in:
William Desportes 2021-03-22 23:18:19 +01:00
parent 71a048067b
commit 942a252b46
No known key found for this signature in database
GPG Key ID: 90A0EF1B8251A889
2 changed files with 2 additions and 4 deletions

View File

@ -2324,8 +2324,6 @@ class Util
// If a table name was also provided and we still didn't
// find any valid privileges, try table-wise privileges.
if ($tbl !== null) {
// need to escape wildcards in db and table names, see bug #3518484
$tbl = str_replace(['%', '_'], ['\%', '\_'], $tbl);
$query .= " AND TABLE_NAME='%s'";
$table_privileges = $dbi->fetchValue(
sprintf(

View File

@ -2546,7 +2546,7 @@ class UtilTest extends AbstractTestCase
[
'SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`TABLE_PRIVILEGES`'
. " WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT'"
. " AND 'my_data_base' LIKE `TABLE_SCHEMA` AND TABLE_NAME='my\_data\_table'",
. " AND 'my_data_base' LIKE `TABLE_SCHEMA` AND TABLE_NAME='my_data_table'",
]
)
->willReturnOnConsecutiveCalls(
@ -2586,7 +2586,7 @@ class UtilTest extends AbstractTestCase
[
'SELECT `PRIVILEGE_TYPE` FROM `INFORMATION_SCHEMA`.`TABLE_PRIVILEGES`'
. " WHERE GRANTEE='''groot_%''@''%''' AND PRIVILEGE_TYPE='EVENT'"
. " AND 'my_data_base' LIKE `TABLE_SCHEMA` AND TABLE_NAME='my\_data\_table'",
. " AND 'my_data_base' LIKE `TABLE_SCHEMA` AND TABLE_NAME='my_data_table'",
]
)
->willReturnOnConsecutiveCalls(