Sven Willenberger sven
Mon May 23 22:05:44 PDT 2005
PostgreSQL8.0.3 and slony 1.0.5

I have a smallish table (< 1 million rows) with a primary key that is
made up of three fields, let's call them group,name,store; Now if on the
origin I run "DELETE FROM mytable WHERE group = 3;", I see in the
sl_log_1 file the statement has now been expanded to include the full
primary key eseentially making several delete statements, i.e.
DELETE FROM mytable WHERE group = '3' AND name = 'fred' and store =
'56';
DELETE FROM mytable WHERE group = '3' AND name = 'martha' and store =
'86';
DELETE FROM mytable WHERE group = '3' and name = 'george' and store =
'56';

For small delete sets this is tolerable, but when I have a 100k row
delete this results in replication almost grinding to a halt while the
subscriber issues 100k delete commands instead of the rather simple
DELETE FROM mytable WHERE group = '3';

I guess my question is, when only one of the fields of the primary key
is used as a condition for a delete statement, is there a way to have
slony issue just that simple command rather than expand the statement to
include all the columns of the primary key?

Sven



More information about the Slony1-general mailing list