Mail::SpamAssassin::BayesStore::PgSQL
Mail::SpamAssassin::BUserSContributedMail::SpamAssassin::BayesStore::PgSQL(3)
NAME
Mail::SpamAssassin::BayesStore::PgSQL - PostgreSQL Specific Bayesian
Storage Module Implementation
SYNOPSIS
DESCRIPTION
This module implementes a PostgresSQL specific bayesian storage mod-
ule.
It subclasses Mail::SpamAssassin::BayesStore::SQL and overrides any
methods which makes SQL calls involving the token column. Since Post-
greSQL uses BYTEA for the token column type you must make sure that
the DBD driver does the proper quoting. You can accomplish this by
binding the token column to a specific type.
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 indi-
cates 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 (\@ $tokens
String $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 peroms 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 SQL database.
_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_string
Description: This method returns the string to be used in SELECT
statements to represent the token column.
perl v5.8.8 200Mail::SpamAssassin::BayesStore::PgSQL(3)