Version 3.5 has a nice SQL support, but insists using MySQL as a back end.
FuzzyOCR should use the same mechanism as Spamassassin itself: i.e. remove the call
require(DBD::MySQL), stop rebuilding the dsn connect string in a mysql-specific way and let the user choose his SQL-engine by defining the dsn in FuzzyOCR.cf, as DBI takes care about choosing the appropriate DBD driver.
This way the user can connect to Postgres, Oracle, Mysql, msql, whatever...
A definition in FuzzyOCR.cf might look like:
focr_sql_hash HASH
focr_sql_safe SAFE
focr_sql_user spamuser
focr_sql_pass spampass
focr_sql_dsn dbi:Oracle:spamassassin
would use the ORACLE driver.