hi, all: I use a plproxy to execute sql like below: CREATE OR REPLACE FUNCTION public.dmlexec(query text,op text) RETURNS setof integer AS $$ CLUSTER 'testcluster'; RUN ON all; $$ LANGUAGE plproxy; create or replace function public.dmlExec(query text, op text) returns integer as $$ declare ret integer; begin execute query; return 1; end; $$ language plpgsql; when I exectue sql like 'select dmlexec('delete from table_test where id = 2', 'test') at the same time in numerous process, the delete sql will blocked..... so I must select pg_cancel_backend(...). is there a deadlock?? postgresql version: 8.3.0 thanks all:)