Create table fails on Mariadb if default engine is not InnoDB and default ROW_FORMAT is not DYNAMIC
I hit an issue on 2 servers where enabling the extension would fail with
SQL Error [1709] [HY000]: (conn=309) Index column size too large. The maximum column size is 767 bytes.
This was puzzling as the database collation is utf8mb4_generalci and Charset is utf8mb4.
Mariadb Conf file has the following set:
innodb_large_prefix=true
innodb_file_format=barracuda
innodb_file_per_table=true
I solved my issue by changing https://lab.civicrm.org/extensions/firewall/-/blob/master/sql/auto_install.sql#L65 to
) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
This also solves the issue on other servers (all cpanel) where the default engine was set to MyISAM and I had to alter the table after install.