fix error collation events pandora_enterprise#9290

This commit is contained in:
Daniel Barbero Martin 2022-07-26 07:57:04 +02:00
parent e30eff5e6e
commit 9d33fa08fe
1 changed files with 29 additions and 11 deletions

View File

@ -1091,18 +1091,36 @@ function events_get_all(
// Custom data. // Custom data.
if (empty($filter['custom_data']) === false) { if (empty($filter['custom_data']) === false) {
if ($filter['custom_data_filter_type'] === '1') { if (isset($config['dbconnection']->server_version) === true
$sql_filters[] = sprintf( && $config['dbconnection']->server_version > 50600
' AND JSON_VALID(custom_data) = 1 ) {
AND (JSON_EXTRACT(custom_data, "$.*") LIKE lower("%%%s%%") COLLATE utf8mb4_0900_ai_ci) ', if ($filter['custom_data_filter_type'] === '1') {
io_safe_output($filter['custom_data']) $sql_filters[] = sprintf(
); ' AND JSON_VALID(custom_data) = 1
AND (JSON_EXTRACT(custom_data, "$.*") LIKE lower("%%%s%%") COLLATE utf8mb4_0900_ai_ci) ',
io_safe_output($filter['custom_data'])
);
} else {
$sql_filters[] = sprintf(
' AND JSON_VALID(custom_data) = 1
AND (JSON_SEARCH(JSON_KEYS(custom_data), "all", lower("%%%s%%") COLLATE utf8mb4_0900_ai_ci) IS NOT NULL) ',
io_safe_output($filter['custom_data'])
);
}
} else { } else {
$sql_filters[] = sprintf( if ($filter['custom_data_filter_type'] === '1') {
' AND JSON_VALID(custom_data) = 1 $sql_filters[] = sprintf(
AND (JSON_SEARCH(JSON_KEYS(custom_data), "all", lower("%%%s%%") COLLATE utf8mb4_0900_ai_ci) IS NOT NULL) ', ' AND JSON_VALID(custom_data) = 1 AND JSON_EXTRACT(custom_data, "$.*") LIKE lower("%%%s%%") ',
io_safe_output($filter['custom_data']) $filter['custom_data'],
); $filter['custom_data']
);
} else {
$sql_filters[] = sprintf(
' AND JSON_VALID(custom_data) = 1 AND JSON_KEYS(custom_data) REGEXP "%s" ',
$filter['custom_data'],
$filter['custom_data']
);
}
} }
} }