понимаю, что выполнение команды:
alter table public.report add column tag varchar(50) not null default ''
виснет из-за того, что его блокируют выполняющиеся select-ы, а команда требует AccessExclusiveLock?
```mtcc=# select locktype,database,relation,granted,query,mode from pg_locks l join pg_stat_activity s on l.pid=s.pid where query like 'alter%';
locktype | database | relation | granted | query | mode
---------------+----------+----------+---------+------------------------------------------------------------------------------------+---------------------
virtualxid | | | t | alter table public.report add column tag varchar(50) not null default ''; | ExclusiveLock
transactionid | | | t | alter table public.report add column tag varchar(50) not null default ''; | ExclusiveLock
relation | 17478 | 17481 | f | alter table public.report add column tag varchar(50) not null default ''; | AccessExclusiveLock
(3 rows)
См. "SELECT pg_blocking_pids(<blocked pid>)". Т.е. теория-то правильная, но именно по показанному запросу / результату сказать этого нельзя, насколько я вижу. ;)
Обсуждают сегодня