/* $Id: pgsql_objects.sql,v 1.11 2006/04/21 20:39:36 jonz Exp $ */
CREATE TABLE dspam_token_data (
uid smallint,
token bigint,
spam_hits int,
innocent_hits int,
last_hit date,
UNIQUE (uid, token)
) WITHOUT OIDS;
CREATE TABLE dspam_signature_data (
uid smallint,
signature varchar(128),
data bytea,
length int,
created_on date,
UNIQUE (uid, signature)
) WITHOUT OIDS;
CREATE TABLE dspam_stats (
uid smallint PRIMARY KEY,
spam_learned int,
innocent_learned int,
spam_misclassified int,
innocent_misclassified int,
spam_corpusfed int,
innocent_corpusfed int,
spam_classified int,
innocent_classified int
) WITHOUT OIDS;
CREATE TABLE dspam_preferences (
uid smallint,
preference varchar(128),
value varchar(128),
UNIQUE (uid, preference)
) WITHOUT OIDS;
create function lookup_tokens(integer,bigint[])
returns setof dspam_token_data
language plpgsql stable
as '
declare
v_rec record;
begin
for v_rec in select * from dspam_token_data
where uid=$1
and token in (select $2[i]
from generate_series(array_lower($2,1),
array_upper($2,1)) s(i))
loop
return next v_rec;
end loop;
return;
end;';
/* For much better performance
/* see http://archives.postgresql.org/pgsql-performance/2004-11/msg00416.php
* and http://archives.postgresql.org/pgsql-performance/2004-11/msg00417.php
* for details
*/
alter table "dspam_token_data" alter "token" set statistics 200;
alter table dspam_signature_data alter signature set statistics 200;
alter table dspam_neural_data alter node set statistics 200;
alter table dspam_neural_decisions alter signature set statistics 200;
alter table dspam_token_data alter innocent_hits set statistics 200;
alter table dspam_token_data alter spam_hits set statistics 200;
CREATE INDEX id_token_data_sumhits ON dspam_token_data ((spam_hits + innocent_hits));
analyze;
syntax highlighted by Code2HTML, v. 0.9.1