Alarm Journal broken with Oracle

I’ve found that the Alarm Journal Table widget does not work when the journal is on an Oracle datasource. The table displays with the 301 “Comm Error” overlay. Output Console contains this error:

WARN [AlarmJournalTable-AWT-EventQueue-2] Error fetching alarms. java.util.concurrent.ExecutionException: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: java.sql.SQLSyntaxErrorException: ORA-00920: invalid relational operator
I went into the database trace file and I believe this is the SQL statement causing the error:

SELECT e."id", e."eventid", e."source", e."displaypath", e."priority", e."eventtime", e."eventtype", e."eventflags" FROM "ALARM_EVENTS" e WHERE e."eventtime" >= :1 AND e."eventtime" <= :2 AND (e."eventflags" & :3 > 0 OR (e."eventflags" & :4 = 0))

I assume the "&"s are trying to do a bitwise AND on eventflags and the bind variables. That’s not valid in Oracle. You have to use the BITAND function (docs.oracle.com/database/121/SQ … SQLRF00612).

Also, the table name is double-quoted, which makes it case-sensitive, but it seems to have been created without the quotes, because it’s upper cased in my database. I can get around that by editing the Journal profile and uppercasing the table names in the Advanced section. I don’t think there’s any workaround for the “&” problem.

Which version of Ignition are you using?

Noticed this on 7.6.3 on Linux. I’m pretty sure it exists in 7.8.0 as well.

I checked the latest 7.8 and 7.7 releases and they are working fine, and using BITAND in the query. On the 7.6 branch, you’ll have to update to 7.6.7 to fix this issue.

Ah, it does seem to be fixed in 7.8.