8000 Release Version 3.5.4 · dbmail/dbmail · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Version 3.5.4

Latest
Compare
Choose a tag to compare
@alan-hicks alan-hicks released this 02 Jul 10:54
· 2 commits to main since this release
762b63d

DBMail 3.5.4 is now available.

The main changes are better support for docker and systemd, MySQL compression and an anomaly in how libzdb handles NULLs.

Improved docker and systemd support

Logging is now docker and systemd friendly thanks to Tom Ivar Helbekkmo, just set logfile = stderr and you're good to go. Expect an updated docker image in the next day or so.

Compression to save space

Significant disk space can be saved with compression. Postgres already does this but Sasha Gomanuke highlighted the excessive space used to store emails on MySQL so compression is now the default on dbmail_mimeparts. It's automated as usual, though as the table is read only until the update is complete those with a large or active installation might prefer to handle this manually. See https://dbmail.org/en/architecture/upgrading/ for how upgrades work.

The following SQL queries can be used to discover the disk size

PostgreSQL

SELECT
table_name,
pg_size_pretty(pg_total_relation_size(quote_ident(table_name))),
pg_total_relation_size(quote_ident(table_name))
FROM information_schema.tables
WHERE table_schema = 'public'
AND table_name = 'dbmail_mimeparts';

MySQL

SELECT table_schema, table_name, row_format, data_length, index_length
FROM information_schema.tables
WHERE table_name = 'dbmail_mimeparts';

ls -lh /var/db/mysql/dbmail/dbmail_mimeparts.ibd

Aligning PostgreSQL and MySQL/Oracle schemas with libzdb

Although libzdb does an excellent job of ensuring working with the three supported databases is easy, there is one aspect that is different - handling null data. Although often conceptually treated the same, the empty string is a value of zero length, whereas null is the absence of a value and select queries behave differently. As mime parts can be empty, this update aligns the way PostgreSQL and MySQL/Oracle are handled in DBMail.

https://dev.mysql.com/doc/refman/8.4/en/working-with-null.html
https://dev.mysql.com/doc/refman/8.4/en/problems-with-null.html

0