On 20 October 2010 23:52, Dennis Gearon <gearond@xxxxxxxxxxxxx> wrote: > Regarding the previously discussed triggers on tables to keep track of count: > http://www.varlena.com/GeneralBits/120.php > http://www.varlena.com/GeneralBits/49.php > <from article> > CREATE OR REPLACE FUNCTION count_rows() > RETURNS TRIGGER AS > ' > BEGIN > IF TG_OP = ''INSERT'' THEN > UPDATE rowcount > SET total_rows = total_rows + 1 > WHERE table_name = TG_RELNAME; > ELSIF TG_OP = ''DELETE'' THEN > UPDATE rowcount > SET total_rows = total_rows - 1 > WHERE table_name = TG_RELNAME; > END IF; > RETURN NULL; > END; > ' LANGUAGE plpgsql; > </from article> > > Wouldn't something like this need row-locking (SELECT for UPDATE) in order to serialize the execution of all triggers? > The update will acquire a row level lock on rowcount for the TG_RELNAME tuple without you doing anything else. -- Regards, Peter Geoghegan -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general