5.1.0
===== Новые функции
— Поддержка секционирования LIST для целых чисел с одним значением. (Проблема № 236) — Добавление явного упорядочивания обслуживания набора секций. (Проблема №497) — В таблицу part_config добавлен новый столбец maintenance_order. Если он установлен, наборы секций будут выполняться в порядке возрастания числовых значений. — По умолчанию имеет значение NULL и не требуется. — Значения NULL всегда идут после числовых наборов без гарантированного порядка. — Добавлен новый столбец part_config.maintenance_last_run для отслеживания последнего времени выполнения обслуживания для этого набора секций. Отметка времени обновляется только в случае успешного завершения обслуживания этого набора секций, поэтому её можно использовать в качестве показателя мониторинга. — REPLICA IDENTITY теперь автоматически наследуется от родительской таблицы всем дочерним таблицам (№ 502). — Обратите внимание, что это будет применяться только к вновь созданным дочерним таблицам для существующих наборов секций. Существующие дочерние таблицы необходимо обновить вручную. — ЭКСПЕРИМЕНТАЛЬНО — Поддержка числового секционирования (проблема № 265). — Обратите внимание: хотя столбец раздела теперь может иметь числовой тип, интервал секционирования по-прежнему должен быть целым числом. — Пожалуйста, тщательно оцените эту функцию перед использованием в рабочей среде и не стесняйтесь открывать проблемы или обсуждения на репозитории Github как для положительных, так и для отрицательных отзывов. Положительные отзывы ускорят вывод этой функции из экспериментальной.
Исправления ошибок
— Удаление дочерних таблиц из публикации во время хранения, которое сохраняет таблицы (проблема Github № 523). — Разрешение вызова обслуживания разделов на репликах без ошибки. Вызов обслуживания на реплике ничего не сделает и завершится корректно. Позволяет настроить согласованные задания cron между системами аварийного переключения. (проблема Github № 569). — Правильное наследование табличных пространств (проблема Github № 609). — Это была регрессия в версии 5.0, которая ошибочно перестала работать. Наследование табличного пространства по-прежнему работает должным образом в версии 4.x. — Разрешить работу флага infinite_time_partitions, даже если набор секций не содержит данных. Это может произойти в наборах секций с сохранением и низкой записью данных (проблема Github № 585). — Исправлен крайний случай, когда наборы секций с нулевыми данными всё равно создавали бы новые разделы. Срабатывает при обслуживании partman нескольких наборов секций, и обслуживание выполняется сначала для одного с данными, а затем для другого без данных. — Исправлено выбрасывание функций partition_data ошибки, если исходная таблица находилась не в той же схеме, что и родительская таблица. (проблема Github № 639).
4.8.0
===== Исправление ошибок
— Добавлен параметр pg_analyze в функцию partition_gap_fill, чтобы разрешить пропуск анализа набора секций, если заполнение промежутков фактически создаёт новые секции. Обратите внимание, что эта опция недоступна в версии 5.x, поскольку шаг анализа был переработан и больше не запускается автоматически во время вызова функции заполнения промежутков. — Обратите внимание, что нет возможности напрямую установить версию 4.8.0. Сначала необходимо установить более раннюю версию, а затем обновить её до версии 4.8.0. Рекомендуется перейти на последнюю основную версию для продолжения поддержки pg_partman.
5.0.0 и 5.0.1
============= Примечания к обновлению
— Обновление до версии 5.x пришлось разделить на две части, чтобы можно было выполнить определённые условия ограничения транзакций. См. pg_partman_5.0.1_upgrade.md, если вы столкнётесь с какими-либо ошибками, касающимися триггеров при попытке обновления. Отдельной версии 5.0.0 для pg_partman больше нет, и все пользователи должны обновиться до версии 5.0.1.
— Если вы уже успешно обновились до версии 5.0.0, обновление до версии 5.0.1 не внесёт никаких изменений. Новая минорная версия предназначена для поэтапного обновления.
— Рекомендуется сделать резервную копию таблиц part_config и part_config_sub перед обновлением, просто чтобы убедиться, что их можно восстановить в случае возникновения каких-либо проблем. Эти таблицы воссоздаются в процессе обновления.
— Если во время попытки обновления вы видите какие-либо ошибки о существовании следующих таблиц, пожалуйста, просмотрите их содержимое и убедитесь, что вам не нужны никакие данные конфигурации, содержащиеся в них. Удалите их, если они не нужны, и Попробуйте обновление снова: part_config_pre_500_data
, part_config_sub_pre_500_data
.
Большое спасибо всем, кто помогал с тестированием и проверкой кода во время разработки версии 5.x. В частности:
Изменения:
Новые функции:
По умолчанию данные в разделе по умолчанию теперь игнорируются при расчёте новых дочерних разделов для создания. Если границы новой дочерней таблицы будут включать данные, существующие в разделе по умолчанию, это вызовет ошибку во время обслуживания и должно быть разрешено вручную путём удаления этих данных из раздела по умолчанию или их разделения в соответствующую дочернюю таблицу с использованием функции/процедуры partition_data.
Доступен флаг для учёта данных по умолчанию, но он должен использоваться только в редких случаях для исправления проблем обслуживания и не должен оставаться постоянно включённым для идеального обслуживания разделов.
Добавлена опция, позволяющая сделать таблицу по умолчанию необязательной во время создания раздела (p_default_table) (проблема Github № 489).
Начиная с PostgreSQL 13, вновь созданные дочерние таблицы в наборе разделов, который является частью логической репликации PUBLICATION, автоматически добавляются к этой PUBLICATION. Поэтому конфигурация массива «publications» в таблицах конфигурации pg_partman была удалена. Просто убедитесь, что родительская таблица является частью необходимых публикаций, и теперь она будет автоматически обрабатываться ядром PostgreSQL (проблема Github № 520).
Обратите внимание, что подписка не обновляется автоматически для учёта новых таблиц, добавленных в опубликованный набор разделов. См. примечание выше в РАЗРЫВНЫХ ИЗМЕНЕНИЯХ относительно обновлений на стороне подписки.
Добавлена поддержка удаления индексов для разделов, перемещённых в другую схему в рамках хранения (запрос на включение Github PR № 449).
Создание шаблонной таблицы теперь необязательно при вызове create_parent(). Установите p_template_table в false, чтобы пропустить создание шаблонной таблицы. Обратите внимание, что это не логическое значение, поскольку этот параметр также предназначен для получения имени шаблонной таблицы, поэтому необходимо установить явное строковое значение false (проблема Github № 505).
Множество оптимизаций серверной части и упрощение кода.
Разрешить переопределение переменной среды PG_CONFIG при запуске make (запрос на включение Github PR № 589).
Исправлен крайний случай с infinite_time_partitions. Если установлено значение true и были вставлены данные далеко впереди от «сейчас», новые дочерние таблицы не создавались бы на основе предварительного просмотра.
Сделайте ошибки из show_partition_info() более понятными (проблема Github № 542).
Убедитесь, что значение bgw_type правильно установлено в структурах фоновых рабочих процессов (проблема Github № 573).
Для CHANGELOG до версии 5.0.0 см. файл CHANGELOG-pre-5.0.0.txt.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )