You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by si...@apache.org on 2023/01/07 20:58:46 UTC
svn commit: r1906450 - /spamassassin/trunk/lib/Mail/SpamAssassin/SQLBasedAddrList.pm
Author: sidney
Date: Sat Jan 7 20:58:46 2023
New Revision: 1906450
URL: http://svn.apache.org/viewvc?rev=1906450&view=rev
Log:
Bug 8098 - fix ON CONFLICT ambiguous column error in Postgres upsert
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin/SQLBasedAddrList.pm
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/SQLBasedAddrList.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/SQLBasedAddrList.pm?rev=1906450&r1=1906449&r2=1906450&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/SQLBasedAddrList.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/SQLBasedAddrList.pm Sat Jan 7 20:58:46 2023
@@ -307,7 +307,7 @@ sub add_score {
my $sql = sprintf("INSERT INTO %s (%s) VALUES (%s)", $self->{tablename},
join(',', @fields), join(',', ('?') x @fields));
if ($self->{dsn} =~ /^DBI:(?:pg|SQLite)/i) {
- $sql .= " ON CONFLICT (username, email, signedby, ip) DO UPDATE set msgcount = ?, totscore = totscore + ?";
+ $sql .= " ON CONFLICT (username, email, signedby, ip) DO UPDATE set msgcount = ?, totscore = " . $self->{tablename} . ".totscore + ?";
} elsif ($self->{dsn} =~ /^DBI:(?:mysql|MariaDB)/i) {
$sql .= " ON DUPLICATE KEY UPDATE msgcount = ?, totscore = totscore + ?";
}