Re: Remove duplicated row in pg_largeobject_metadata

Поиск
Список
Период
Сортировка
От Tobias Meyer
Тема Re: Remove duplicated row in pg_largeobject_metadata
Дата
Msg-id CAAEpUZm5Q0FJBPHthjmyzuV4jDHoM251y+-6ViLX1OR1Pt8vGQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Remove duplicated row in pg_largeobject_metadata  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Remove duplicated row in pg_largeobject_metadata  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
Hi Tom, 
thanks for taking a look.
 
hmm ... is this a reasonably up-to-date v10?

PostgreSQL 10.18 
The latest packaged with Ubuntu 18.04. 
 
Delete by ctid.

select ctid, oid, * from pg_largeobject_metadata where oid=665238;
delete from pg_largeobject_metadata where ctid = 'pick one';

OK, that worked, but it seems there is more than one...

so I did
select ctid as tid,oid,lomowner into temp table temp_pgmeta from pg_largeobject_metadata;
select * from ( select count(tid) as cnt,max(tid), min(tid), oid from temp_pgmeta group by oid) x where cnt > 1;

and that gave me 2951857 rows


I admit we have quite a few of LOs in there, around 32 million, where vacuumlo had already cleaned 47 million in a first run. 

And I know this is bad practise, but we forgot to unlink when deleting things - it's why we needed vacuumlo to begin with. 


Any ideas what might have happened?


Kind regards, Tobias

В списке pgsql-general по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Remove duplicated row in pg_largeobject_metadata
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Remove duplicated row in pg_largeobject_metadata