Re: [BUG] pg_upgrade test fails from older versions.

Поиск
Список
Период
Сортировка
От Michael Paquier
Тема Re: [BUG] pg_upgrade test fails from older versions.
Дата
Msg-id Y5/WJgHhbAlwM3Ly@paquier.xyz
обсуждение исходный текст
Ответ на [BUG] pg_upgrade test fails from older versions.  ("Anton A. Melnikov" <aamelnikov@inbox.ru>)
Список pgsql-hackers
On Mon, Dec 19, 2022 at 03:50:19AM +0300, Anton A. Melnikov wrote:
> +-- The internal format of "aclitem" changed in PostgreSQL version 16
> +-- so replace it with text type
> +\if :oldpgversion_le15
> +DO $$
> +DECLARE
> +    change_aclitem_type TEXT;
> +BEGIN
> +    FOR change_aclitem_type IN
> +        SELECT 'ALTER TABLE ' || table_schema || '.' ||
> +        table_name || ' ALTER COLUMN ' ||
> +        column_name || ' SET DATA TYPE text;'
> +        AS change_aclitem_type
> +        FROM information_schema.columns
> +        WHERE data_type = 'aclitem' and table_schema != 'pg_catalog'
> +    LOOP
> +        EXECUTE change_aclitem_type;
> +    END LOOP;
> +END;
> +$$;
> +\endif

This is forgetting about materialized views, which is something that
pg_upgrade would also complain about when checking for relations with
aclitems.  As far as I can see, the only place in the main regression
test suite where we have an aclitem attribute is tab_core_types for
HEAD and the stable branches, so it would be enough to do this
change.  Anyway, wouldn't it be better to use the same conditions as
the WITH OIDS queries a few lines above, at least for consistency?

Note that check_for_data_types_usage() checks for tables, matviews and
indexes.
--
Michael

Вложения

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: [BUG] pg_upgrade test fails from older versions.
Следующее
От: Michael Paquier
Дата:
Сообщение: Re: [BUG] pg_upgrade test fails from older versions.