Public bug reported: Using: - Spamassassin - Postgres - DBI - DBD:Pg
I get the following error when attempting to sa-learn --restore: [24850] dbg: bayes: tok_get: SQL error: ERROR: invalid input syntax for type bytea [24850] dbg: bayes: _put_token: SQL error: ERROR: invalid input syntax for type bytea [24850] dbg: bayes: error inserting token for line: t 1 0 1240037056 0178865c33 When run with DBI_TRACE=3, I get the following output: -> execute for DBD::Pg::st (DBI::st=HASH(0x99b9c24)~0x99c6f60 '8' '.^M<E4>\<8C>') thr# 814e008 dbdpg: ERROR: invalid input syntax for type bytea The problem is that Postgres 8.3 is expecting the backslash to be escaped if it represents a literal backslash. The following patch seems to resolve the problem, and I think it is backward-compatible, though not necessarily compatible with SQLite or MySql: --- spamassassin-3.2.3-0.volatile/lib/Mail/SpamAssassin/BayesStore/SQL.pm 2009-05-12 14:58:28.000000000 +0000 +++ spamassassin-fixed/lib/Mail/SpamAssassin/BayesStore/SQL.pm 2009-05-12 14:07:21.000000 000 +0000 @@ -1522,6 +1522,8 @@ else { # turn unpacked binary token back into binary value $token = pack("H*",$token); + # Escape backslashes for DB's benefit + $token =~ s/\\/\\0134/g; } unless ($self->_put_token($token, $spam_count, $ham_count, $atime)) { ** Affects: spamassassin (Ubuntu) Importance: Undecided Status: New ** Tags: patch -- Spamassassin fails to escape backslashes for latest postgres input syntax https://bugs.launchpad.net/bugs/375490 You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs