Re: Conflicting updates of command progress
От | Sami Imseih |
---|---|
Тема | Re: Conflicting updates of command progress |
Дата | |
Msg-id | CAA5RZ0vg3jAJSjQDZZdjz--sJCh0v1MVZ5Lpqh4F=Rn8vnVjOw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Conflicting updates of command progress (Antonin Houska <ah@cybertec.at>) |
Ответы |
Re: Conflicting updates of command progress
|
Список | pgsql-hackers |
> pgstat_progress_start_command() is called twice: First with > cmdtype=PROGRESS_COMMAND_CLUSTER, second with > PROGRESS_COMMAND_CREATE_INDEX. The first happens in cluster_rel() the second > in cluster_rel() -> rebuild_relation() -> finish_heap_swap() -> > reindex_relation() -> reindex_index(). > > It does not matter though, the current design only expects one command. When I set a breakpoint on pgstat_progress_start_command and ran a CLUSTER on a table with a few indexes, I only saw start_command being called once for PROGRESS_COMMAND_CLUSTER. Then I went back in the code and realized that reindex_index when called via the CLUSTER command has progress set to false. So as it stands now, only PROGRESS_COMMAND_CLUSTER is effectively started when CLUSTER is called. ``` if (progress) { const int progress_cols[] = { PROGRESS_CREATEIDX_COMMAND, PROGRESS_CREATEIDX_INDEX_OID }; const int64 progress_vals[] = { PROGRESS_CREATEIDX_COMMAND_REINDEX, indexId }; pgstat_progress_start_command(PROGRESS_COMMAND_CREATE_INDEX, heapId); pgstat_progress_update_multi_param(2, progress_cols, progress_vals); } ``` -- Sami
В списке pgsql-hackers по дате отправления: