Re: pg_stat_have_stats() returns true for dropped indexes (or for index creation transaction rolled back)

Поиск
Список
Период
Сортировка
От Drouvot, Bertrand
Тема Re: pg_stat_have_stats() returns true for dropped indexes (or for index creation transaction rolled back)
Дата
Msg-id ee63a22a-e702-fdbc-23ea-9459ec9a01e7@amazon.com
обсуждение исходный текст
Ответ на Re: pg_stat_have_stats() returns true for dropped indexes (or for index creation transaction rolled back)  (Kyotaro Horiguchi <horikyota.ntt@gmail.com>)
Список pgsql-hackers

Hi,

On 8/31/22 9:10 AM, Kyotaro Horiguchi wrote:
Thanks for the searching.
+-- pg_stat_have_stats returns true for regression_slot_stats1
+-- Its index is 1 in ReplicationSlotCtl->replication_slots
+select pg_stat_have_stats('replslot', 0, 1);

This is wrong. The index is actually 0.  

Right, thanks for pointing out. (gdb) p get_replslot_index("regression_slot_stats1")
$1 = 0
(gdb) p get_replslot_index("regression_slot_stats2")
$2 = 1
(gdb) p get_replslot_index("regression_slot_stats3")

$3 = 2

We cannot know the id
reliably since we don't expose it at all.

Right.

 We could slightly increase
robustness by assuming the range of the id but that is just moving the
problem to another place. If the test is broken by a change of
replslot id assignment policy, it would be easily found and fixed.

So is it fine simply fixing the comment with the correct ID?

Or, contrarily we can be more sensitive to the change of ID assignment
policy by checking all the replication slots.

select count(n) from generate_series(0, 2) as n where pg_stat_have_stats('replslot', 0, n);

The number changes from 3 to 0 across the slots drop.. If any of the
slots has gone out of the range, the number before the drop decreases.

Thanks for the ideas! I'm coming up with a slightly different one (also based on Andre's feedback in [1]) in the upcoming v4.

[1]: https://www.postgresql.org/message-id/20220831192657.jqhphpud2mxbzbom%40awork3.anarazel.de

Regards,

-- 
Bertrand Drouvot
Amazon Web Services: https://aws.amazon.com

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

Предыдущее
От: Justin Pryzby
Дата:
Сообщение: Re: pg15b3: recovery fails with wal prefetch enabled
Следующее
От: Etsuro Fujita
Дата:
Сообщение: struct Trigger definition in trigger.sgml