public class AccountDatabase extends Database {
private final static Logger logger = LoggerFactory.getLogger(AccountDatabase.class);
- private static final long DATABASE_VERSION = 8;
+ private static final long DATABASE_VERSION = 9;
private AccountDatabase(final HikariDataSource dataSource) {
super(logger, DATABASE_VERSION, dataSource);
""");
}
}
+ if (oldVersion < 9) {
+ logger.debug("Updating database: Adding urgent field");
+ try (final var statement = connection.createStatement()) {
+ statement.executeUpdate("""
+ ALTER TABLE message_send_log_content ADD COLUMN urgent BOOLEAN NOT NULL DEFAULT TRUE;
+ """);
+ }
+ }
}
}
group_id BLOB,
timestamp INTEGER NOT NULL,
content BLOB NOT NULL,
- content_hint INTEGER NOT NULL
+ content_hint INTEGER NOT NULL,
+ urgent BOOLEAN NOT NULL
);
CREATE INDEX mslc_timestamp_index ON message_send_log_content (timestamp);
CREATE INDEX msl_recipient_index ON message_send_log (recipient_id, device_id, content_id);
return null;
}
final var contentHint = ContentHint.fromType(resultSet.getInt("content_hint"));
- final var urgent = true; // TODO
+ final var urgent = resultSet.getBoolean("urgent");
return new MessageSendLogEntry(groupId, content, contentHint, urgent);
})) {
return result.filter(Objects::nonNull)
) {
byte[] groupId = getGroupId(content);
- // TODO store urgent
final var sql = """
- INSERT INTO %s (timestamp, group_id, content, content_hint)
- VALUES (?,?,?,?)
+ INSERT INTO %s (timestamp, group_id, content, content_hint, urgent)
+ VALUES (?,?,?,?,?)
""".formatted(TABLE_MESSAGE_SEND_LOG_CONTENT);
try (final var connection = database.getConnection()) {
connection.setAutoCommit(false);
statement.setBytes(2, groupId);
statement.setBytes(3, content.toByteArray());
statement.setInt(4, contentHint.getType());
+ statement.setBoolean(5, urgent);
statement.executeUpdate();
final var generatedKeys = statement.getGeneratedKeys();
if (generatedKeys.next()) {