diff --git a/pandora_console/include/functions_events.php b/pandora_console/include/functions_events.php index 783ec1981c..a607ca1dd4 100644 --- a/pandora_console/include/functions_events.php +++ b/pandora_console/include/functions_events.php @@ -194,23 +194,16 @@ function events_get_events_grouped($sql_post, $offset = 0, $set['offset'] = $offset; // TODO: Remove duplicate user comments - $sql = "SELECT a.*, b.event_rep, b.timestamp_rep - FROM (SELECT * FROM $table WHERE 1=1 $sql_post) a, - (SELECT MAX(id_evento) AS id_evento, to_char(evento) AS evento, MIN(utimestamp) AS timestamp_rep_min, - id_agentmodule, COUNT(*) AS event_rep, MAX(utimestamp) AS timestamp_rep, - LISTAGG(user_comment, '
') WITHIN GROUP (ORDER BY null) AS user_comment, - LISTAGG(id_evento, ',') WITHIN GROUP (ORDER BY null) AS similar_ids, - MAX(owner_user) KEEP (DENSE_RANK FIRST ORDER BY id_evento) AS owner_user, - MAX(id_usuario) KEEP (DENSE_RANK FIRST ORDER BY id_evento) AS id_usuario, - MAX(id_agente) KEEP (DENSE_RANK FIRST ORDER BY id_evento) AS id_agente, - MAX(criticity) KEEP (DENSE_RANK FIRST ORDER BY id_evento) AS criticity, - MAX(ack_utimestamp) KEEP (DENSE_RANK FIRST ORDER BY id_evento) AS ack_utimestamp - FROM $table te - WHERE 1=1 $sql_post - GROUP BY estado, to_char(evento), id_agentmodule$groupby_extra) b - WHERE a.id_evento = b.id_evento - AND to_char(a.evento)=to_char(b.evento) - AND a.id_agentmodule=b.id_agentmodule"; + $sql = "SELECT ta.*, tb.event_rep, tb.timestamp_rep, tb.timestamp_rep_min, tb.user_comments, tb.similar_ids + FROM $table ta + INNER JOIN (SELECT MAX(id_evento) AS id_evento, COUNT(id_evento) AS event_rep, + MAX(utimestamp) AS timestamp_rep, MIN(utimestamp) AS timestamp_rep_min, + LISTAGG(user_comment, '
') WITHIN GROUP (ORDER BY id_evento ASC) AS user_comments, + LISTAGG(id_evento, ',') WITHIN GROUP (ORDER BY id_evento ASC) AS similar_ids + FROM $table te + WHERE 1=1 $sql_post + GROUP BY estado, to_char(evento), id_agentmodule$groupby_extra) tb + ON ta.id_evento = tb.id_evento"; $sql = oracle_recode_query ($sql, $set); } break; @@ -223,6 +216,13 @@ function events_get_events_grouped($sql_post, $offset = 0, return reset($events[0]); } else { + // Override the column 'user_comment' with the column 'user_comments' when oracle + if (!empty($events) && $config["dbtype"] == "oracle") { + array_walk($events, function(&$value, $key) { + set_if_defined($value['user_comments'], $value['user_comments']); + }); + } + return $events; } }