Mail::SpamAssassin::BayesStore::PgSQL (3)
Leading comments
Automatically generated by Pod::Man 4.07 (Pod::Simple 3.32) Standard preamble: ========================================================================
NAME
Mail::SpamAssassin::BayesStore::PgSQL - PostgreSQL Specific Bayesian Storage Module ImplementationSYNOPSIS
DESCRIPTION
This module implements a PostgreSQL specific bayesian storage module.It subclasses Mail::SpamAssassin::BayesStore::SQL and overrides any methods which makes
In versions 8.3 and up, synchronous_commit is disabled for faster performance. Data is not guaranteed to be stored until (3 * wal_writer_delay) (default: 0.6s) after it is written. This tradeoff works for Bayes because we care about aggregate data and a small period of time can be lost without sacrificing accuracy.
METHODS
token_expiration
public instance (Integer, Integer,Integer, Integer) token_expiration(\% $opts,
Integer $newdelta,
@ @vars)
Description: This method performs the database specific expiration of tokens based on the passed in $newdelta and @vars.
seen_put
public (Boolean) seen_put (string $msgid, char $flag)Description: This method records $msgid as the type given by $flag. $flag is one of two values 's' for spam and 'h' for ham.
seen_delete
public instance (Boolean) seen_delete (string $msgid)Description: This method removes $msgid from the database.
set_last_expire
public instance (Boolean) set_last_expire (Integer $time)Description: This method sets the last expire time.
set_running_expire_tok
public instance (String $time) set_running_expire_tok ()Description: This method sets the time that an expire starts running.
remove_running_expire_tok
public instance (Boolean) remove_running_expire_tok ()Description: This method removes the row in the database that indicates that and expire is currently running.
tok_get
public instance (Integer, Integer, Integer) tok_get (String $token)Description: This method retrieves a specificed token ($token) from the database and returns it's spam_count, ham_count and last access time.
tok_get_all
public instance (\@) tok_get (@ $tokens)Description: This method retrieves the specified tokens ($tokens) from storage and returns an array ref of arrays spam count, ham acount and last access time.
nspam_nham_change
public instance (Boolean) nspam_nham_change (Integer $num_spam,Integer $num_ham)
Description: This method updates the number of spam and the number of ham in the database.
tok_touch
public instance (Boolean) tok_touch (String $token,String $atime)
Description: This method updates the given tokens ($token) atime.
The assumption is that the token already exists in the database.
tok_touch_all
public instance (Boolean) tok_touch (\@ $tokensString $atime)
Description: This method does a mass update of the given list of tokens $tokens, if the existing token atime is < $atime.
The assumption is that the tokens already exist in the database.
We should never be touching more than N_SIGNIFICANT_TOKENS, so we can make some assumptions about how to handle the data (ie no need to batch like we do in tok_get_all)
cleanup
public instance (Boolean) cleanup ()Description: This method perfoms any cleanup necessary before moving onto the next operation.
clear_database
public instance (Boolean) clear_database ()Description: This method deletes all records for a particular user.
Callers should be aware that any errors returned by this method could causes the database to be inconsistent for the given user.
Private Methods
_connect_db
private instance (Boolean) _connect_db ()Description: This method connects to the
_put_token
private instance (Boolean) _put_token (string $token,integer $spam_count,
integer $ham_count, string $atime)
Description: This method performs the work of either inserting or updating a token in the database.
_put_tokens
private instance (Boolean) _put_tokens (\% $token,integer $spam_count,
integer $ham_count, string $atime)
Description: This method performs the work of either inserting or updating tokens in the database.
_token_select_string
private instance (String) _token_select_stringDescription: This method returns the string to be used in