PostgreSQL

Скріншот програми:
PostgreSQL
Дані програми:
Версія: 10.5 / 11 Beta 3 оновлений
Дата завантаження: 16 Aug 18
Ліцензія: Безкоштовно
Популярність: 29

Rating: 1.5/5 (Total Votes: 2)

PostgreSQL - це система з відкритим вихідним кодом, потужна, надійна, стабільна, доступна для підприємств і вільна об'єктно-реляційна база даних у стилі проектів MariaDB, MySQL або SQLite. Це сервери / двигуни, сумісні з ACID (Atomicity, Consistency, Isolation, Durability), які можуть бути дуже індивідуальними та включають численні привабливі функції, що робить чудову заміну для вищезазначених двигунів баз даних.


Особливості з першого погляду

Основні функції включають підтримку зовнішніх ключів, переглядів, об'єднань, тригерів та збережених процедур, підтримку кількох мов, підтримка широкого кола типів даних SQL, зокрема BOOLEAN, CHAR, INTEGER, NUMERIC, VARCHAR, INTERVAL, TIMESTAMP та DATE.

Крім того, програмне забезпечення постачається з підтримкою зберігання бінарних великих об'єктів, включаючи всілякі мультимедійні файли (відео, аудіо та фото), а також забезпечує розробників з власними програмуючими інтерфейсами для C, C ++, Python, Perl, Ruby, Java, .Net, Tcl і ODBC мови програмування.

Серед інших цікавих особливостей можна назвати MVCC (Multi-Version Concurrency Control), табличні поля, мультибайтові кодування символів, точки відновлення часу, зрілий оптимізатор запитів і планувальник, асинхронна реплікація, Інтернет-резервне копіювання, вкладені транзакції (відомі як збереження точок), гарячі резервні копії, заздалегідь записуйте на виправлення помилок, підтримку міжнародних наборів символів, а також підтримку Unicode.


PostgreSQL в цифрах

На даний момент сервер бази даних PostgreSQL підтримує необмежений розмір для баз даних, 32 ТБ має бути максимальним розміром для таблиць, 1.6 ТБ на рядок, 1 Гб на поле, необмеженим рядком за таблицею, підтримує від 250 до 1600 колонок на одну таблицю , залежно від типів стовпців та підтримує необмежені індекси в таблиці.


Підтримувані операційні системи

PostgreSQL успішно протестовано на всіх основних операційних системах, включаючи GNU / Linux, BSD, Solaris, HP-UX, AIX, SGI IRIX, Solaris, Tru64, Mac OS X і Microsoft Windows. PostgreSQL доступний для завантаження як універсальний джерельний архів, а також попередньо скомпільовані бінарні пакети для багатьох дистрибутивів Linux, що підтримують як 32-розрядні, так і 64-бітні архітектури.

Що нового у цьому випуску:

  • Цей випуск виправляє дві проблеми безпеки. Цей випуск також вирішує проблеми, виявлені за допомогою вікумів, індикаторів GIN і хешу, паралельного запиту, логічної реплікації та інших помилок, повідомлених за останні три місяці. Усі користувачі, які використовують постраждалі версії PostgreSQL, повинні оновлюватися якомога швидше.

Що нового в версії 10.4 / 11 Beta 1:

  • Цей випуск виправляє дві проблеми з безпекою. Цей випуск також вирішує проблеми, виявлені за допомогою вікумів, індикаторів GIN і хешу, паралельного запиту, логічної реплікації та інших помилок, повідомлених за останні три місяці. Усі користувачі, які використовують постраждалі версії PostgreSQL, повинні оновлюватися якомога швидше.

Що нового в версії:

  • Подальше обмеження видимості pg_user_mappings.umoptions для захисту паролів, збережених у параметрах відображення користувачів (Noah Misch)
  • Виправлення для CVE-2017-7486 було неправильним: це дозволило користувачеві побачити параметри у власному картографічному користуванні, навіть якщо у неї не було дозволу USAGE на пов'язаному іноземному сервері. Такі опції можуть містити пароль, який був наданий власником сервера, а не самим користувачем. Оскільки information_schema.user_mapping_options не показує параметри у таких випадках, також не слід використовувати pg_user_mappings. (CVE-2017-7547)
  • Сам по собі цей патч буде виправляти тільки поведінку в недавно initdb'd базах даних. Якщо ви хочете застосувати цю зміну в існуючій базі даних, вам потрібно виконати наступне:
  • Перезапустіть поштовий майстер після додавання allow_system_table_mods = true до postgresql.conf. (У версіях, що підтримують ALTER SYSTEM, ви можете використовувати його для зміни конфігурації, але вам все одно доведеться перезапустити.)
  • У кожній базі даних кластера виконайте такі команди як суперкористувач:
  • SET search_path = pg_catalog;
  • ЗРОБИТИ ТА ЗМІНУТИ ПАМ'ЯТІ pg_user_mappings AS
  • SELECT
  • U.oid AS umid,
  • S.oid AS srvid,
  • S.srvname AS srvname,
  • U.umuser AS umaser,
  • ПРИЧИНА, коли U.umuser = 0 THEN
  • "загальнодоступна"
  • ELSE
  • A.rolname
  • END, як usename,
  • ПРИКЛАД КІЛЬКИ (U.umuser 0 AND A.rolname = current_user
  • І І (pg_has_role (S.svvowner, 'USAGE')
  • АБО has_server_privilege (S.oid, 'USAGE')))
  • АБО (U.umuser = 0 І pg_has_role (S.svvowner, 'USAGE'))
  • АБО (SELECT rolsuper ВІД pg_authid WHERE rolname = current_user)
  • THEN U.umoptions
  • НАСТУПНИЙ НЕЗАЛЕЖНИЙ КІЛЬКІСТЬ УВАГИ
  • FROM pg_user_mapping U
  • ВІДКРИТИЙ ПУСК pg_authid A ON (A.oid = U.umuser) ПРИЄДНАННЯ
  • pg_foreign_server S ON (U.mserver = S.oid);
  • Не забудьте включити бази даних template0 та template1, або вразливість все ще існує в базах даних, які ви створюєте пізніше. Щоб виправити шаблон0, вам доведеться тимчасово прийняти його для з'єднання. У PostgreSQL 9.5 та пізнішої версії ви можете використовувати
  • ALTER DATABASE template0 з ALLOW_CONNECTIONS true;
  • , а потім, після виправлення шаблону0, скасуйте це за допомогою
  • ALTER DATABASE template0 з ALLOW_CONNECTIONS false;
  • Замість попередніх версій використовуйте
  • UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
  • UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
  • Нарешті, видаліть налаштування конфігурації allow_system_table_mods і знову перезапустіть поштового майстра.
  • Заборонити видаляти порожні паролі у всіх методах аутентифікації на основі паролів (Heikki Linnakangas)
  • libpq ігнорує порожні специфікації пароля та не передає їх на сервер. Отже, якщо пароль користувача встановлений на порожній рядок, неможливо ввійти з цим паролем через psql або інші клієнти на основі libpq. Таким чином, адміністратор може вважати, що встановлення пароля для порожнього буде рівносильне відключенню входу пароля. Однак з модифікованим клієнтом на основі libpq неможливо увійти в систему, залежно від того, який метод автентифікації налаштовується. Зокрема, найбільш поширеним методом, md5, прийняті порожні паролі. Змініть сервер, щоб відхиляти порожні паролі у всіх випадках. (CVE-2017-7546)
  • Зробіть lo_put () перевірте привілей UPDATE на цільовому великому об'єкті (Tom Lane, Michael Paquier)
  • lo_put (), безумовно, вимагає таких самих дозволів, як lowrite (), але перевірка була відсутня, дозволяючи будь-якому користувачеві змінювати дані у великому об'єкті. (CVE-2017-7548)
  • Виправте документацію про процес оновлення резервних серверів за допомогою pg_upgrade (Bruce Momjian)
  • Попередня документація доручила користувачам запускати / зупиняти основний сервер після запуску pg_upgrade, але перед синхронізацією резервних серверів. Ця послідовність небезпечна.
  • Виправлення одночасного блокування ланцюгів оновлення кортежу (Alvaro Herrera)
  • Якщо декілька сеансів одночасно блокують ланцюжок оновлення кортежу за допомогою незбагненних режимів блокування, використовуючи старий знімок, і всі вони досягають успіху, деякі з них, однак, могли вийти з ладу (і зробити висновок, що немає живого варіанта версії) через гонку умова Це мали такі наслідки, як перевірки чужорідних ключових слів, які не бачили кортежу, який точно існує, але одночасно оновлюється.
  • Виправте потенційну помилку при замороженні кортежу, XMAX мультиекстрактний з рівним ще одним цікавим учасником (Теодор Сигаєв)
  • Уникайте переповнення цілого числа та збій при сортуванні більше одного мільярда порцій в пам'яті (Сергій Копосов)
  • У Windows спробуйте повторити створення процесу, якщо нам не вдасться зарезервувати діапазон адрес для спільної пам'яті в новому процесі (Tom Lane, Amit Kapila)
  • Очікується, що це дозволить виправити нечасті невдачі на випадок дитячих процесів, які, ймовірно, пов'язані з перешкодами від антивірусних продуктів.
  • Виправте низьку вірогідність корекції загальної хеш-таблиці блокування предикатів у складах Windows (Thomas Munro, Tom Lane)
  • Уникайте реєстрації чистої закриття SSL-з'єднання, як ніби це було скидання з'єднання (Michael Paquier)
  • Заборонити відправляти квитки на квитки SSL для клієнтів (Tom Lane)
  • Цей виправлення запобігає збої з'єднання з використанням SSL-коду на стороні клієнта.
  • Виправте код для встановлення tcp_keepalives_idle на Solaris (Tom Lane)
  • Виправте збирач статистики, щоб відмітити повідомлення про запрошення, випущені після відключення поштового майстра та негайного перезавантаження (Tom Lane)
  • Служби статистики, видані протягом пів секунди від попереднього завершення роботи поштового менеджера, були фактично проігноровані.
  • Переконайтеся, що розмір буфера для збирача статистики збирається щонайменше 100 Кб (Tom Lane)
  • Це знижує ризик втрати статистичних даних на старих платформах, розмір яких за замовчуванням буферу менше.
  • Виправте можливе створення недійсного сегмента WAL, коли в режимі очікування рекламується одразу після обробки запису XLOG_SWITCH WAL (Andres Freund)
  • Виправте walsender для швидкого виходу після завершення запитів клієнта (Tom Lane)
  • Виправлення обробки SIGHUP та SIGUSR1 у процесах, пов'язаних із валендарем (Petr Jelinek, Andres Freund)
  • Запобігання паніці, викликаної walsender, під час контрольних пунктів відключення (Andres Freund, Michael Paquier)
  • Виправте непотрібно повільні перезавантаження процесорів walreceiver з-за стану перегонів у поштовому майстрі (Tom Lane)
  • Виправлення витоку невеликих підрядних операцій, що вилилися на диск під час логічного декодування (Andres Freund)
  • Це призвело до тимчасових файлів, що споживають надмірне місце на диску.
  • Скоротити роботу, необхідну для створення знімків під час створення логічно-декодних слотів (Andres Freund, Petr Jelinek)
  • Попередній алгоритм був незрівнянно дорогим на сервері з великою кількістю відкритих транзакцій.
  • Виправлення стану перегонів, що може нескінченно затримувати створення слотів для логічного декодування (Andres Freund, Petr Jelinek)
  • Зменшити накладні витрати при обробці несправностей сисклами (Tom Lane)
  • Це особливо корисно для логічного декодування, що ініціює часте придушення кеша.
  • Видаліть невірну евристику, яка використовується в деяких випадках, щоб оцінити селективність приєднання на основі наявності обмежень зовнішнього ключа (David Rowley)
  • У деяких випадках, коли існує обмеження кількох стовпчиків зовнішнього ключа, але не точно відповідає структурі приєднання запиту, планувальник використовував оціночну евристику, яка взагалі виявиться поганою. Скасувати такі випадки до того, як вони були оцінені до 9.6.
  • Виправте випадки, коли INSERT або UPDATE призначають більше ніж одному елементу стовпця, який є типовим типом домену (Tom Lane)
  • Дозволити використання віконних функцій у підпозиціях, що входять до аргументів сукупної функції (Tom Lane)
  • Перевірте, щоб пропозиція CHECK OPTIONS перегляду виконувалась належним чином, якщо основна таблиця є таблицею іноземного (Etsuro Fujita)
  • Раніше це оновлення могло б повністю перейти на зовнішній сервер, але, якщо це буде потрібно, потрібно було перевірити умови перегляду.
  • Перемістити автоматично згенеровані типи масиву під час ALTER ... RENAME (Vik Fearing)
  • Раніше ми б перейменовували конфліктуючий тип автоматичного генерації масиву під час створення CREATE; це виправлення розширює цю поведінку для перейменування операцій.
  • Виправте зависання курсору в ALTER TABLE, коли з'являється коментар про обмеження, що належить до таблиці (David Rowley)
  • Повторне додавання коментаря до реконструйованого обмеження може призвести до невдалого повідомлення про помилку або навіть збій.
  • Переконайтеся, що ALTER USER ... SET приймає всі варіанти синтаксису, які ALTER ROLE ... SET робить (Peter Eisentraut)
  • Дозволити обмеження перевірки чужої таблиці спочатку НЕ ВНАСЛУЧАЮ (Amit Langote)
  • CREATE TABLE за замовчуванням скидає НЕ ВКАЗАННІ специфікації для CHECK обмежень, аргументуючи, що таблиця повинна бути порожньою, щоб обмеження можна було негайно перевірити. Але це не так для CREATE FOREIGN TABLE, де немає ніяких підстав вважати, що основна таблиця порожня, і навіть якщо нашим не вирішити, що обмеження можна розглядати як дійсне, що йде вперед. Пропустити цю "оптимізацію" & quot; для іноземних таблиць.
  • Правильно оновлювати інформацію про залежність, коли змінюється аргумент функції типу вводу-виводу типу типу або тип повернення від непрозорого до правильного типу (Heikki Linnakangas)
  • CREATE TYPE оновлення функцій вводу-виводу, оголошених у цьому довгостроковому стилі, але він забув зареєструвати залежність від типу, дозволяючи наступному типу TROPEY залишити відокремлені визначення функцій.
  • Дозволити паралельність в плані запиту, коли COPY копіює з результату запиту (Andres Freund)
  • Знизити використання пам'яті, коли ANALYZE обробляє стовпець tsvector (Heikki Linnakangas)
  • Виправте непотрібну точність втрат і незграбне округлення при множенні чи розподілі грошових значень цілими числами або поплавками (Tom Lane)
  • Посилити перевірку пробілів у функціях, які аналізують ідентифікатори, наприклад regprocedurein () (Tom Lane)
  • Залежно від переважної локалі ці функції можуть неправильно тлумачити фрагменти багатобайтових символів як прогалини.
  • Використовуйте відповідні символи #define від Perl при складанні PL / Perl (Ашутош Шарма, Том Лейн)
  • Це дозволяє уникнути проблем із портативністю, які зазвичай виявляються як "рукостискання" & quot; невідповідність під час завантаження бібліотеки при роботі з останніми версіями Perl.
  • У libpq правильно скинути стан автентифікації GSS / SASL та SSPI після невдалої спроби з'єднання (Michael Paquier)
  • Неможливість зробити це означає, що при відмові від SSL до не-SSL-з'єднань, збій GSS / SASL в спробі SSL завжди призведе до невдалої спроби не SSL. SSPI не вийшов з ладу, але він просочив пам'ять.
  • У psql виправте помилку, коли COPY FROM STDIN закінчується сигналом клавіатури EOF, а потім намагається інший COPY FROM STDIN (Thomas Munro)
  • Ця помилка поведінки спостерігалася на платформах BSD (включаючи macOS), але не на більшість інших.
  • Виправте pg_dump та pg_restore для випуску останніх команд "REFRESH MATERIALIZED VIEW" (Тома Лейн)
  • Це запобігає помилкам при дампуванні / відновленні, коли матеріалізований перегляд відноситься до таблиць, що належать іншому користувачеві.
  • Покращення звітування про помилки pg_dump / pg_restore, що походять із zlib (Володимир Кунщиков, Альваро Еррера)
  • Виправте pg_dump за допомогою параметра --clean, щоб знищити тригери події, як очікувалося (Tom Lane)
  • Тепер він також правильно призначає право власності на тригери подій; раніше вони були відновлені як такі, що належать суперкористувачеві, який виконує сценарій відновлення.
  • Виправте pg_dump за допомогою параметра --clean, щоб не вийти з ладу, коли загальна схема не існує (Stephen Frost)
  • Виправте pg_dump, щоб не випустити недійсний SQL для порожнього класу оператора (Daniel Gustafsson)
  • Виправте вивід pg_dump для stdout у Windows (Kuntal Ghosh)
  • Стиснутий текстовий дамп, написаний на stdout, міститиме пошкоджені дані через неможливість встановити дескриптор файлу в двійковий режим.
  • Виправте pg_get_ruledef () для друку правильного виводу для правила ON SELECT перегляду, стовпці якого були перейменовані (Tom Lane)
  • У деяких кутових випадках pg_dump спирається на pg_get_ruledef (), щоб виділити перегляди, тому ця помилка може призвести до збоїв / перезавантаження.
  • Виправте скидання зовнішніх з'єднань з порожніми обмеженнями, наприклад, результат NATURAL LEFT JOIN без спільних стовпців (Tom Lane)
  • Виправте скидання виразів функцій у позиції FROM у випадках, коли вираз не відхиляється від того, що виглядає як виклик функції (Tom Lane)
  • Виправте вивід pg_basebackup для stdout у Windows (Haribabu Kommi)
  • Резервна копія, написана на stdout, міститиме пошкоджені дані через неможливість встановити дескриптор файлу в двійковий режим.
  • Виправте pg_rewind, щоб правильно обробляти файли, що перевищують 2 Гб (Kuntal Ghosh, Michael Paquier)
  • Зазвичай ці файли не відображатимуться в каталогах даних PostgreSQL, але вони можуть бути присутніми в деяких випадках.
  • Виправте pg_upgrade, щоб переконатися, що кінцевий запис WAL не має wal_level = мінімум (Bruce Momjian)
  • Це умова може перешкоджати повторному підключенням оновлених резервних серверів.
  • Виправте розрахунок pg_xlogdump довжини запису WAL (Andres Freund)
  • У postgres_fdw відновіть з'єднання з віддаленими серверами після команди ALTER SERVER або ALTER USER MAPPING (Kyotaro Horiguchi)
  • Це гарантує, що зміни параметрів, що впливають на параметри підключення, будуть негайно застосовані.
  • У postgres_fdw дозвольте скасувати команди віддаленого керування транзакціями (Роберт Хаас, Рафія Сабіх)
  • Ця зміна дозволяє нам швидко уникнути очікування відмовливого віддаленого сервера у багатьох інших випадках, ніж раніше.
  • Збільшити MAX_SYSCACHE_CALLBACKS, щоб забезпечити більше місця для розширень (Tom Lane)
  • Завжди використовуйте -fPIC, а не -fpic, коли створюєте спільні бібліотеки за допомогою gcc (Tom Lane)
  • Це підтримує більші бібліотеки розширень на платформах, де вони змінюються.
  • У складі MSVC керуйте тим випадком, коли бібліотека openssl не знаходиться в підкаталогі VC (Andrew Dunstan)
  • У складі MSVC додайте правильний шлях до файлу заголовків libxml2 (Andrew Dunstan)
  • Це виправляє колишню потребу перемістити речі у стандартних установках Windows libxml2.
  • У складі MSVC розпізнайте бібліотеку Tcl, яка називається tcl86.lib (Noah Misch)
  • У складі MSVC заслуговує належність параметрам PROVE_FLAGS у командному рядку vcregress.pl (Ендрю Данстан)

Що нового у версії 9.6.4:

  • Подальше обмеження видимості pg_user_mappings.umoptions для захисту паролів, збережених у параметрах відображення користувачів (Noah Misch)
  • Виправлення для CVE-2017-7486 було неправильним: це дозволило користувачеві побачити параметри у власному картографічному користуванні, навіть якщо у неї не було дозволу USAGE на пов'язаному іноземному сервері. Такі опції можуть містити пароль, який був наданий власником сервера, а не самим користувачем. Оскільки information_schema.user_mapping_options не показує параметри у таких випадках, також не слід використовувати pg_user_mappings. (CVE-2017-7547)
  • Сам по собі цей патч буде виправляти тільки поведінку в недавно initdb'd базах даних. Якщо ви хочете застосувати цю зміну в існуючій базі даних, вам потрібно виконати наступне:
  • Перезапустіть поштовий майстер після додавання allow_system_table_mods = true до postgresql.conf. (У версіях, що підтримують ALTER SYSTEM, ви можете використовувати його для зміни конфігурації, але вам все одно доведеться перезапустити.)
  • У кожній базі даних кластера виконайте такі команди як суперкористувач:
  • SET search_path = pg_catalog;
  • ЗРОБИТИ ТА ЗМІНУТИ ПАМ'ЯТІ pg_user_mappings AS
  • SELECT
  • U.oid AS umid,
  • S.oid AS srvid,
  • S.srvname AS srvname,
  • U.umuser AS umaser,
  • ПРИЧИНА, коли U.umuser = 0 THEN
  • "загальнодоступна"
  • ELSE
  • A.rolname
  • END, як usename,
  • ПРИКЛАД КІЛЬКИ (U.umuser 0 AND A.rolname = current_user
  • І І (pg_has_role (S.svvowner, 'USAGE')
  • АБО has_server_privilege (S.oid, 'USAGE')))
  • АБО (U.umuser = 0 І pg_has_role (S.svvowner, 'USAGE'))
  • АБО (SELECT rolsuper ВІД pg_authid WHERE rolname = current_user)
  • THEN U.umoptions
  • НАСТУПНИЙ НЕЗАЛЕЖНИЙ КІЛЬКІСТЬ УВАГИ
  • FROM pg_user_mapping U
  • ВІДКРИТИЙ ПУСК pg_authid A ON (A.oid = U.umuser) ПРИЄДНАННЯ
  • pg_foreign_server S ON (U.mserver = S.oid);
  • Не забудьте включити бази даних template0 та template1, або вразливість все ще існує в базах даних, які ви створюєте пізніше. Щоб виправити шаблон0, вам доведеться тимчасово прийняти його для з'єднання. У PostgreSQL 9.5 та пізнішої версії ви можете використовувати
  • ALTER DATABASE template0 з ALLOW_CONNECTIONS true;
  • , а потім, після виправлення шаблону0, скасуйте це за допомогою
  • ALTER DATABASE template0 з ALLOW_CONNECTIONS false;
  • Замість попередніх версій використовуйте
  • UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
  • UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
  • Нарешті, видаліть налаштування конфігурації allow_system_table_mods і знову перезапустіть поштового майстра.
  • Заборонити видаляти порожні паролі у всіх методах аутентифікації на основі паролів (Heikki Linnakangas)
  • libpq ігнорує порожні специфікації пароля та не передає їх на сервер. Отже, якщо пароль користувача встановлений на порожній рядок, неможливо ввійти з цим паролем через psql або інші клієнти на основі libpq. Таким чином, адміністратор може вважати, що встановлення пароля для порожнього буде рівносильне відключенню входу пароля. Однак з модифікованим клієнтом на основі libpq неможливо увійти в систему, залежно від того, який метод автентифікації налаштовується. Зокрема, найбільш поширеним методом, md5, прийняті порожні паролі. Змініть сервер, щоб відхиляти порожні паролі у всіх випадках. (CVE-2017-7546)
  • Зробіть lo_put () перевірте привілей UPDATE на цільовому великому об'єкті (Tom Lane, Michael Paquier)
  • lo_put (), безумовно, вимагає таких самих дозволів, як lowrite (), але перевірка була відсутня, дозволяючи будь-якому користувачеві змінювати дані у великому об'єкті. (CVE-2017-7548)
  • Виправте документацію про процес оновлення резервних серверів за допомогою pg_upgrade (Bruce Momjian)
  • Попередня документація доручила користувачам запускати / зупиняти основний сервер після запуску pg_upgrade, але перед синхронізацією резервних серверів. Ця послідовність небезпечна.
  • Виправлення одночасного блокування ланцюгів оновлення кортежу (Alvaro Herrera)
  • Якщо декілька сеансів одночасно блокують ланцюжок оновлення кортежу за допомогою незбагненних режимів блокування, використовуючи старий знімок, і всі вони досягають успіху, деякі з них, однак, могли вийти з ладу (і зробити висновок, що немає живого варіанта версії) через гонку умова Це мали такі наслідки, як перевірки чужорідних ключових слів, які не бачили кортежу, який точно існує, але одночасно оновлюється.
  • Виправте потенційну помилку при замороженні кортежу, XMAX мультиекстрактний з рівним ще одним цікавим учасником (Теодор Сигаєв)
  • Уникайте переповнення цілого числа та збій при сортуванні більше одного мільярда порцій в пам'яті (Сергій Копосов)
  • У Windows спробуйте повторити створення процесу, якщо нам не вдасться зарезервувати діапазон адрес для спільної пам'яті в новому процесі (Tom Lane, Amit Kapila)
  • Очікується, що це дозволить виправити нечасті невдачі на випадок дитячих процесів, які, ймовірно, пов'язані з перешкодами від антивірусних продуктів.
  • Виправте низьку вірогідність корекції загальної хеш-таблиці блокування предикатів у складах Windows (Thomas Munro, Tom Lane)
  • Уникайте реєстрації чистої закриття SSL-з'єднання, як ніби це було скидання з'єднання (Michael Paquier)
  • Заборонити відправляти квитки на квитки SSL для клієнтів (Tom Lane)
  • Цей виправлення запобігає збої з'єднання з використанням SSL-коду на стороні клієнта.
  • Виправте код для встановлення tcp_keepalives_idle на Solaris (Tom Lane)
  • Виправте збирач статистики, щоб відмітити повідомлення про запрошення, випущені після відключення поштового майстра та негайного перезавантаження (Tom Lane)
  • Служби статистики, видані протягом пів секунди від попереднього завершення роботи поштового менеджера, були фактично проігноровані.
  • Переконайтеся, що розмір буфера для збирача статистики збирається щонайменше 100 Кб (Tom Lane)
  • Це знижує ризик втрати статистичних даних на старих платформах, розмір яких за замовчуванням буферу менше.
  • Виправте можливе створення недійсного сегмента WAL, коли в режимі очікування рекламується одразу після обробки запису XLOG_SWITCH WAL (Andres Freund)
  • Виправте walsender для швидкого виходу після завершення запитів клієнта (Tom Lane)
  • Виправлення обробки SIGHUP та SIGUSR1 у процесах, пов'язаних із валендарем (Petr Jelinek, Andres Freund)
  • Запобігання паніці, викликаної walsender, під час контрольних пунктів відключення (Andres Freund, Michael Paquier)
  • Виправте непотрібно повільні перезавантаження процесорів walreceiver з-за стану перегонів у поштовому майстрі (Tom Lane)
  • Виправлення витоку невеликих підрядних операцій, що вилилися на диск під час логічного декодування (Andres Freund)
  • Це призвело до тимчасових файлів, що споживають надмірне місце на диску.
  • Скоротити роботу, необхідну для створення знімків під час створення логічно-декодних слотів (Andres Freund, Petr Jelinek)
  • Попередній алгоритм був незрівнянно дорогим на сервері з великою кількістю відкритих транзакцій.
  • Виправлення стану перегонів, що може нескінченно затримувати створення слотів для логічного декодування (Andres Freund, Petr Jelinek)
  • Зменшити накладні витрати при обробці несправностей сисклами (Tom Lane)
  • Це особливо корисно для логічного декодування, що ініціює часте придушення кеша.
  • Видаліть невірну евристику, яка використовується в деяких випадках, щоб оцінити селективність приєднання на основі наявності обмежень зовнішнього ключа (David Rowley)
  • У деяких випадках, коли існує обмеження кількох стовпчиків зовнішнього ключа, але не точно відповідає структурі приєднання запиту, планувальник використовував оціночну евристику, яка взагалі виявиться поганою. Скасувати такі випадки до того, як вони були оцінені до 9.6.
  • Виправте випадки, коли INSERT або UPDATE призначають більше ніж одному елементу стовпця, який є типовим типом домену (Tom Lane)
  • Дозволити використання віконних функцій у підпозиціях, що входять до аргументів сукупної функції (Tom Lane)
  • Перевірте, щоб пропозиція CHECK OPTIONS перегляду виконувалась належним чином, якщо основна таблиця є таблицею іноземного (Etsuro Fujita)
  • Раніше це оновлення могло б повністю перейти на зовнішній сервер, але, якщо це буде потрібно, потрібно було перевірити умови перегляду.
  • Перемістити автоматично згенеровані типи масиву під час ALTER ... RENAME (Vik Fearing)
  • Раніше ми б перейменовували конфліктуючий тип автоматичного генерації масиву під час створення CREATE; це виправлення розширює цю поведінку для перейменування операцій.
  • Виправте зависання курсору в ALTER TABLE, коли з'являється коментар про обмеження, що належить до таблиці (David Rowley)
  • Повторне додавання коментаря до реконструйованого обмеження може призвести до невдалого повідомлення про помилку або навіть збій.
  • Переконайтеся, що ALTER USER ... SET приймає всі варіанти синтаксису, які ALTER ROLE ... SET робить (Peter Eisentraut)
  • Дозволити обмеження перевірки чужої таблиці спочатку НЕ ВНАСЛУЧАЮ (Amit Langote)
  • CREATE TABLE за замовчуванням скидає НЕ ВКАЗАННІ специфікації для CHECK обмежень, аргументуючи, що таблиця повинна бути порожньою, щоб обмеження можна було негайно перевірити. Але це не так для CREATE FOREIGN TABLE, де немає ніяких підстав вважати, що основна таблиця порожня, і навіть якщо нашим не вирішити, що обмеження можна розглядати як дійсне, що йде вперед. Пропустити цю "оптимізацію" для іноземних таблиць.
  • Правильно оновлювати інформацію про залежність, коли змінюється аргумент функції типу вводу-виводу типу типу або тип повернення від непрозорого до правильного типу (Heikki Linnakangas)
  • CREATE TYPE оновлення функцій вводу-виводу, оголошених у цьому довгостроковому стилі, але він забув зареєструвати залежність від типу, дозволяючи наступному типу TROPEY залишити відокремлені визначення функцій.
  • Дозволити паралельність в плані запиту, коли COPY копіює з результату запиту (Andres Freund)
  • Знизити використання пам'яті, коли ANALYZE обробляє стовпець tsvector (Heikki Linnakangas)
  • Виправте непотрібну точність втрат і незграбне округлення при множенні чи розподілі грошових значень цілими числами або поплавками (Tom Lane)
  • Посилити перевірку пробілів у функціях, які аналізують ідентифікатори, наприклад regprocedurein () (Tom Lane)
  • Залежно від переважної локалі ці функції можуть неправильно тлумачити фрагменти багатобайтових символів як прогалини.
  • Використовуйте відповідні символи #define від Perl при складанні PL / Perl (Ашутош Шарма, Том Лейн)
  • Це дозволяє уникнути проблем із портативністю, як правило, виявляється невідповідністю "рукостискання" під час завантаження бібліотеки під час роботи з останніми версіями Perl.
  • У libpq правильно скинути стан автентифікації GSS / SASL та SSPI після невдалої спроби з'єднання (Michael Paquier)
  • Неможливість зробити це означає, що при відмові від SSL до не-SSL-з'єднань, збій GSS / SASL в спробі SSL завжди призведе до невдалої спроби не SSL. SSPI не вийшов з ладу, але він просочив пам'ять.
  • У psql виправте помилку, коли COPY FROM STDIN закінчується сигналом клавіатури EOF, а потім намагається інший COPY FROM STDIN (Thomas Munro)
  • Ця помилка поведінки спостерігалася на платформах BSD (включаючи macOS), але не на більшість інших.
  • Виправте pg_dump та pg_restore для випуску останніх команд "REFRESH MATERIALIZED VIEW" (Тома Лейн)
  • Це запобігає помилкам при дампуванні / відновленні, коли матеріалізований перегляд відноситься до таблиць, що належать іншому користувачеві.
  • Покращення звітування про помилки pg_dump / pg_restore, що походять із zlib (Володимир Кунщиков, Альваро Еррера)
  • Виправте pg_dump за допомогою параметра --clean, щоб знищити тригери події, як очікувалося (Tom Lane)
  • Тепер він також правильно призначає право власності на тригери подій; раніше вони були відновлені як такі, що належать суперкористувачеві, який виконує сценарій відновлення.
  • Виправте pg_dump за допомогою параметра --clean, щоб не вийти з ладу, коли загальна схема не існує (Stephen Frost)
  • Виправте pg_dump, щоб не випустити недійсний SQL для порожнього класу оператора (Daniel Gustafsson)
  • Виправте вивід pg_dump для stdout у Windows (Kuntal Ghosh)
  • Стиснутий текстовий дамп, написаний на stdout, міститиме пошкоджені дані через неможливість встановити дескриптор файлу в двійковий режим.
  • Виправте pg_get_ruledef () для друку правильного виводу для правила ON SELECT перегляду, стовпці якого були перейменовані (Tom Lane)
  • У деяких кутових випадках pg_dump спирається на pg_get_ruledef (), щоб виділити перегляди, тому ця помилка може призвести до збоїв / перезавантаження.
  • Виправте скидання зовнішніх з'єднань з порожніми обмеженнями, наприклад, результат NATURAL LEFT JOIN без спільних стовпців (Tom Lane)
  • Виправте скидання виразів функцій у позиції FROM у випадках, коли вираз не відхиляється від того, що виглядає як виклик функції (Tom Lane)
  • Виправте вивід pg_basebackup для stdout у Windows (Haribabu Kommi)
  • Резервна копія, написана на stdout, міститиме пошкоджені дані через неможливість встановити дескриптор файлу в двійковий режим.
  • Виправте pg_rewind, щоб правильно обробляти файли, що перевищують 2 Гб (Kuntal Ghosh, Michael Paquier)
  • Зазвичай ці файли не відображатимуться в каталогах даних PostgreSQL, але вони можуть бути присутніми в деяких випадках.
  • Виправте pg_upgrade, щоб переконатися, що кінцевий запис WAL не має wal_level = мінімум (Bruce Momjian)
  • Це умова може перешкоджати повторному підключенням оновлених резервних серверів.
  • Виправте розрахунок pg_xlogdump довжини запису WAL (Andres Freund)
  • У postgres_fdw відновіть з'єднання з віддаленими серверами після команди ALTER SERVER або ALTER USER MAPPING (Kyotaro Horiguchi)
  • Це гарантує, що зміни параметрів, що впливають на параметри підключення, будуть негайно застосовані.
  • У postgres_fdw дозвольте скасувати команди віддаленого керування транзакціями (Роберт Хаас, Рафія Сабіх)
  • Ця зміна дозволяє нам швидко уникнути очікування відмовливого віддаленого сервера у багатьох інших випадках, ніж раніше.
  • Збільшити MAX_SYSCACHE_CALLBACKS, щоб забезпечити більше місця для розширень (Tom Lane)
  • Завжди використовуйте -fPIC, а не -fpic, коли створюєте спільні бібліотеки за допомогою gcc (Tom Lane)
  • Це підтримує більші бібліотеки розширень на платформах, де вони змінюються.
  • У складі MSVC керуйте тим випадком, коли бібліотека openssl не знаходиться в підкаталогі VC (Andrew Dunstan)
  • У складі MSVC додайте правильний шлях до файлу заголовків libxml2 (Andrew Dunstan)
  • Це виправляє колишню потребу перемістити речі у стандартних установках Windows libxml2.
  • У складі MSVC розпізнайте бібліотеку Tcl, яка називається tcl86.lib (Noah Misch)
  • У складі MSVC заслуговує належність параметрам PROVE_FLAGS у командному рядку vcregress.pl (Ендрю Данстан)

Схожі програми

Drizzle
Drizzle

20 Feb 15

PostGIS
PostGIS

19 Feb 15

SQLite
SQLite

22 Jun 18

ArangoDB
ArangoDB

17 Feb 15

PostgreSQL

Коментар не знайдено
додати коментар
Включіть картинки!
Пошук за категоріями