Search Postgresql Archives

share lock when only one user connected?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I'm running this query when I'm the only user and this should be the
only thing running.

update catalog_items
  set Code=s.codice, CodeAlt=s.codicealt, BrandID=s.marca,
  Name=initcap(s.nome), Description=s.desc_l1,
  qty=coalesce(s.quantita, 0),
  ListPrice=coalesce(s.prezzoListino, 0) ,
  valIva=s.valIva, ivaInc=s.ivaInc,
  StatusID=coalesce(s.stato, 1) ,
  Weight=s.peso, dataInserimento=s.dataInserimento, daPub=s.daPub,
  BestSeller=s.bestSeller, posInMag=s.posInMag , ISBN=s.ISBN,
  dataPub=coalesce(s.dataPubblicazione, datapub),
  updated=now()
  from (
    select a.id, a.codice, a.codicealt,
    a.marca, a.nome, a.desc_l1, a.quantita, a.prezzoListino,
    a.valIva, a.ivaInc, a.stato, a.peso, a.dataInserimento, a.daPub,
    a.bestSeller, a.posInMag, a.ISBN, ip.dataPubblicazione
    from
      import.Articoli a
      left join import.ArticoliPropTipo_1 ip on a.id=ip.idArt
      where a.action=8
    ) as s
    where s.id=catalog_items.ItemID
;

And I get

DETAIL:  Process 7188 waits for ShareLock on transaction 110562621;
blocked by process 7244. Process 7244 waits for ShareLock on
transaction 110562544; blocked by process 7188.

On that table 2 triggers are defined:

create or replace function FT1IDX_catalog_items_update() returns
trigger as
$$
declare
	_Name varchar(64);
begin
  select into _Name Name from catalog_brands
   where BrandID=new.BrandID;
   new.FT1IDX:=
     GetFTIDX('pg_catalog.english', new.Code, new.CodeAlt, new.ISBN,
     new.Name, new.Authors, _Name);
  return new;
end;
$$ language plpgsql volatile;

create or replace function FT1IDX_catalog_brands_update() returns
trigger as
$$
begin
  if(TG_OP='DELETE') then
    update catalog_items set
      FT1IDX=
       GetFTIDX('pg_catalog.english', Code, CodeAlt, ISBN, Name, Authors, '')
        where BrandID=old.BrandID;
    return old;
  else
    if(coalesce(new.Name,'')<>coalesce(old.Name,'')) then
      update catalog_items set
        FT1IDX=
          GetFTIDX('pg_catalog.english', Code, CodeAlt, ISBN, Name, Authors, new.Name) where BrandID=new.BrandID;
    end if;
  end if;
return new;
end;
$$ language plpgsql volatile;

What could it be? how can I fix it?



-- 
Ivan Sergio Borgonovo
http://www.webthatworks.it


-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux