Thanks for the replay
I think you missed on second detail mail :




For more details:

I have two tables master,child.
with child having fk to master.

Now that master table contains 4M rows . while I update them (Master table) the inserts are going into waiting mode on child table.


Update  acquired row exclusive lock on master table  , and the insert on child table acquired access share and share lock,row share on master.

Is this is what preventing for inserting records into child table, I mean is the row exclusive lock conflicting with the locks insert(which is again row exclusive log) wants to hold?



With Regards
Ashish...


--- On Wed, 9/1/08, Albe Laurenz <laurenz.albe@wien.gv.at> wrote:
From: Albe Laurenz <laurenz.albe@wien.gv.at>
Subject: Re: [GENERAL] Insert waiting for update?
To: ashish_postgre@yahoo.co.in, "pggeneral" <pgsql-general@postgresql.org>
Cc: ashish.karalkar@netcore.co.in
Date: Wednesday, 9 January, 2008, 8:53 PM

Ashish Karalkar wrote:
> I am having table with 4M rows.
> I am trying to update all these rows with statement
>
> update mytable set mycolumn=0;
>
> At the same time there are insert happening on the table.
> but all these insert are in waiting mode.
> does update is locking the table for insert?
>
> does insert and update confilict with each other?

Not normally, but it can happen.

You could

SELECT l.locktype, t.relname, l.pid, l.transactionid, l.mode, l.granted
FROM pg_catalog.pg_locks l LEFT OUTER JOIN
pg_catalog.pg_class t ON l.relation = t.oid;

and

SELECT procpid, current_query FROM pg_stat_activity;

while the inserts hang. Maybe the result will indicate why.

Are there any triggers or rules defined?
What indexes are defined on the table?

Yours,
Laurenz Albe








---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match


Chat on a cool, new interface. No download required. Click here.