Re: A few patches to clarify snapshot management

Поиск
Список
Период
Сортировка
От Noah Misch
Тема Re: A few patches to clarify snapshot management
Дата
Msg-id 20250820003756.31.nmisch@google.com
обсуждение исходный текст
Ответ на Re: A few patches to clarify snapshot management  (Heikki Linnakangas <hlinnaka@iki.fi>)
Ответы Re: A few patches to clarify snapshot management
Список pgsql-hackers
On Tue, Aug 19, 2025 at 11:45:01PM +0300, Heikki Linnakangas wrote:
> How about the attached, then? It reverts the GetTransactionSnapshot()
> change. But to still catch at least some of the invalid uses of the historic
> snapshot, it adds checks to heap_beginscan() and index_beginscan(), to
> complain if they are called on a non-catalog relation with a historic
> snapshot.

> @@ -1143,6 +1143,15 @@ heap_beginscan(Relation relation, Snapshot snapshot,
>      if (!(snapshot && IsMVCCSnapshot(snapshot)))
>          scan->rs_base.rs_flags &= ~SO_ALLOW_PAGEMODE;
>  
> +    /* Check that a historic snapshot is not used for non-catalog tables */
> +    if (snapshot &&
> +        IsHistoricMVCCSnapshot(snapshot) &&
> +        !RelationIsAccessibleInLogicalDecoding(relation))
> +    {
> +        elog(ERROR, "cannot query non-catalog table \"%s\" during logical decoding",
> +             RelationGetRelationName(relation));
> +    }
> +

I feel post-beta3 is late for debut of restrictions like this.  How about a
pure revert, then add those restrictions in v19?  Should be s/elog/ereport/,
also.



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