A fost lansată o versiune corectivă a SGBD-ului PostgreSQL 14.4, care rezolvă o problemă gravă, care, în anumite circumstanțe, ducea la deteriorarea invizibilă a datelor în indexuri în timpul executării comenzilor „CREATE INDEX CONCURRENTLY” și „REINDEX CONCURRENTLY”. În indexurile create prin intermediul acestor comenzi pot să nu fie incluse unele înregistrări, ceea ce va duce la omisiunea unor rânduri în urma interogărilor SELECT utilizând indexurile afectate.
Pentru a determina existența deteriorărilor în indexurile B-tree, se poate utiliza comanda „pg_amcheck —heapallindexed nume_ baza_de_date”. În cazul în care se identifică erori sau s-au utilizat în versiunile anterioare comenzile „CREATE INDEX CONCURRENTLY” și „REINDEX CONCURRENTLY” cu alte tipuri de indexuri (GiST, GIN etc.), se recomandă efectuarea reindexării după actualizarea la versiunea 14.4 utilizând utilitarul „reindexdb —all” sau comanda „REINDEX CONCURRENTLY nume_index”.
Problema afectează doar ramura 14.x, în care au fost incluse optimizări, care exclud în timpul execuției operațiunii VACUUM anumite tranzacții legate de executarea „CREATE INDEX CONCURRENTLY” și „REINDEX CONCURRENTLY”. Ca rezultat al aplicării acestor optimizări, unele tupluri aflate în heap-ul de memorie, care au fost actualizate sau reduse în timpul creării indexului, nu au fost incluse în indexurile create în modul „CONCURRENTLY”.
Sursa: opennet.ro
