Hello dspam-users,

has anyone tried to partition token and signature tables?

Looks like this can be done without changing pgsql driver:



CREATE TABLE dspam_signature_data (
  uid smallint,
  signature varchar(128),
  data bytea,
  length int,
  created_on date
) WITHOUT OIDS;



Create "private" siganature table for every user:

# uid = 2
CREATE TABLE dspam_signature_data_uid2 (
  UNIQUE (uid, signature),
  CHECK (uid = 2::smallint)
) INHERITS dspam_signature_data WITHOUT OIDS;

CREATE RULE uid2_signatures AS
  ON INSERT TO dspam_signature_data
    WHERE uid = 2::smallint
  DO INSTEAD
    INSERT INTO dspam_signature_data_uid2 VALUES (NEW.*);



When doing queries:
SET constraint_exclusion = on;




Reply via email to