On Wed, Jul 18, 2012 at 1:24 AM, Brian McNally <bmcna...@uw.edu> wrote:

> Hello,
>
> I'm running Postgres 9.0.2 on RHEL 5.6 x86_64 and trying to run the
> following statement:
>
> alter table samples add column in_esp1234 text;
>
> When I do this the command just hangs. ps output indicates that it's
> waiting:
>
> postgres: postgres exomeSNP [local] ALTER TABLE waiting
>
> When I look to see what might have that table locked I don't see anything:
>
> select * from pg_locks where relation=(select oid from pg_class where
> relname='samples');
>
> I have a nearly identical server where this command works. It seems like
> something has this table locked, but I haven't been able to find it. Any
> ideas?
>

Please find more information using below query:

\x

SELECT
   waiting.locktype           AS waiting_locktype,
   waiting.relation::regclass AS waiting_table,
   waiting_stm.current_query  AS waiting_query,
   waiting.mode               AS waiting_mode,
   waiting.pid                AS waiting_pid,
   other.locktype             AS other_locktype,
   other.relation::regclass   AS other_table,
   other_stm.current_query    AS other_query,
   other.mode                 AS other_mode,
   other.pid                  AS other_pid,
   other.granted              AS other_granted
FROM
   pg_catalog.pg_locks AS waiting
JOIN
   pg_catalog.pg_stat_activity AS waiting_stm
   ON (
       waiting_stm.procpid = waiting.pid
   )
JOIN
   pg_catalog.pg_locks AS other
   ON (
       (
           waiting."database" = other."database"
       AND waiting.relation  = other.relation
       )
       OR waiting.transactionid = other.transactionid
   )
JOIN
   pg_catalog.pg_stat_activity AS other_stm
   ON (
       other_stm.procpid = other.pid
   )
WHERE
   NOT waiting.granted
AND
   waiting.pid <> other.pid;



-- 

Thanks & Regards,

Raghu Ram

EnterpriseDB Corporation

Blog:http://raghurc.blogspot.in/

Reply via email to