-
Problem report
-
Resolution: Unresolved
-
Critical
-
None
-
7.0.21, 7.4.5, 8.0.0alpha1
-
Support backlog
This part of query joins event_symptom
LEFT JOIN event_symptom es1 ON e.eventid = es1.eventid
However later checks that it does not exists
AND NOT EXISTS (
SELECT 1
FROM event_symptom es
WHERE es.eventid = e.eventid
)
SELECT DISTINCT
e.eventid,
e.objectid,
e.clock,
e.ns,
e.name,
e.severity,
es1.cause_eventid
FROM
functions f
JOIN items i ON f.itemid = i.itemid
JOIN host_hgset hh ON i.hostid = hh.hostid
JOIN permission p ON hh.hgsetid = p.hgsetid
JOIN events e ON e.objectid = f.triggerid
LEFT JOIN event_symptom es1 ON e.eventid = es1.eventid
WHERE
e.source = 0
AND e.object = 0
AND p.ugsetid = 1
AND NOT EXISTS (
SELECT 1
FROM functions f1
JOIN items i1 ON f1.itemid = i1.itemid
JOIN host_hgset hh1 ON i1.hostid = hh1.hostid
LEFT JOIN permission p1 ON p1.hgsetid = hh1.hgsetid
AND p1.ugsetid = 1
WHERE f.triggerid = f1.triggerid
AND i.itemid != f1.itemid
AND p1.hgsetid IS NULL
)
AND NOT EXISTS (
SELECT 1
FROM event_suppress es
WHERE es.eventid = e.eventid
)
AND NOT EXISTS (
SELECT 1
FROM event_symptom es
WHERE es.eventid = e.eventid
)
AND EXISTS (
SELECT 1
FROM event_tag
WHERE e.eventid = event_tag.eventid
AND event_tag.tag = 'foo'
AND event_tag.value = 'bar'
)
AND e.clock >= 1760360197
AND e.clock <= 1762952197
AND e.value = 1
ORDER BY e.eventid DESC
LIMIT 45001;
Perhaps would be better like this:
SELECT DISTINCT
e.eventid,
e.objectid,
e.clock,
e.ns,
e.name,
e.severity,
es1.cause_eventid
FROM
functions f
JOIN items i ON f.itemid = i.itemid
JOIN host_hgset hh ON i.hostid = hh.hostid
JOIN permission p ON hh.hgsetid = p.hgsetid
JOIN events e ON e.objectid = f.triggerid
LEFT JOIN event_symptom es1 ON e.eventid = es1.eventid
WHERE
e.source = 0
AND e.object = 0
AND p.ugsetid = 1
AND NOT EXISTS (
SELECT 1
FROM functions f1
JOIN items i1 ON f1.itemid = i1.itemid
JOIN host_hgset hh1 ON i1.hostid = hh1.hostid
LEFT JOIN permission p1 ON p1.hgsetid = hh1.hgsetid
AND p1.ugsetid = 1
WHERE f.triggerid = f1.triggerid
AND i.itemid != f1.itemid
AND p1.hgsetid IS NULL
)
AND NOT EXISTS (
SELECT 1
FROM event_suppress es
WHERE es.eventid = e.eventid
)
AND es1.eventid is null
AND EXISTS (
SELECT 1
FROM event_tag
WHERE e.eventid = event_tag.eventid
AND event_tag.tag = 'foo'
AND event_tag.value = 'bar'
)
AND e.clock >= 1760360197
AND e.clock <= 1762952197
AND e.value = 1
ORDER BY e.eventid DESC
LIMIT 45001;