E.23. Выпуск 16.9 #

Дата выпуска: 2025-05-08

В этот выпуск вошли различные исправления, внесённые после версии 16.8. За информацией о нововведениях версии 16 обратитесь к Разделу E.32.

E.23.1. Миграция на версию 16.9 #

Если используется версия 16.X, выгрузка/восстановление базы не требуется.

Однако если вы используете ограничения ссылающихся на себя внешних ключей в секционированных таблицах, может потребоваться пересоздать такие ограничения, чтобы удостовериться в их корректном применении. Обратитесь ко второму пункту в списке изменений ниже.

Кроме того, если вы используете фильтры Блума в индексах BRIN, после обновления рекомендуется выполнить переиндексацию. Обратитесь к третьему пункту в списке изменений ниже.

Если вы обновляете сервер с более ранней версии, чем 16.5, см. Раздел E.27.

E.23.2. Изменения #

  • Устранение выхода за границы буфера на один байт при проверке некорректно закодированных строк, которые якобы приведены в кодировке GB18030 (Ной Миш, Андрес Фройнд) §

    Если неполный многобайтовый символ появлялся за пределами памяти, на сервере и в использующих libpq приложениях с невысокой вероятностью мог возникать сбой из-за ошибки сегментации SIGSEGV. (CVE-2025-4207)

  • Исправление обработки ссылающихся на себя внешних ключей в секционированных таблицах (Альваро Эррера) §

    При создании или присоединении секций для ограничения внешнего ключа не создавались необходимые записи каталога, если это ограничение ссылалось на ту же секционированную таблицу. По этой причине ограничение не применялось в полной мере.

    Чтобы устранить проблему, удалите и пересоздайте ссылающиеся на себя внешние ключи в секционированных таблицах, если секции были созданы или присоединены после создания ограничения. Обратите внимание, что строки, нарушающие ограничение, уже могут содержаться в таблицах, поэтому пересоздать ограничение в этом случае не получится и придётся исправить эти строки, чтобы попробовать устранить проблему ещё раз.

  • Предотвращение потери данных во время слияния сжатых сводок индекса BRIN при помощи функции brin_bloom_union() (Томаш Вондра) §

    В коде не учитывались результаты распаковки из-за их неидентичности входным данным. По этой причине некоторые данные не попадали в объединённую сводку, что приводило к потере строк при поиске по индексу.

    Эта ошибка присутствовала ещё с PostgreSQL 14, где появилась возможность использовать фильтры Блума в индексах BRIN. Однако это место кода тогда практически не задействовалось. Теперь в PostgreSQL 17 вероятность натолкнуться на эту ошибку существенно возросла, поскольку код используется при параллельном построении индексов.

  • Устранение непредвиденных ошибок «attribute has wrong type» (атрибут имеет неверный тип) в запросах UPDATE, DELETE и MERGE, при которых переменные «вся строка» таблицы ссылаются на представления или функции в предложении FROM (Том Лейн) §

  • Исправление слияния с секционированной таблицей при помощи команды MERGE с действиями DO NOTHING (Тендер Ван) §

    В некоторых случаях возникала ошибка «unknown action in MERGE WHEN clause» (неизвестное действие в предложении MERGE WHEN).

  • Устранение сбоя команды INSERT, который мог возникать, если у таблицы был столбец, определённый со свойством GENERATED, с типом данных домена и ограничения домена запрещали значения NULL (Цзянь Хи) §

    Ошибка ограничения возникала даже при нормальных результатах генерирующего выражения.

  • Исправление обработки ссылок на имена внешних CTE внутри предложения WITH, присоединённого к команде INSERT/UPDATE/DELETE/MERGE, которая сама находится внутри предложения WITH (Том Лейн) §

    Анализатор запросов не выявлял недопустимые случаи рекурсивных запросов и не учитывал такие ссылки при сортировке CTE в корректном порядке выполнения.

  • Запрет параллельных вызовов функции array_agg(), если типом её аргумента является анонимная запись (Ричард Гуо, Том Лейн) §

    Протокол взаимодействия параллельных рабочих процессов не поддерживает определение конкретного типа записи, возвращаемой рабочим процессом.

  • Исправление вывода некорректных результатов конструкциями ARRAY(подзапрос) и ARRAY[выражение, ...] при передаче данных типа int2vector или oidvector (Том Лейн) §

    Это исправление восстанавливает поведение, которое демонстрировалось до версии PostgreSQL 9.5. Результат теперь снова выводится с типом int2vector[] или oidvector[].

  • Исправление возможных некорректных выводов ошибок о недействительных аффиксах во время разбора словарей Ispell (Джейкоб Брейзил) §

  • Исправление команды ALTER TABLE ADD COLUMN для корректной обработки типа данных домена со значением по умолчанию (Цзянь Хи, Том Лейн, Тендер Ван) §

    Если у доменного типа было значение по умолчанию, при добавлении столбца этого типа (без явного указания предложения DEFAULT) значение домена по умолчанию к существующим строкам не применялось. Вместо этого в новом столбце подставлялось значение NULL.

  • Исправление некорректного поведения при дублировании имён столбцов в действии ON DELETE SET DEFAULT или SET NULL ограничения внешнего ключа (Том Лейн) §

  • Улучшение текста сообщения об ошибке, которое выводится при попытках недопустимого изменения свойств ограничения внешнего ключа (Альваро Эррера) §

  • Исправление ошибки, возникавшей при сбросе флага relhassubclass временной таблицы, для которой указано предложение ON COMMIT DELETE ROWS (Ной Миш) §

  • Добавление недостающего разбора аргумента INDENT функции XMLSERIALIZE() (Джим Джонс) § §

    Ранее представления или правила, использующие XMLSERIALIZE(... INDENT), выгружались без предложения INDENT, что приводило к некорректным результатам после восстановления.

  • Предотвращение преждевременного вычисления аргументов агрегатной функции, которой одновременно переданы аргументы FILTER и ORDER BY (или DISTINCT) (Дэвид Роули) §

    При передаче ORDER BY или DISTINCT возможна предварительная сортировка входных значений агрегатной функции вместо сортировки внутри узла Agg плана. Однако это может быть проблемой, если на вход агрегатной функции передаются данные, которые могут привести к ошибке вычисления (например, операция деления с одним из делителей равным нулю), и указано предложение FILTER, призванное исключить такие ошибки. Ранее при предварительной сортировке выражения вычислялись до выполнения FILTER, и ошибки не исключались. Теперь предварительная сортировка не используется, если указано предложение FILTER и входные данные сложнее, чем простые переменные или константы.

  • Исправление ошибки планировщика при определении более одного хешируемого подвыражения ScalarArrayOpExpr внутри выражения верхнего уровня (Давид Гайер) §

    Это приводило к неэффективному выполнению дополнительных подвыражений, которые могли быть обработаны через хеш-таблицу (а именно предложений IN, NOT IN или = ANY, которым передавались только константы).

  • Отключение оптимизации «пропуск выборки» в сканировании кучи по битовой карте (Маттиас ван де Меент) §

    Оказалось, что из-за этой оптимизации могли возвращаться мёртвые кортежи, когда параллельные операции очистки помечали страницу как полностью видимую.

  • Устранение проблем производительности при запуске поиска по индексу GIN с большим числом поисковых ключей (Том Лейн, Винод Шридхаран) § §

    Поиск по индексируемым предложениям с большим числом поисковых ключей (например, jsonbcol ?| array[...] с десятками тысяч элементов массива) запускался через O(N2) времени. В течение этого временного промежутка его также нельзя было отменить.

  • Выявление недостающих опорных процедур в классе операторов индекса BRIN и вывод ошибки вместо сбоя (Альваро Эррера) §

  • Реагирование на прерывания (например, отмену запроса) во время ожидания асинхронных подпланов узла плана Append (Хейкки Линнакангас) §

    Ранее ничего не происходило, пока один из подпланов не был готов.

  • Более частая передача статистики ввода-вывода от активных передатчиков WAL (Бертран Друво) §

    Ранее для процесса-передатчика WAL в представлении pg_stat_io статистика ввода-вывода отображалась только после его завершения. Теперь статистика обновляется максимум с секундной задержкой.

  • Устранение условий гонки при обработке параметра конфигурации synchronous_standby_names сразу после запуска сервера (Максим Мельников, Микаэль Пакье) §

    В течение короткого промежутка времени после запуска системы обслуживающие процессы могли не дожидаться синхронного подтверждения транзакций, несмотря на установленный параметр synchronous_standby_names.

  • Устранение бесконечного цикла при значении INT_MAX для scram_iterations (Кевин К. Биджу) §

  • Предотвращение возможных сбоев из-за двойного преобразования подзапроса функции json_array() (Том Лейн) §

  • Устранение сбоя функции pg_strtof() при передаче NULL в endptr (Александр Лахин, Том Лейн) §

  • Устранение сбоя из-за нехватки памяти при установлении значений для некоторых GUC (Даниэль Густафссон) §

  • Устранение сбоя при нехватке памяти в стеммере Snowball (Максим Коротков) §

  • Запрет копирования аннулированных слотов репликации (Шлок Кьял) §

    Это позволяет избежать проблем, когда аннулированный слот указывает на уже удалённый WAL.

  • Запрет восстановления слотов логической репликации на резервных серверах, не находящихся в режиме горячего резерва (Масахико Савада) §

    Это позволяет предотвратить сценарий, при котором слот может оставаться действительным после повышения резервного сервера до ведущего даже при слишком низком значении параметра конфигурации wal_level.

  • Предотвращение слишком сильного продвижения значения catalog_xmin в «ускоренном» режиме логического декодирования (Хоу Чжицзе) §

    Ранее это могло приводить к очистке удалённых записей каталога, несмотря на то, что они потенциально могли быть необходимы процессу чтения WAL.

  • Предотвращение потери данных при выполнении DDL-операций без сильной блокировки для таблиц, участвующих в логической репликации (Шлок Кьял, Хайато Курода) §

    Изменения каталога, вызванные командами DDL, не отражались в процессах декодирования WAL, из-за чего последующие изменения декодировались с использованием устаревших данных каталога. Это потенциально могло приводить к повреждению данных.

  • Предотвращение некорректного сброса источника репликации при ошибке рабочего процесса применения изменений, когда ошибка перехватывается и рабочий процесс не завершается (Хайато Курода) §

    В результате этой ошибки могли применяться дублирующиеся данные.

  • Запрет создания дубликата снимка при поиске по индексу во время логической репликации (Хейкки Линнакангас) § §

  • Улучшение выявления подписок, принимающих изменения от разных источников (Хоу Чжицзе, Шлок Кьял) §

    Если для таблицы, на которую создаётся подписка, уже существуют подписки в рамках других публикаций, при создании подписки выводится предупреждение, поскольку в таком случае могут поступать дублирующие данные. Изменение улучшает эту логику и позволяет выявлять случаи, когда в рамках другой публикации создана подписка для родительской секции или дочерней таблицы.

  • Исправление некорректной информации о контрольной точке в сообщении об ошибке, выводимом в случае неверного выбора линии времени для восстановления (Дэвид Стил) §

    Если запрошенная линия времени недостижима, значения выводимых в сообщении контрольной точки и линии времени должны считываться из файла backup_label, если он создан. Ранее в сообщение попадали значения из управляющего файла, что корректно при восстановлении из управляющего файла без файла backup_label, но некорректно при наличии файла backup_label.

  • Удаление некорректного проверочного утверждения в функции pgstat_report_stat() (Микаэль Пакье) §

  • Исправление слишком строгого проверочного утверждения в функции gistFindCorrectParent() (Хейкки Линнакангас) §

  • Устранение сбоя проверочного утверждения, возникавшего в редких случаях на резервных серверах при перезапуске ведущего (Хейкки Линнакангас) §

  • Исправление ошибки «unexpected plan node type» (неожиданный тип узла плана) в PL/pgSQL при определении прокручиваемого курсора для простого запроса SELECT выражение (Андрей Лепихов) §

  • Запрет удаления отдельных секций индекса в режиме --clean утилиты pg_dump (Цзянь Хи) §

    Сервер не принимает такие команды DROP. Однако реальных последствий это не вызывает, поскольку секции всё равно удалятся при последующем удалении их родительских таблиц или секционированного индекса. Тем не менее выводимая ошибка о попытке удаления мешала во время восстановления в режиме --single-transaction.

  • Запрет генерирования недействительных команд GRANT для ролей утилитой pg_dumpall, если в каталоге pg_auth_members содержатся недействительные OID ролей (Том Лейн) §

    Вместо этого теперь выводится предупреждение, и вхождение каталога пропускается. Такое решение позволяет лучше справляться с повреждением каталога, которое могло возникать в ветвях старых версий в результате условий гонки между командами GRANT и DROP ROLE.

  • Использование корректной функции для высвобождения памяти, выделенной libpq, для утилит pg_amcheck и pg_upgrade (Микаэль Пакье, Ранье Вилела) § § §

    Эти недоработки могли приводить к сбоям в некоторых конфигурациях сборок для Windows, например в отладочной сборке libpq, используемой неотладочной сборкой вызывающего приложения.

  • Возможность прерывать запросы contrib/dblink операцией отмены запроса (Ной Миш) §

    Это изменение также переносит правки кода из PostgreSQL 17. Оно предотвращает возможные зависания команд CREATE DATABASE и DROP DATABASE из-за ошибок при определении взаимоблокировок.

  • Устранение сбоя при передаче повреждённых входных данных функции heap_page_items() модуля contrib/pageinspect (Дмитрий Коваленко) §

  • Устранение сбоя проверочного утверждения в функции pg_freespace() модуля contrib/pg_freespacemap (Тендер Ван) §

    Вызов функции pg_freespace() для отношений без физического хранилища (например, для представлений) приводил к сбою проверочного утверждения, хотя негативно на сборки без проверочных утверждений это не влияло. Теперь для таких случаев добавлена проверка ошибок.

  • Исправление ошибки сборки в macOS 15.4 (Том Лейн, Питер Эйзентраут) §

    Обновление macOS повредило проверку конфигурации для функции strchrnul().

  • Обновление данных часовых поясов до версии tzdata 2025b, включающее изменение правил перехода на летнее время в Чили, а также корректировку исторических данных для Ирана (Том Лейн) §

    Появился новый часовой пояс America/Coyhaique для области Айсен в Чили, который позволяет учитывать для неё часовой пояс UTC-03 без перехода на летнее время и соответствующее расхождение с поясом America/Santiago.

E.23. Release 16.9 #

Release date: 2025-05-08

This release contains a variety of fixes from 16.8. For information about new features in major release 16, see Section E.32.

E.23.1. Migration to Version 16.9 #

A dump/restore is not required for those running 16.X.

However, if you have any self-referential foreign key constraints on partitioned tables, it may be necessary to recreate those constraints to ensure that they are being enforced correctly. See the second changelog entry below.

Also, if you have any BRIN bloom indexes, it may be advisable to reindex them after updating. See the third changelog entry below.

Also, if you are upgrading from a version earlier than 16.5, see Section E.27.

E.23.2. Changes #

  • Avoid one-byte buffer overread when examining invalidly-encoded strings that are claimed to be in GB18030 encoding (Noah Misch, Andres Freund) § §

    While unlikely, a SIGSEGV crash could occur if an incomplete multibyte character appeared at the end of memory. This was possible both in the server and in libpq-using applications. (CVE-2025-4207)

  • Handle self-referential foreign keys on partitioned tables correctly (Álvaro Herrera) §

    Creating or attaching partitions failed to make the required catalog entries for a foreign-key constraint, if the table referenced by the constraint was the same partitioned table. This resulted in failure to enforce the constraint fully.

    To fix this, you should drop and recreate any self-referential foreign keys on partitioned tables, if partitions have been created or attached since the constraint was created. Bear in mind that violating rows might already be present, in which case recreating the constraint will fail, and you'll need to fix up those rows before trying again.

  • Avoid data loss when merging compressed BRIN summaries in brin_bloom_union() (Tomas Vondra) §

    The code failed to account for decompression results not being identical to the input objects, which would result in failure to add some of the data to the merged summary, leading to missed rows in index searches.

    This mistake was present back to v14 where BRIN bloom indexes were introduced, but this code path was only rarely reached then. It's substantially more likely to be hit in v17 because parallel index builds now use the code.

  • Fix unexpected attribute has wrong type errors in UPDATE, DELETE, and MERGE queries that use whole-row table references to views or functions in FROM (Tom Lane) §

  • Fix MERGE into a partitioned table with DO NOTHING actions (Tender Wang) §

    Some cases failed with unknown action in MERGE WHEN clause errors.

  • Prevent failure in INSERT commands when the table has a GENERATED column of a domain data type and the domain's constraints disallow null values (Jian He) §

    Constraint failure was reported even if the generation expression produced a perfectly okay result.

  • Correctly process references to outer CTE names that appear within a WITH clause attached to an INSERT/UPDATE/DELETE/MERGE command that's inside WITH (Tom Lane) §

    The parser failed to detect disallowed recursion cases, nor did it account for such references when sorting CTEs into a usable order.

  • Don't try to parallelize array_agg() when the argument is of an anonymous record type (Richard Guo, Tom Lane) §

    The protocol for communicating with parallel workers doesn't support identifying the concrete record type that a worker is returning.

  • Fix ARRAY(subquery) and ARRAY[expression, ...] constructs to produce sane results when the input is of type int2vector or oidvector (Tom Lane) §

    This patch restores the behavior that existed before PostgreSQL 9.5: the result is of type int2vector[] or oidvector[].

  • Fix possible erroneous reports of invalid affixes while parsing Ispell dictionaries (Jacob Brazeal) §

  • Fix ALTER TABLE ADD COLUMN to correctly handle the case of a domain type that has a default (Jian He, Tom Lane, Tender Wang) § §

    If a domain type has a default, adding a column of that type (without any explicit DEFAULT clause) failed to install the domain's default value in existing rows, instead leaving the new column null.

  • Repair misbehavior when there are duplicate column names in a foreign key constraint's ON DELETE SET DEFAULT or SET NULL action (Tom Lane) §

  • Improve the error message for disallowed attempts to alter the properties of a foreign key constraint (Álvaro Herrera) §

  • Avoid error when resetting the relhassubclass flag of a temporary table that's marked ON COMMIT DELETE ROWS (Noah Misch) §

  • Add missing deparsing of the INDENT option of XMLSERIALIZE() (Jim Jones) § §

    Previously, views or rules using XMLSERIALIZE(... INDENT) were dumped without the INDENT clause, causing incorrect results after restore.

  • Avoid premature evaluation of the arguments of an aggregate function that has both FILTER and ORDER BY (or DISTINCT) options (David Rowley) §

    If there is ORDER BY or DISTINCT, we consider pre-sorting the aggregate input values rather than doing the sort within the Agg plan node. But this is problematic if the aggregate inputs include expressions that could fail (for example, a division where some of the input divisors could be zero) and there is a FILTER clause that's meant to prevent such failures. Pre-sorting would push the expression evaluations to before the FILTER test, allowing the failures to happen anyway. Avoid this by not pre-sorting if there's a FILTER and the input expressions are anything more complex than a simple Var or Const.

  • Fix planner's failure to identify more than one hashable ScalarArrayOpExpr subexpression within a top-level expression (David Geier) §

    This resulted in unnecessarily-inefficient execution of any additional subexpressions that could have been processed with a hash table (that is, IN, NOT IN, or = ANY clauses with all-constant right-hand sides).

  • Disable skip fetch optimization in bitmap heap scan (Matthias van de Meent) §

    It turns out that this optimization can result in returning dead tuples when a concurrent vacuum marks a page all-visible.

  • Fix performance issues in GIN index search startup when there are many search keys (Tom Lane, Vinod Sridharan) § §

    An indexable clause with many keys (for example, jsonbcol ?| array[...] with tens of thousands of array elements) took O(N2) time to start up, and was uncancelable for that interval too.

  • Detect missing support procedures in a BRIN index operator class, and report an error instead of crashing (Álvaro Herrera) §

  • Respond to interrupts (such as query cancel) while waiting for asynchronous subplans of an Append plan node (Heikki Linnakangas) §

    Previously, nothing would happen until one of the subplans becomes ready.

  • Report the I/O statistics of active WAL senders more frequently (Bertrand Drouvot) §

    Previously, the pg_stat_io view failed to accumulate I/O performed by a WAL sender until that process exited. Now such I/O will be reported after at most one second's delay.

  • Fix race condition in handling of synchronous_standby_names immediately after startup (Melnikov Maksim, Michael Paquier) §

    For a short period after system startup, backends might fail to wait for synchronous commit even though synchronous_standby_names is enabled.

  • Avoid infinite loop if scram_iterations is set to INT_MAX (Kevin K Biju) §

  • Avoid possible crashes due to double transformation of json_array()'s subquery (Tom Lane) §

  • Fix pg_strtof() to not crash with null endptr (Alexander Lakhin, Tom Lane) §

  • Fix crash after out-of-memory in certain GUC assignments (Daniel Gustafsson) §

  • Avoid crash when a Snowball stemmer encounters an out-of-memory condition (Maksim Korotkov) §

  • Disallow copying of invalidated replication slots (Shlok Kyal) §

    This prevents trouble when the invalid slot points to WAL that's already been removed.

  • Disallow restoring logical replication slots on standby servers that are not in hot-standby mode (Masahiko Sawada) §

    This prevents a scenario where the slot could remain valid after promotion even if wal_level is too low.

  • Prevent over-advancement of catalog xmin in fast forward mode of logical decoding (Zhijie Hou) §

    This mistake could allow deleted catalog entries to be vacuumed away even though they were still potentially needed by the WAL-reading process.

  • Avoid data loss when DDL operations that don't take a strong lock affect tables that are being logically replicated (Shlok Kyal, Hayato Kuroda) § §

    The catalog changes caused by the DDL command were not reflected into WAL-decoding processes, allowing them to decode subsequent changes using stale catalog data, probably resulting in data corruption.

  • Prevent incorrect reset of replication origin when an apply worker encounters an error but the error is caught and does not result in worker exit (Hayato Kuroda) §

    This mistake could allow duplicate data to be applied.

  • Avoid duplicate snapshot creation in logical replication index lookups (Heikki Linnakangas) § §

  • Improve detection of mixed-origin subscriptions (Hou Zhijie, Shlok Kyal) §

    Subscription creation gives a warning if a subscribed-to table is also being followed through other publications, since that could cause duplicate data to be received. This change improves that logic to also detect cases where a partition parent or child table is the one being followed through another publication.

  • Fix wrong checkpoint details in error message about incorrect recovery timeline choice (David Steele) §

    If the requested recovery timeline is not reachable, the reported checkpoint and timeline should be the values read from the backup_label, if there is one. This message previously reported values from the control file, which is correct when recovering from the control file without a backup_label, but not when there is a backup_label.

  • Remove incorrect assertion in pgstat_report_stat() (Michael Paquier) §

  • Fix overly-strict assertion in gistFindCorrectParent() (Heikki Linnakangas) §

  • Fix rare assertion failure in standby servers when the primary is restarted (Heikki Linnakangas) §

  • In PL/pgSQL, avoid unexpected plan node type error when a scrollable cursor is defined on a simple SELECT expression query (Andrei Lepikhov) §

  • Don't try to drop individual index partitions in pg_dump's --clean mode (Jian He) §

    The server rejects such DROP commands. That has no real consequences, since the partitions will go away anyway in the subsequent DROPs of either their parent tables or their partitioned index. However, the error reported for the attempted drop causes problems when restoring in --single-transaction mode.

  • In pg_dumpall, avoid emitting invalid role GRANT commands if pg_auth_members contains invalid role OIDs (Tom Lane) §

    Instead, print a warning and skip the entry. This copes better with catalog corruption that has been seen to occur in back branches as a result of race conditions between GRANT and DROP ROLE.

  • In pg_amcheck and pg_upgrade, use the correct function to free allocations made by libpq (Michael Paquier, Ranier Vilela) § § §

    These oversights could result in crashes in certain Windows build configurations, such as a debug build of libpq used by a non-debug build of the calling application.

  • Allow contrib/dblink queries to be interrupted by query cancel (Noah Misch) §

    This change back-patches a v17-era fix. It prevents possible hangs in CREATE DATABASE and DROP DATABASE due to failure to detect deadlocks.

  • Avoid crashing with corrupt input data in contrib/pageinspect's heap_page_items() (Dmitry Kovalenko) §

  • Prevent assertion failure in contrib/pg_freespacemap's pg_freespacemap() (Tender Wang) §

    Applying pg_freespacemap() to a relation lacking storage (such as a view) caused an assertion failure, although there was no ill effect in non-assert builds. Add an error check to reject that case.

  • Fix build failure on macOS 15.4 (Tom Lane, Peter Eisentraut) §

    This macOS update broke our configuration probe for strchrnul().

  • Update time zone data files to tzdata release 2025b for DST law changes in Chile, plus historical corrections for Iran (Tom Lane) §

    There is a new time zone America/Coyhaique for Chile's Aysén Region, to account for it changing to UTC-03 year-round and thus diverging from America/Santiago.

FAQ