Fix #1422 incorrect quoting of expressions in XML queries

This commit is contained in:
Kijin Sung 2020-10-21 23:20:35 +09:00
parent 57b356f5fa
commit 28b3c2ef34
4 changed files with 35 additions and 9 deletions

View file

@ -581,11 +581,13 @@ class Query extends VariableBase
*/
public static function quoteName(string $column_name): string
{
$columns = explode('.', $column_name);
$columns = array_map(function($str) {
return $str === '*' ? $str : ('`' . $str . '`');
}, $columns);
return implode('.', $columns);
return preg_replace_callback('/[a-z][a-z0-9_.*]*(?!\\()\b/i', function($m) {
$columns = explode('.', $m[0]);
$columns = array_map(function($str) {
return $str === '*' ? $str : ('`' . $str . '`');
}, $columns);
return implode('.', $columns);
}, $column_name);
}
/**