Все заметные изменения в этом проекте будут задокументированы в этом файле.
Формат основан на Keep a Changelog и этот проект придерживается cемантического версионирования.
- Добавлена поддержка объектов USER, ROLE в ClickHouse.
- Исправлено пропущенное квотирование в имене POLICY в ClickHouse.
9.6.0 - 2024-05-14
- Добавлена поддержка объекта POLICY в ClickHouse.
- Удалено лишнее условие в запросах на чтении объектов.
- Исправлена ошибка пересоздания зависимостей при изменении пользовательского типа данных в MS SQL.
- Исправлена логика чтения схем при использовании файла
.pgcodekeeperignoreschema
.
9.5.1 - 2024-04-24
- Исправлено поведение поля домен в настройках БД.
- Исправлена ошибка при чтении базы данных ClickHouse.
9.5.0 - 2024-04-09
- Добавлена поддержка работы с ClickHouse в тестовом режиме.
9.4.3 - 2024-03-18
- Исправлена ошибка при одновременной загрузке библиотек.
- Исправлена ошибка при попытке открытия мастера создания новых объектов.
9.4.2 - 2024-03-13
- Исправлена генерация кода партицонных таблиц с методом доступа в GreenPlum 7.
- Исправлена ошибка при одновременной загрузке библиотек.
9.4.1 - 2024-03-11
- Исправлена ошибка при чтении таблиц в GreenPlum 7.
9.4.0 - 2024-03-05
- Добавлена настройка для оборачивания создания IDENTITY и CONSTRAINT в DO блок с секцией EXCEPTION (
Window -> Preferences -> pgCodeKeeper -> Обновление БД -> Печатать создание CONSTRAINT и IDENTITY в DO блоке
, CLI-опция-do (--generate-exist-do-block)
).
- Отдельный мастер создания проекта для MS SQL заменен на выбор типа БД.
- Улучшен текст ошибки при парсинге выражений.
- Исправлена ошибка при парсинге некоторых спецсимволов в MS SQL.
- Исправлена ошибка при парсинге конструкции
$n%TYPE
в PostgreSQL.
9.3.0 - 2024-02-06
- Добавлен поиск зависимостей при использовании ::regoper и ::regoperator.
- Исправлена генерация кода для объектов VIEW с опцией SCHEMABINDING в MS SQL.
9.2.0 - 2024-01-23
- Обновлен год лицензии.
- Исправлена ошибка дублирования объекта в скрипте миграции.
- Исправлена генерация кода при изменении порядка столбцов в объектах INDEX и CONSTRAINT.
- Исправлено пропущенное квотирование в FOREIGN KEY.
- Удалена генерация комментариев для объекта DATABASE.
9.1.0 - 2024-01-10
- Добавлена настройка для переноса комментариев в конец скрипта миграции (
Window -> Preferences -> pgCodeKeeper -> Обновление БД -> Печатать комментарии в конце скрипта
, CLI-опция--comments-to-end
).
- Исправлены ошибки парсера для MS SQL.
- Исправлена ошибка при открытии файлов вне pgCodeKeeper проекта в редакторе SQL.
- Исправлена ошибка с определением зависимости в теле функции в PG.
- Добавлены пропущенные ссылки на объекты COLLATION в PostgreSQL.
- Исправлены ошибки с зависимостями столбцов в MS SQL.
9.0.0 - 2023-12-13
- Добавлено имя базы данных в консоли при накате.
- Параметр
--ms-sql
заменен на параметр--db-type
с указанием типа БД. На текущий момент поддерживается 2 значения: PG (значение по-умолчанию) и MS. Параметр--ms-sql
помечен как устаревший и будет удален в будущих версиях. Все флаги с выбором MS SQL базы заменены на комбобокс с выбором типа БД. - Изменен механизм работы с объектами CONSTRAINT и INDEX: объекты теперь хранятся не в виде строки, а в виде отдельных полей, что позволяет избежать лишних различий в ключевых словах и пробелах. Для сохранения совместимости использован старый шаблон для генерации кода.
- Обновлены все библиотечные зависимости ядра программы. Для использования Windows аутентификации требуется обновить DDL.
- Улучшены правила парсера для MS SQL.
- Исправлена ошибка в работе мастера сравнений.
- Исправлена ошибка в CLI версии при использовании относительного пути.
- Исправлена ошибка с добавлением шаблона.
8.9.0 - 2023-11-07
- Улучшены правила парсера.
8.8.0 - 2023-09-27
- Добавлена поддержка PostgreSQL 16.
- Улучшены правила парсера для MS SQL.
- Исправлена ошибка при чтении локали для объектов COLLATION.
- Исправлена ошибка в генерации скрипта миграций для COLLATION.
8.7.0 - 2023-09-12
- Добавлена поддержка синтаксиса GOTO в MS SQL.
- Улучшены правила парсера для MS SQL.
8.6.0 - 2023-08-29
- Улучшены правила парсера.
- В мастер создания новых объектов добавлены SEQUENCE и AGGREGATE.
- Исправлена ошибка парсинга CLUSTER ON для таблиц и материализованных представлений.
8.5.0 - 2023-08-15
- Изменено логирование core модуля на использование slf4j.
- Отключена самостоятельная сборка pgCodeKeeper для macOS.
- Отсортирован список типов в фильтре объектов.
- Перемещены сгенерированные классы.
- Улучшены правила парсера для MS SQL.
- Исправлена ошибка с чтением USER MAPPING из библиотек.
- Исправлена ошибка с поиском зависимостей.
8.4.0 - 2023-08-01
- Добавлена поддержка объекта EVENT TRIGGER.
- Добавлена опция для отображения кода всех дочерних объектов при сравнении.
- Исправлена генерация кода с опцией
Печатать DROP перед CREATE конструкцией
при пересоздании объекта.
8.3.0 - 2023-07-19
- Добавлены настройки для типов подключения.
- Оптимизированы запросы на получение объектов из БД.
- Исправлен анализ выражений и поиск зависимостей для колонок.
- Исправлено кеширование меню базы данных.
8.2.0 - 2023-07-04
- Добавлен алфавитный порядок дочерних объектов одного типа в файле при сохранении в проект.
- Удалены лишние команды при генерации скрипта миграций для функций.
- Исправлена версия Eclipse, используемая в сборках pgCodeKeeper, для сохранения совместимости с JAVA 11.
- Исправлена генерация кода при изменений свойств TABLE SUBPARTITION TEMPLATE в Greenplum.
8.1.0 - 2023-06-13
- Оптимизирована работа с пользовательскими типами.
- Исправлена ошибка при чтении библиотеки-проекта при использовании относительного пути.
- Исправлены ложные различия в квотировании тела функции.
- Исправлены конфликты всплывающих подсказок для имени объекта.
8.0.0 - 2023-05-30
- Добавлена поддержка работы с Greenplum в тестовом режиме.
- Добавлено диалоговое окно для редактирования свойств библиотеки.
- Добавлена поддержка относительного пути для библиотеки.
- Добавлено необязательное поле "Имя" в свойствах библиотеки для настройки отображаемого имени в списке.
- Добавлен переход на страницу настроек библиотек из диалогового окна с ошибкой при переопределении объектов.
- Улучшен механизм сравнения RETURNS TABLE у функций.
- Исправлена ошибка из-за которой outline не обновлялся при переходе между результатами поиска.
7.6.0 - 2023-05-16
- Удалена модальность диалогового окна мастера сравнения.
- Исправлена ошибка из-за которой директория COLLATION игнорировалась.
- Исправлена ошибка генерации скрипта миграции при изменении порядка колонок в композитном типе.
7.5.0 - 2023-04-11
- Добавлена возможность обновления версии плагина в самостоятельных сборках pgCodeKeeper.
- Добавленна поддержка парсером опций REBUILD для таблиц в MS SQL.
- Добавлены тесты для загрузчика библиотек.
- Исправлена ошибка в механизме "нормализации" проекта с библиотеками и переопределениями.
- Исправлена ошибка в генерации скрипта миграции при переливке данных с удалением identity колонки таблицы.
- Исправлена ошибка в сборщике MS SQL при сохранении файлов.
- Исправлен NPE в агрегатных функциях PostgreSQL.
- Исправлен NPE при чтении USER MAPPING с пользователем PUBLIC.
- Исправлено пропущенное квотирование в столбцах композитных типов.
7.4.0 - 2023-03-28
- Добавлена подпись jar-файлов сертификатом.
- Добавлена поддержка версий PostgreSQL 9.4 - 9.6.
- Добавлена поддержка опций MASKED, ROWGUIDCOL, PERSISTED, SPARSE, NOT FOR REPLICATION для столбцов таблиц в MS SQL.
- Добавлен всплывающая подсказка для имени базы данных в редакторе проекта.
- Добавлена поддержка синтаксиса MATCH в MS SQL.
- Актуализирована лицензия.
- Исправлена проблема с генерацией кода при удалении партиционного индекса вместе с таблицей.
- Исправлена ошибка при чтении дефолтного значения VARIADIC параметра функции.
- Исправлена ошибка при переименовании объектов с длинными именами при миграции данных.
7.3.0 - 2023-03-14
- Добавлена поддержка опций для объекта User в MS SQL: DEFAULT_LANGUAGE, ALLOW_ENCRYPTED_VALUE_MODIFICATIONS.
- Добавлена поддержка опции STATISTICS_INCREMENTAL для объекта Index в MS SQL.
- Исправлены ошибки в тестах при запуске на машинах с RU локалью.
- Исправлены проблемы с генерацией кода при изменениях OWNED BY свойства последовательностей.
- Исправлена уязвимость при чтении XML файлов.
7.2.0 - 2023-02-21
- Обновлен механизм отправки анонимных данных с Google Universe до Google Analytics 4.
- Исправлена ошибка при выводе сообщения об ошибке в запросе.
- Исправлена ошибка с генерацией кода миграции данных для секционированных таблиц.
- Исправлена ошибка при пересоздании sequence при переливке данных с таблицы.
7.1.0 - 2023-02-07
- Начиная с этой версии, pgCodeKeeper требует Eclipse 2021-03 (4.19) или выше.
- Добавлены CHANGELOG файлы.
- Добавлена возможность добавления комментария к объекту через контекстное меню редактора SQL.
- Улучшена сборка за счет замены вложенных jar-файлов на maven зависимости.
- В CLI версии изменен параметр
--graph-name
: добавлена поддержка регулярных выражений.
- Исправлена ошибка при изменении типа колонки в FOREIGN TABLE.
- Исправлены ошибки при анализе выражений.
- Исправлена проверка версии
pg_dbo_timestamp
. - Исправлена ошибка при переопределении привилегий.
- Добавлены пропущенные ссылки на объекты в MS SQL.
- Добавлены пропущенные ключевые слова из PostgreSQL 15.
- Удалена настройка ограничения количества строк, получаемых при выполнении SELECT.
7.0.1 - 2022-11-14
- Исправлена ошибка в запросе для SEQUENCE.
7.0.0 - 2022-11-14
- Добавлена поддержка PostgreSQL 15.
- Добавлен переключатель для отображения колонок в графе зависимостей.
- Добавлен поиск по квалифицированному имени объекта.
- Повышена минимальная версии JAVA до 11.
- Изменен механизм чтения ресурсов.
- Отключена переливка данных для сторонних таблиц.
- Исправлена установка на Eclipse 2022-09.
- Исправлена ошибка в запросе MS SQL таблиц.
- Добавлены пропущенные ссылки на объекты в MS SQL.
- Прекращена поддержка версий PostgreSQL ниже 10.
- Удалена форма для отправки обратной связи через Eclipse.
6.6.0 - 2022-09-27
- Добавлена поддержка объектов COLLATION.
- Добавлена возможность генерировать создание CONSTRAINT-ов с использованием NOT VALID/VALIDATE в скриптах миграции (CLI-опция
--generate-constraint-not-valid
). - Добавлена возможность изменять параметр trustServerCertificate для MS SQL подключений.
- Добавлена CLI-опция
--update-project
для обновления проекта в режиме--parse
. - Добавлена CLI-опция
--clear-lib-cache
для очистки кэша библиотек.
- Добавлена возможность наката выделенных объектов в редакторе проекта.
- Доработан механизм быстрого исправления имени файла для FUNCTION, USER MAPPING, CAST.
- Добавлено отображение текущей группы в меню выбора базы данных.
- Отключены повторные запуски парсера по нажатию пкм в редакторе SQL.
6.5.3 - 2022-08-05
- Добавлена рекурсивная обработка вложенных директорий с PRE/POST скриптами..
- Установлена минимальная ширина для меню выбора БД на панели инструментов Eclipse.
- Исправлена ошибка при отсутствии PRE/POST файлов и директорий в UI.
- Исправлен запрос расположения файла при первом сохранении глобальных PRE/POST скриптов.
6.5.2 - 2022-08-03
- Добавлены PRE/POST скрипты для миграций. В проекте возможно создать директории PRE и POST, содержимое которых будет добавлено в начало и конец основного скрипта миграции. Также доступны PRE/POST скрипты в глобальных настройках и в опциях CLI.
- Добавлена поддержка поиска зависимостей при анализе выражений для вызовов функций с передачей параметров по имени.
- Добавлена поддержка опций DISABLE для триггеров.
- Добавлена поддержка парсинга зарезервированных слов в квалифицированных именах объектов.
- Улучшено отображение меню выбора БД на панели инструментов Eclipse.
6.5.1 - 2022-07-11
- Исправлена ошибка при чтении USER MAPPING с выключенными привилегиями объектов.
- Исправлено отображение меню выбора БД в редакторе SQL.
6.5.0 - 2022-07-11
- Добавлена возможность группировки подключений к БД по пользовательским группам. Группы отображаются в виде подменю для удобства выбора подключения к БД.
- Добавлена возможность импорта/экспорта списка подключений к БД.
- Добавлена возможность генерировать DROP/CREATE команды с опциями IF (NOT) EXISTS, а так же удалять некоторые объекты непосредственно перед их созданием (CLI опции
--generate-exist
и--drop-before-create
). - Добавлена поддержка объектов USER MAPPING.
- Исправлена отсутствующая зависимость композитных типов.
- Исправлена последовательность создания объектов: INDEX генерируется до CONSTRAINT.
- Исправлен анализ выражений и поиск зависимостей в командах SELECT ... LATERAL.
6.4.3 - 2022-04-21
- Изменение значения SEQUENCE START теперь генерирует команду ALTER ... START вместо RESTART.
- Исправлен порядок команд в скрипте миграции при удалении колонки и ее CONSTRAINT. Исправлены ошибки при чтении объектов CONSTRAINT.
- Режим создания скрипта только с выбранными объектами (CLI
--selected-only
) более не скрывает командыrefreshsqlmodule
MS SQL и не переносит их в конец скрипта.
6.4.2 - 2022-04-11
- Обновлены все библиотечные зависимости ядра программы. Новый драйвер mssql-jdbc (10.2) работает с шифрованием по-умолчанию. Для сохранения старого поведения, подключения к MS SQL выполняются с параметром
trustServerCertificate=true
. Для включения проверки сертификата сервера укажитеtrustServerCertificate=false
в свойствах или в строке подключения.
- Исправлена ошибка генерации кода пересоздания функции в виде процедуры и наоборот.
- Исправлена ошибка при открытии временного редактора SQL на Windows.
6.4.1 - 2022-03-28
- Исправлена ошибка парсинга foreign options и других параметров объектов.
6.4.0 - 2022-03-25
- Добавлена возможность рекурсивной загрузки библиотек pgCodeKeeper, на которые ссылаются другие библиотеки, подключенные к проекту. Библиотека с зависимостями должна быть в формате проекта (или архива проекта) и содержать файл .dependencies с зависимостями этой библиотеки. Эта возможность выключена по-умолчанию, поэтому поведение существующих проектов не изменится. Включить новый механизм можно в настройках проекта. В общем случае, для загрузки зависимостей библиотеки, контейнер этой библиотеки должен иметь включенную настройку loadNested в файле .dependencies. Например, в цепочке зависимостей project → lib1 → lib2 → lib3 для загрузки lib2 настройка должна быть включена в project, а для загрузки lib3 настройка должна быть включена в project и в lib1.
- Добавлено отображение библиотек и их содержимого в Project Explorer.
- Добавлена возможность отключения хранения паролей в безопасном хранилище Eclipse при его нестабильной работе. В этом случае пароли БД будут храниться открытым текстом в рабочем пространстве Eclipse (workspace). Также, возможно использовать пароли из файла .pgpass.
- Добавлена настройка ограничения количества строк, получаемых при выполнении SELECT.
- Улучшено форматирование SQL кода, исправлены ошибки.
- Добавлена генерация пересоздания для неперемещаемых (relocatable) расширений.
- Исправлена ошибка потери переноса строки в начале некоторых выражений.
6.3.3 - 2022-01-13
- Исправлена потеря данных при изменении атрибутов типа колонки при миграции данных.
6.3.2 - 2021-12-10
- Исправлена установка на Eclipse 2021-12.
6.3.1 - 2021-11-18
- Исправлено чтение стандартных тел функций по JDBC.
6.3.0 - 2021-11-17
- Добавлена поддержка PostgreSQL 14:
- поддержка парсинга новых синтаксисов SQL и PL/pgSQL
- поддержка стандартного написания тел функций, без заворачивания тела в строку
- поддержка опции COMPRESSION в колонках таблиц
- поддержка опций MULTIRANGE и SUBSCRIPT в типах
- поддержка использования ключевых слов как имен колонок в SELECT без AS
- удалена поддержка постфикс унарных операторов
- Исправлена ошибка парсинга SELECT ... INTO в PL/pgSQL IF-выражении.
6.2.0 - 2021-10-12
- Добавлена поддержка объектов SERVER и FOREIGN DATA WRAPPER.
- Добавлена возможность рефакторинга SQL кода. Теперь объекты в SQL коде можно переименовывать вместе со ссылками на них. Эта возможность доступна в контекстном меню редактора SQL или по горячей клавише
Alt+Shift+R
. - Добавлена возможность поиска ссылок на объекты в SQL коде. Теперь в редакторе SQL можно найти все распознанные ссылки на текущий выбранный объект. Эта возможность доступна в контекстном меню редактора SQL или по горячей клавише
Ctrl+Shift+G
. - Добавлено быстрое исправление ошибок некорректного расположения объектов. Эта возможность доступна во всплывающей подсказке или в контекстном меню Quick Fix редактора SQL. При использовании быстрого исправления файл объекта будет перемещен на ожидаемое для него место в проекте.
- Добавлена опция автоматического форматирования кода объектов при сравнении и сохранении в проект.
- Улучшено отображение всплывающих подсказок в редакторе SQL.
- Исправлено ошибочное требование Java 11 для CLI версии.
- Исправлена ошибка с генерацией кода миграции данных для таблиц с IDENTITY колонками.
6.1.0 - 2021-08-16
- Добавлена возможность выборочной загрузки схем при чтении проекта или БД по JDBC. Исключение схем позволяет ускорить загрузку БД или проекта. Объекты в исключенных схемах не могут быть использованы при генерации скриптов миграции. Подробнее см. документацию.
- Добавлено описание структуры проекта и работы программы в README.
- Улучшена работа ссылок на функции в редакторе SQL, а также зависимости от функций.
- Добавлен фильтр по типу БД в выпадающем списке БД в редакторе проекта.
- Удалено лишнее меню Show In в Project Explorer.
- Исправлено ложное различие в привилегиях функций с GRANT для PUBLIC.
- Исправлено отображение комбобокса БД в редакторе проекта под KDE.
- Исправлена ошибка в генерации кода миграции данных при пересоздании таблицы.
- Исправлена ошибка парсинга ALTER TABLE SWITCH TO в MS SQL.
6.0.0 - 2021-08-07
- Добавлена возможность форматирования кода функций на языках plpgsql и sql. Реализована расстановка отступов, переносов строк, замена табов на пробелы; расстановка пробелов вокруг операторов и удаление пробелов в конце строки. Функциональность форматирования будет дорабатываться в дальнейшем.
- Редактор проекта запоминает последний выбор направления применения изменений при повторном открытии.
- В редакторе проекта добавлен выпадающий список подключений БД для более удобного выбора подключения.
- Исправлены ошибки при чтении схемы БД по JDBC в случаях, когда объекты разных типов имеют одинаковые oid.
5.11.3 - 2021-04-09
- Исправлена ошибка дублирования объекта при использовании расширения pg_dbo_timestamp.
5.11.2 - 2021-03-25
- Исправлен парсер меток блокировки plpgsql.
5.11.1 - 2021-03-22
- Добавлена полная поддержка нового синтаксиса объектов, представленных в PostgreSQL 13.
- Редактор проекта теперь четко показывает выбранный в данный момент источник для сравнения схем и место назначения для применения выбранных изменений.
5.11.0 - 2021-03-18
- Начиная с этой версии, pgCodeKeeper требует Eclipse 2020-06 (4.16) или выше.
- Улучшен интерфейс редактора проекта, исправлены ошибки отображения GUI под Windows. Подробнее см. документацию.
- Улучшен CLI режим вывода графа зависимостей объектов. Теперь вывод можно фильтровать по типам объектов, объекты выводятся упорядоченно. Подробнее см. CLI помощь по параметру
--graph-filter-object
. - В анализе выражений добавлена поддержка вызовов функций с использованием null, anyelement и т.д. типов.
- Исправлено падение при анализе WITH RECURSIVE выражений.
- Исправлен поиск ссылок на функции с INOUT аргументами.
- Исправлено сравнение индексов при включенной опции генерации кода с CONCURRENTLY.
- Исправлено падение при чтении IDENTITY SEQUENCE по JDBC.
- Исправлены ошибки в парсере идентификаторов.
5.10.8 - 2020-12-02
- Добавлена возможность миграции данных при пересоздании таблиц.
- Добавлена возможность копирования имен объектов в редакторе проекта.
- Исправлено поведение меню
Снять выбор с дочерних элементов
в редакторе проекта. - Исправлены зависимости индексов и констрейнтов от колонок таблицы.
- Исправлены ошибки при выполнении некоторых SQL команд.
5.10.7 - 2020-08-27
- Исправлена проверка квалифицированных имен объектов в списках игнорирования.
- Исправлено сохранение списков игнорирования с зарезервированными словами.
- Исправлено пересоздание триггера в миграциях MS SQL.
- Исправлен вывод ALTER SCHEMA в логе выполнения скрипта.
- Исправлена ошибка в интерфейсе редактора проекта.
5.10.6 - 2020-08-13
- Специальные символы в именах файлов теперь заменяются на '_'. При совпадении имен файлов для разных объектов они будут храниться в одном файле.
- В диалоговое окно настроек получения изменений добавлена пропущенная опция "Игнорировать порядок колонок".
- Улучшен интерфейс редактирования подключения к БД.
- Улучшена сборка для Mac OS X.
- Исправлена ошибка распознавания проекта при импорте.
- Исправлена проверка расположения объектов под Windows.
- Исправлены ошибки в парсере MS SQL.
- Исправлен анализ выражений при изменении отдельных файлов в MS SQL проектах.
5.10.5 - 2020-07-29
- Добавлены самостоятельные сборки pgCodeKeeper, не требующие предварительной установки Eclipse. Сборки доступны для скачивания на Github. Предыдущие версии сайтов обновления pgCodeKeeper теперь также доступны на гитхабе. Основной сайт обновления теперь содержит только последнюю версию.
- Добавлена настройка создания миграции только для выбранных объектов без изменения зависимостей. В CLI режиме "выбранными" считаются объекты, прошедшие через фильтры разрешенных объектов и списки игнорирования, либо все объекты, если эти фильтры не заданы.
- Добавлена настройка игнорирования различий в порядке колонок таблиц.
- Улучшена генерация команд COMMENT ON.
- Исправлены зависимости между операторами и их функциями.
5.10.4 - 2020-07-15
- Исправлена ошибка с чтением схем FOREIGN TABLE по JDBC.
- Исправлена совместимость с PostgreSQL 9.4 при чтении схемы по JDBC.
- Исправлен порядок команд для зависимостей между функциями.
- Исправлена ошибка, из-за которой проверка пути к объекту учитывала регистр.
- Исправлена ошибка в анализе выражений.
- Исправлено падение при парсинге некорректной команды MS SQL.
- Исправлен экспорт типов при инициализации MS SQL проекта.
5.10.3 - 2020-07-02
- Добавлена подсветка вхождений выбранного объекта в SQL редакторе.
- Добавлены предупреждения о неправильном расположении объектов.
- Добавлена поддержка вложенных комментариев.
- Улучшен диалог фильтра объектов.
- Удалены дубликаты маркеров ошибок.
- Исправлена ошибка при ошибке в последнем символе в строке в скрипте наката.
5.10.2 - 2020-06-18
- Исправлена ошибка в сборщике проекта.
5.10.1 - 2020-06-16
- Добавлена поддержка объектов POLICY.
- Улучшено отображение комментариев в Outline редактора SQL.
- Исправлена ошибка с генерацией кода комментария для DOMAIN CONSTRAINT.
- Исправлена ошибка с игнорированием комментариев перед MS объектами при накате.
- Исправлены ошибки с недостающими/лишними ссылками на объекты.
5.10.0 - 2020-06-03
- Переделан поиск ссылок на объекты. Теперь ссылки на объекты собираются при анализе тел функций, запросов VIEW, и всех других выражений. Неточный способ поиска по тексту выражений более не используется.
- В Редакторе проекта добавлена возможность фильтрации по колонкам. Будут отображены таблицы с изменениями в колонках.
- Улучшена поддержка эскейп схем SQL строк.
- Исправлена ошибка в парсере SQL в именах колонок SELECT.
- Исправлены ссылки на объекты в COMMENT ON.
- Исправлено падение при парсинге скриптов MS SQL.
5.9.14 - 2020-05-20
- В JDBC загрузчике исключены объекты CAST, принадлежащие расширениям.
- Исправлено содержимое выпадающего списка БД на панели инструментов при переключении редакторов.
5.9.13 - 2020-05-19
- Улучшен интерфейс выпадающего списка выбора БД. Увеличена ширина списка на панели инструментов Eclipse.
- Исправен порядок добавления новых колонок в таблицу для сохранения указанного пользователем порядка.
- Исправлены ложные различия в изменении порядка комментариев на колонках VIEW.
5.9.12 - 2020-04-29
- Добавлена поддержка объектов CAST.
- В списки игнорирования объектов добавлен флаг QUALIFIED, проверяющий совпадение правила с квалифицированным именем объекта.
- Сборщик проекта использует подключенные библиотеки при полной сборке, и не отмечает использование библиотечных объектов как ошибки.
- Исправлено отображение списка подключений к БД и других списков на Windows.
- Исправлено падение при парсинге пустого скрипта миграции.
5.9.11 - 2020-04-16
- Добавлено предупреждение о недостаточном объеме Java heap памяти для работы с большими проектами.
- Улучшен вывод лога команд и уведомления об ошибках при выполнении скрипта.
- Улучшен список команд, отображаемых в Outline редактора SQL, а так же в Project Explorer.
- Исправлена ошибка в интерфейсе отображения результатов запросов.
- Исправлена ошибка парсинга WITH (reloptions) в индексах, таблицах и т.д.
- Исправлено отсутствие ссылок для объектов, используемых в телах функций и триггерах.
5.9.10 - 2020-03-11
- Добавлена глобальная настройка для отображения сообщений об ошибках, найденных в процессе получения изменений.
- Из файла настроек проекта
.settings/ru.taximaxim.codekeeper.ui.prefs
вынесены вспомогательные настройки. - Улучшены правила PL/pgSQL парсера.
- Исправлена ошибка при чтении агрегатныx функций с сортировкой по VARIADIC "any".
5.9.9 - 2020-02-19
- Добавлена возможность выключения парсера SQL редактора для больших файлов для улучшения скорости работы.
- В списке подключений БД, списках игнорирования, списках библиотек и др. теперь возможно перетаскивать элементы.
- Добавлена возможность задания кодировки при импорте проекта.
- Мастер сравнения теперь использует глобальный список игнорируемых объектов.
- Улучшен парсер PL/pgSQL INTO конструкции.
- Улучшена скорость анализа выражений для MS SQL.
- Исправлена генерация кода для изменений IN/INOUT режимов аргументов функции.
- Исправлено падение сборщика проекта при ошибке в анализе выражений.
5.9.8 - 2020-01-28
- Добавлена поддержка новых свойств объектов, введенных в PostgreSQL 12.
- Добавлена CLI опция
--ignore-errors
для игнорирования ошибок парсера и анализа кода. - Добавлена поддержка PostgreSQL строк, разделенных переносами строки.
- Отслеживание зависимостей выключено для тел функций PostgreSQL в связи с нестабильной работой.
- Включен поиск зависимостей в выражениях значений по-умолчанию в MS SQL.
- Улучшены сообщения об ошибках в анализе выражений.
- Улучшено сравнение PostgreSQL VIEW без учета незначимых символов (whitespace)..
5.9.7 - 2019-12-24
- Исправлена ошибка при анализе RETURNING DML команд, находящихся в CTE.
- Исправлена ошибка в bat-файле запуска Windows CLI при передаче строк со специальными символами из PowerShell.
5.9.6 - 2019-12-16
- Включена обработка зависимостей функций PostgreSQL при изменении их тел.
- Уменьшено количество объектов, пересоздаваемых при изменении тел функций, от которых они зависят.
- Исправлен парсер CREATE FDW.
- Исправлен парсер SELECT ... FOR.
- Исправлена ошибка в переопределении настроек перед запуском операции.
5.9.5 - 2019-12-09
- Оптимизирована генерация скриптов миграций для сложных/больших графов зависимостей объектов.
- Улучшено сообщение об ошибке при сохранении паролей в безопасном хранилище.
- Улучшена возможность отмены чтения БД по JDBC.
5.9.4 - 2019-11-29
- Добавлена возможность переопределения настроек перед запуском Получения изменений и генерацией скрипта миграции. Переопределенные настройки используются один раз и не влияют на настройки программы и проекта. Переопределяемые настройки добавлены в Мастер сравнения.
- Добавлена поддержка MEMORY_OPTIMIZED таблиц в MS SQL.
- Оптимизирован анализ выражений: выключено отладочное логирование, анализ запускается параллельно в несколько потоков, анализ представлений выполняется в один проход и не требует граф зависимостей.
- Анализ выражений выполняется последним шагом при загрузке любой БД. Данные оптимизации уменьшили время выполнения анализа в 4 раза относительно предыдущей версии (зависит от количества CPU).
- Улучшен вывод сообщений об ошибках при сохранении паролей в безопасном хранилище Eclipse.
- Исправлена генерация кода при изменений свойств ANSI_NULLS и QUOTED_IDENTIFIER в MS SQL.
- Исправлено исполнение скриптов MS SQL содержащих единственный пакет (batch) команд.
5.9.3 - 2019-11-19
- Исправлен парсинг RETURN QUERY EXPLAIN.
5.9.2 - 2019-11-14
- Пароли баз данных теперь хранятся в зашифрованном Безопасном хранилище Eclipse. Пароли в файле .pgpass поддерживаются как раньше.
- Добавлена возможность освобождения памяти кэша парсера после периода неактивности или при необходимости. Интервал неактивности по-умолчанию равен 30 минутам и может быть изменен в настройках программы. Кэш парсера существенно повышает скорость парсинга, но может занимать сотни МБ Java heap, что может быть нежелательным при редком использовании парсера.
- Добавлен обход потенциального дедлока GUI на Linux.
- Добавлена зависимость запросов SELECT к PRIMARY KEY, колонки которых используются в секции GROUP BY.
- Зависимости колонок добавлены в граф панели pgDependencies.
- Исправлена ошибка в привилегиях функции по-умолчанию при изменении владельца.
- Исправлен порядок генерируемых команд в случаях циклических зависимостей между функциями и таблицами.
5.9.1 - 2019-10-31
- В CLI добавлена возможность выполнения сгенерированного скрипта на базе данных (опции
--run-on
и--run-on-target
).
- Улучшены сообщения об ошибках парсинга.
- Добавлены зависимости объектов Full Text Search от используемых ими функций.
- Улучшен интерфейс отображения результатов запросов: вкладкам добавлено контекстное меню, добавлена возможность закрытия вкладки средней кнопкой мыши.
- Исправлены ошибки в парсере PL/pgSQL, оптимизирован анализ кода.
- Исправлены проблемы с генерацией кода при изменениях OWNED BY свойства последовательностей, удалении последовательностей и др.
- Исправлена проблема с неправильным порядком создания зависимостей колонок при создании таблицы.
- Исправлена проблема с поиском зависимостей в выражениях при использовании конструкций COALESCE, NULLIF и т.д.
- Исправлена генерация кода при работе с партиционированными индексами.
5.9.0 - 2019-10-16
- Включен анализ кода функций на языке PL/pgSQL: обрабатываются зависимости, используемые телами функций, подсвечиваются ошибки в их коде. Зависимости от тел функций к другим функциям отключены по-умолчанию. Работа с проектами, содержащими большое количество PL/pgSQL кода, может потребовать больше памяти чем прежде, из-за увеличившегося объема парсинга.
5.8.3 - 2019-10-10
- Исправлена ошибка при работе с PostgreSQL 12.
- Исправлены отчеты об ошибках, найденных в подключенных к проекту pgCodeKeeper библиотеках, а так же в самих проектах, при их чтении в CLI.
- Исправлена ошибка при использовании идентификатора LIST.
- Исправлена кодировка скриптов мастера сравнения.
- Исправлена ошибка при анализе объектов, полученных из JDBC.
5.8.2 - 2019-10-02
- Формат данных, копируемых из результата запроса изменен для совместимости с SQL и CSV (копируются SQL строки).
- Исправлена ошибка при открытии скрипта мастера сравнения.
5.8.1 - 2019-10-10
- При обнаружении ошибок в загружаемых SQL файлах в CLI режиме операция завершается с ошибкой.
- Добавлена генерация кода REFRESH MATERIALIZED VIEW при изменениях состояния WITH [NO] DATA.
- В парсер SQL добавлена поддержка конструкций XMLTABLE, TABLESAMPLE, SELECT INTO.
- В парсер MS SQL добавлена поддержка триггерной функции UDPATE, улучшены правила парсера.
- Исправлена ошибка при открытии файлов вне pgCodeKeeper проекта в редакторе SQL.
5.8.0 - 2019-09-18
- Включен анализ тел функций на языке SQL: обрабатываются зависимости, используемые телами функций, подсвечиваются ошибки в их коде. Зависимости от тел функций к другим функциям отключены по-умолчанию (как в MS SQL). Аналогичная функциональность для plpgSQL запланирована на ближайшие релизы.
- Добавлена возможность открыть редактор SQL для исполнения запросов без создания файла на диске.
- В SQL редакторе добавлена возможность переключения парсера кода и шаблонов между PostgreSQL и MS SQL для файлов вне pgCodeKeeper проектов.
- Прогресс выполнения скриптов и получения изменений теперь отображается на панели задач Windows.
5.7.0 - 2019-09-03
- Добавлена глобальная настройка и настройка проекта для чтения представлений в упрощенном формате.
- Расширены правила ANLTR парсера для PostgreSQL, исправлены ошибки.
- Возвращено окно с предупреждениями об ошибках во время сравнения.
- CLI: Добавлен новый режим работы --graph для отображения зависимостей объектов.
- Добавлен параметр VM
ru.taximaxim.codekeeper.parser.poolsize
, позволяющий ограничить количество потоков ANTLR парсера. Пример использования в CLI:
- Исправлена ошибка с EXCLUDE ограничениями.
- Исправлен устаревший синтаксис в запросе представлений.
- Исправлена ошибка, связанная с невозможностью выбрать базу данных MS SQL для файлов, находящихся вне проекта.
- CLI: Удален устаревший параметр -l(--lisence).
5.6.1 - 2019-08-14
- Исправлена ошибка генерации комментария для индексов.
5.6.0 - 2019-08-13
- Добавлена возможность переопределения некоторых глобальных настроек для проекта.
- Добавлена поддержка синтаксиса SELECT WITH ORDINALITY.
- Добавлено изменение текста в фильтре в соответствии с текущим направлением изменений.
- Добавлена возможность передачи параметров JVM в CLI версии. Все параметры переданные после
-vmargs
будут переданы JVM.
- Исправлена ошибка с генерацией GRANT/REVOKE для объектов с именами в кавычках.
- Исправлена ошибка с типом CHARACTER VARYING в MS SQL.
5.5.3 - 2019-07-30
- Исправлена зависимость к функциям с модификаторами типа.
- Исправлена ошибка при открытии SQL файла вне проекта.
5.5.2 - 2019-07-17
- Добавлена поддержка синтаксиса IDENTITY в определении колонки.
- Добавлена поддержка команды ALTER EXTENSION в парсер SQL.
- В свойствах проекта добавлена возможность редактирования списка исключения по-умолчанию.
- Улучшена обработка зависимостей между колонками наследованных таблиц.
- Список подключенных библиотек в Project Explorer теперь показывает имена файлов для URL.
5.5.1 - 2019-07-02
- В диалоге свойств подключения к БД добавлено поле домена для включения доменной аутентификации в MS SQL.
- Улучшен вывод контекстной информации об ошибках при выполнении SQL скриптов.
- Исправлен порядок операций с колонками партиционированных таблиц с учетом зависимостей между ними.
- Исправлены ошибки в интерфейсе автоподстановки шаблонов в редакторе SQL.
5.5.0 - 2019-06-19
- Обновлены шаблоны кода SQL редактора. Мастер создания SQL объектов создает новые объекты с помощью шаблонов для удобства дальнейшего редактирования.
- Автодополнение кода в SQL редакторе разделено на категории: идентификаторы и ключевые слова, и шаблоны. Переключение между категориями осуществляется повторными нажатиями клавиш автодополнения (Ctrl+Space).
- Обновлен MS SQL драйвер JDBC. Новая версия позволяет использовать доменную NTLM аутентификацию с помощью задания дополнительных свойств подключения.
- Исправлено слишком широкое условие изменения функции с параметрами по-умолчанию. Оно вызывало излишние пересоздания зависимых объектов.
- Исправлена генерация кода для выдачи PUBLIC привилегий функциям, процедурам и типам.
- Исправлена генерация кода комментария индекса при его изменении в режиме CONCURRENTLY.
5.4.10 - 2019-06-05
- Идентичные объекты в проекте и библиотеке не считаются переопределениями, и не блокируют работу при включенном запрете переопределений.
- Добавлена возможность редактирования пути или URL в списке библиотек.
- При переопределении привилегий "пустым списком" используются привилегии по-умолчанию для данного объекта.
- Исправлена уязвимость при распаковке zip архивов.
5.4.9 - 2019-04-30
- При изменении индекса в режиме CONCURRENTLY генерируется оптимизированный код, минимизирующий время отсутствия индекса на таблице.
- Для изменений индексов MS SQL генерируется код с DROP_EXISTING без удаления существующего объекта.
- Удаление колонок производится только в указанной таблице с помощью указания ONLY.
- Указание ONLY выключено для операций SET NOT NULL, которые невозможно выполнить только на родительской таблице.
- При создании колонки с NOT NULL не генерируются отдельные команды для выставления NOT NULL и DEFAULT.
- В парсер MS SQL добавлена поддержка указания нескольких действий в команде ALTER TABLE.
5.4.8 - 2019-04-17
- Добавлена возможность привязки проекта к подключению БД. Привязанный проект возможно использовать только с выбранным подключением.
- Добавлена возможность настройки внешнего загрузчика (pg_dump или другого) для каждого подключения БД. Параметры подключения передаются загрузчику через переменные окружения, описанные в документации pg_dump.
- Типы изменения объектов в редакторе проекта теперь отображаются с учетом выбранного направления миграции.
- Исправлено некорректное сравнение отступов в тексте пользовательских типов MS SQL.
5.4.7 - 2019-04-02
- Исправлена обработка зависимостей для представлений, функций, процедур и триггеров MS SQL.
- Исправлена ошибка в сравнении объектов последовательностей MS SQL, использующих системные типы.
- Исправлена ошибка в сравнении объектов функций PostgreSQL.
- Исправлена ошибка в обработчике парсера MS SQL для команды DROP TRIGGER.
- Исправлено поведение опции сохранения переопределений привилегий в диалоге обновления проекта.
- Исправлена ошибка при сортировке редактора проекта по пользователям git и БД.
- Исправлено зависание интерфейса при запуске больших скриптов.
5.4.6 - 2019-03-19
- Добавлена возможность сортировки колонок пользователей git и БД в редакторе проекта.
- Добавлена опция продолжения чтения схемы БД при получении неконсистентных состояний объектов.
- Исправлены ошибки поиска зависимостей в выражениях и функциях MS SQL.
5.4.5 - 2019-03-11
- Добавлена возможность выполнения запросов данных из SQL редактора. Полученные данные отображаются в представлении
Результат запроса
.
- Исправлен код создания индексов на партиционированных таблицах.
- Исправлено название опции правила черного/белого списка, применяющее его к содержимому объекта.
5.4.4 - 2019-03-05
- Отключен вывод
sp_refreshsqlmodule
для объектов кроме VIEW.
5.4.3 - 2019-02-27
- Добавлена поддержка T-SQL скриптов, начинающихся с команды GO.
- Добавлена поддержка скриптов PostgreSQL без завершающей точки с запятой.
5.4.2 - 2019-02-27
- Исправлено ошибочное чтение TABLESPACE для FOREIGN KEY.
5.4.1 - 2019-02-26
- Исправлена ошибка невыполнения команд при запуске скриптов.
5.4.0 - 2019-02-26
- Изменен механизм работы с проектом и search_path. Ожидается, что все объекты в проекте квалифицированы через схему, в противном случаем будет показано предупреждение. Ссылки на неквалифицированные объекты считаются ссылками на системную схему.
- Добавлен сборщик проекта для MS SQL.
- Добавлена поддержка индексов в секционированных таблицах и материализованных представлениях.
- Добавлена поддержка TABLESPACE в ограничениях таблицы.
- Улучшен механизм работы с опасными выражениями. Проверка на содержание опасных выражений происходит непосредственно перед исполнением скрипта.
- Улучшен механизм обновления зависимых объектов в MS SQL. Изменения функций, процедур, представлений, триггеров, а также типа и количества колонок таблицы вызывает обновление зависимых объектов.
- Улучшены и оптимизированы правила SQL парсера.
- Исправлена ошибка, дублирующая FOREIGN KEY для дочерних таблиц в секционированных таблицах в PostgreSQL 11.
- Исправлена ошибка при чтении имени сервера в FOREIGN TABLE.
5.3.9 - 2019-02-12
- Добавлена поддержка объектов пользовательских агрегатных функций.
- Добавлена поддержка синонимов типов данных PostgreSQL. Синонимы конвертируются в стандартные типы "на лету", использование разных синонимов не считается различием объектов.
- Улучшены и оптимизированы правила SQL парсера.
- Исправлена ошибка "too many open files" при параллельном запуске парсеров.
- Исправлен механизм сбора и показа ошибок SQL при параллельном запуске парсеров.
5.3.8 - 2019-02-01
- Добавлена поддержка парсера для пустых SQL команд.
- Исправлена генерация скрипта для зависимых объектов функции при изменении ее параметров "по-умолчанию".
5.3.7 - 2019-01-30
- Исправлена утечка консолей в интерфейсе программы.
- Исправлен сборщик MS SQL для параллельного запуска парсеров.
5.3.6 - 2019-01-29
- Добавлена поддержка модификаторов пользовательских типов в PostgreSQL.
- Ускорена загрузка проектов путем параллельного запуска парсеров.
- При генерации миграций MS SQL не изменившиеся зависимые объекты обновляются с помощью sp_refreshsqlmodule вместо пересоздания.
- Исправлен MS SQL парсер CREATE SCHEMA с определениями объектов.
5.3.5 - 2019-01-15
- Добавлен вывод прогресса выполнения скрипта в консоль pgCodeKeeper. Результат и ошибки выполнения также выводятся в консоль.
- Исправлено отсутствие зависимостей от функций, вызываемых с помощью EXEC в MS SQL.
5.3.4 - 2018-12-11
- Добавлена возможность переопределения владельца для всех объектов библиотеки. Данная функция доступна в GUI и в CLI при подключении библиотек с помощью XML файла. Переопределения в проекте имеют приоритет над переопределением владельца в настройках библиотеки.
- Исправлены ошибки StackOverflowError при обработке больших БД.
- Исправлена потеря зависимостей между объектами, полученными из библиотек.
5.3.3 - 2018-12-05
- Добавлена поддержка специальных синтаксисов вызовов системных функций в MS SQL.
- Исправлены перепутанные source/target опции XML библиотек в CLI.
- Исправлена отсутствующая проверка отмены операции при чтении БД по JDBC.
5.3.2 - 2018-11-30
- Исправлен порядок загрузки: переопределения загружаются последними, в том числе после библиотек.
- Исправлен экспорт функций MS SQL.
5.3.1 - 2018-11-28
- Исправлена ошибка при чтении значений по-умолчанию аргументов функций MS SQL по JDBC.
5.3.0 - 2018-11-27
- Добавлен механизм переопределения владельцев и прав объектов, хранящихся в проекте или библиотеках. Переопределения сохраняются в директории OVERRIDES, структура которой повторяет структуру проекта.
- В диалог обновления проекта добавлена возможность сохранить выбранные изменения в директорию переопределений.
- Добавлена поддержка объектов пользовательских типов в MS SQL.
- Добавлен вывод сообщений для ошибок, найденных при загрузке библиотек.
- CLI режим автоматически использует директорию переопределений.
- Исправлена ошибка при обновлении файлов представлений (VIEW) с триггерами.
5.2.1 - 2018-11-20
- Исправлена ошибка отбрасывания REVOKE PUBLIC привилегий для функций и типов.
5.2.0 - 2018-11-13
- Добавлена поддержка процедур в PostgreSQL 11. Также исправлено чтение функций через JDBC в PostgreSQL 11.
- В парсер добавлена поддержка нового синтаксиса, введенного в PostgreSQL 11.
- Добавлена обработка зависимостей между всеми объектами MS SQL.
- Добавлена возможность использования zip-архивов как библиотек pgCodeKeeper проектов.
- Добавлена возможность подключения файлов библиотек при помощи указания URL удаленных ресурсов.
- В CLI добавлена возможность подключения библиотек с помощью XML списков (файлы
.dependencies
, см. параметр--src-lib-xml
).
- Привилегии, по-умолчанию существующие у объектов, не записываются в файлах проекта.
- При изменении порядка колонок в таблице в миграции генерируются команды для ее пересоздания.
- Исправлена обработка минимумов и максимумов последовательностей в MS SQL.
- Исправлена обработка параметров конфигурации функций PostgreSQL в соответствии с исправлениями в pg_dump.
- Правила допустимых имен пользовательских операторов исправлены в соответствии со спецификацией PostgreSQL.
- Исправлено сравнение INCLUDE колонок в индексах. Порядок при их сравнении не учитывается.
5.1.7 - 2018-10-24
- Выключено чтение операторов, принадлежащих расширениям (EXTENSION).
5.1.6 - 2018-10-23
- Добавлена поддержка объектов OPERATOR в PostgreSQL.
- Генерация миграций MS SQL с учетом порядка зависимостей между объектами и представлениями (VIEW).
- Перед удалением роли в MS SQL из нее удаляются все члены.
- Исправлено чтение параметра TEXTIMAGE_ON для таблиц MS SQL.
- Исправлена ошибка скрипта запуска CLI под Windows при работе из директории с пробелами в пути.
- Исправлена ошибка JDBC загрузки при отсутствии схемы для сохранения объекта.
5.1.5 - 2018-10-10
- Исправлены ошибки в поддержке MS SQL.
5.1.4 - 2018-10-08
- Добавлена возможность подключения к базе данных MS SQL, используя Windows аутентификацию.
- Добавлен отдельный мастер создания нового проекта для MS SQL.
- Значительно расширено покрытие команд SQL парсерами.
- При работе с кодом объектов MS SQL PROCEDURE, FUNCTION, TRIGGER, VIEW используется пользовательское форматирование.
- Изменен алгоритм добавления NOT NULL для колонок (используется UPDATE). UPDATE добавлен в список опасных выражений.
- Улучшено логирование ошибок.
- Исправлена ошибка при чтении схемы MS SQL по JDBC при отсутствии необходимых прав.
- Исправлена ошибка при чтении и парсинге RULE c командой SELECT.
- Исправлена ошибка парсинга для USER в MS SQL.
- Исправлена ошибка записи дробных значений FUNCTION COST и ROWS.
5.1.3 - 2018-09-27
- Исправлены ошибки в поддержке MS SQL.
5.1.2 - 2018-09-24
- Исправлена ошибка закавычивания значений по-умолчанию у параметров процедур MS SQL.
5.1.1 - 2018-09-24
- Добавлена возможность выполнения T-SQL скриптов на базах MS SQL. Теперь скрипты разбиваются парсерами на отдельные команды, которые затем отправляются на БД. В случае T-SQL скриптов, команды собираются в пакеты с помощью разделителей GO.
- Добавлена поддержка MS SQL объектов ASSEMBLY, ROLE, USER.
- Выпадающие списки БД теперь фильтруются по типу (PG/MS) в зависимости от контекста.
- Улучшена работа парсера T-SQL, исправлено большинство неоднозначностей, остававшихся в грамматике парсера. Улучшены сообщения об ошибках парсера.
- Анализ выражений теперь производится после загрузки всех подключенных библиотек для избежания ошибок со ссылками на еще не загруженные объекты.
- Исправлены ошибки ложных различий и неправильной загрузки объектов MS SQL.
- Исправлены ошибки с чтением и записью DEFERRED состояния для CONSTRAINT TRIGGER.
- Исправлено падение загрузки БД при анализе выражений, содержащих ссылки на несуществующие объекты. Для таких ссылок теперь отображаются ошибки в соответствующих файлах.
5.1.0 - 2018-09-06
- Добавлена поддержка работы с Microsoft SQL Server в тестовом режиме.
5.0.3 - 2018-08-09
- В CLI версии расширен параметр -Z: значение временной зоны используется при чтении БД.
- В парсер добавлена поддержка новых команд.
- Исправлена ошибка при получении временной зоны из БД при создании нового проекта.
- Исправлена блокировка интерфейса при использовании диалога обратной связи.
5.0.2 - 2018-08-01
- Исправлена квалификация пользовательских типов при чтении из базы данных.
5.0.1 - 2018-08-01
- Исправлена ошибка при чтении объектов таблиц: ограничений, индексов, правил и триггеров.
- Исправлена ошибка при чтении IDENTITY SEQUENCE.
5.0.0 - 2018-08-01
- Изменена генерация SQL кода. Теперь все SQL выражения создаются для
search_path = pg_catalog
. Это изменение повышает безопасность и стабильность сгенерированного кода, подробнее см. изменения PostgreSQL 10.3. Вследствие этого, при сравнении проектов с БД, будут найдены различия в квалификации имен. Проекты необходимо привести к новому формату, сохранив эти различия. Использование постоянногоsearch_path
для генерации SQL кода позволяет JDBC загрузчику читать объекты одном запросом из всех схем сразу. Это значительно ускоряет скорость загрузки схемы и позволяет избавиться от серверных хелпер функций, они более не используются. Также значительно ускоряется работа с расширениемpg_dbo_timestamp
. - Изменено местоположение SQL файлов схем в проекте. Теперь они хранятся не в общей директории SCHEMA, а каждый в директории своей схемы. При открытии проектов старого формата, pgCodeKeeper предложит переместить файлы схем на их новое местоположение.
4.6.1 - 2018-07-19
- Исправлено чтение безымянного параметра функции с типом character varying.
- Исправлена совместимость с Eclipse 4.8.
- Уменьшающиеся последовательности (SEQUENCE) исправлены для соответствия имплементации PostgreSQL 10.
- Исправлена обработка ограничений (CONSTRAINT) при работе с расширением
pg_dbo_timestamp
.
4.6.0 - 2018-06-21
- Добавлена поддержка объектов TEXT SEARCH: CONFIGURATION, DICTIONARY, PARSER, TEMPLATE. Отслеживание этих объектов добавлено в расширение
pg_dbo_timestamp
. - Обновлено расширение
pg_dbo_timestamp
для обхода проблемы с отслеживанием изменений в привилегиях объектов. Это позволяет использовать расширение для ускорения чтения схемы БД в pgCodeKeeper. Для включения этого режима работы в общие настройки добавлена соответствующая опция. Эта же опция управляет отображением пользователя БД, изменившего объект. - В парсер добавлена поддержка команды IMPORT FOREIGN SCHEMA.
- Улучшен интерфейс редактирования списков исключенных объектов.
- Исправлена подсветка многострочных строковых литералов в редакторе SQL.
- Исправлены ошибки в SEQUENCE, прочитанных с помощью хелпер-функций на PostgreSQL 10.
4.5.3 - 2018-05-30
- В редакторе SQL включена подсветка скобок. Эту опцию можно дополнительно настроить в разделе Редактор SQL в глобальных настройках pgCodeKeeper.
- Улучшен интерфейс редактирования данных подключения к БД, добавлена возможность указания специальных свойств соединения.
- Добавлен поиск зависимостей выражений от колонок без указания имен таблиц, например в SELECT и выражениях индексов.
- Улучшен вид нотификаций о событиях в редакторе проекта.
- Исправлена проблема увеличенного потребления памяти, возникшая в версии 4.5.0.
4.5.2 - 2018-05-15
- Исправлена пропавшая ассоциация SQL файлов с редактором.
- Исправлен отказ JDBC при попытке обхода ошибки серверной хелпер функции, переводящей транзакцию в ошибочное состояние.
4.5.1 - 2018-05-15
- pgCodeKeeper теперь доступен в Eclipse Marketplace!
- Добавлена возможность задания дополнительных списков исключенных объектов в настройках проекта.
- Списки возможно создавать и изменять с помощью диалога редактирования, доступного из настроек проекта.
- Диалог сравнения заменен стандартным редактором сравнения.
- Представление
Переопределенные объекты
позволяет сравнивать версии объекта с помощью этого редактора. - При отсутствии найденных различий в результате получения изменений показывается соответствующее уведомление.
- В парсер добавлена поддержка команд TRUNCATE, CREATE USER MAPPING, и конструкции FROM в команде UPDATE.
- Некоторые встроенные функции PostgreSQL получают данные вне текущей транзакции. Добавлены проверки на безопасность использования этих функций. Security checks have been added to these function calls.
- При изменениях библиотек их дерево в
Project Explorer
обновляется автоматически. - Панель различий в редакторе проекта теперь использует глобальные настройки для отображения редакторов кода. Это исправляет ошибку нулевой ширины табов в Windows.
- Улучшено отображение кнопок-переключателей с длинными надписями в Windows.
- Ускорен анализ зависимостей VIEW.
4.5.0 - 2018-04-25
- В списках исключенных объектов теперь возможно указать типы объектов, к которым применяется правило. Подробности в документации.
- Библиотеки проектов pgCodeKeeper:
- структура библиотек теперь отображаются в дереве
Project Explorer
; - добавлено представление
Переопределенные объекты
, отображающее переопределения объектов в текущем редакторе проекта; - библиотечные объекты в таблице различий редактора проекта теперь отмечаются иконкой.
- структура библиотек теперь отображаются в дереве
- Улучшен анализ выражений SQL (в SELECT и других value expression). Благодаря этому теперь определяются зависимости выражений от конкретной функции из нескольких перегруженных, а также от колонок, выбранных звездочкой (SELECT * FROM ...).
- Логи CLI версии теперь записываются в один файл в директории пользователя. Это поведение можно изменить в скрипте запуска CLI.
4.4.0 - 2018-04-11
- Добавлена возможность подключения библиотек к проектам pgCodeKeeper. Библиотеками могут являться директории других проектов, дамп файлы, директории с SQL файлами и JDBC строки подключения к БД.
- В настройках проекта добавлена возможность отключить SQL парсер при открытии посторонних файлов из этого проекта в редакторе SQL.
- Исправлена ошибка совместимости с Eclipse Neon.3.
4.3.4 - 2018-03-28
- Улучшено хранилище БД: добавлена возможность добавления списков исключенных объектов для БД, настройка БД только для чтения, возможность протестировать подключение, и возможность импорта данных подключения из файла
.pgpass
. Изменен внутренний формат записи хранилища, что облегчит его расширение и поддержку в дальнейшем. - Улучшена отменяемость JDBC SQL-запросов, например, при получении изменений. При отмене подобных операций они завершатся сразу же, отменив текущий запрос к БД.
- Долларовые кавычки теперь поддерживаются в любых местах SQL кода, где допустимы строки.
- Актуализирован список ключевых слов для подсветки в SQL редакторе.
- Выпадающий список ссылок на объекты в SQL редакторе теперь отображает пути к файлам относительно проекта.
- Исправлена ошибка, при которой идентификаторы в выражении RETURNS TABLE не ставились в двойные кавычки.
4.3.3 - 2018-03-14
- Документация продукта перенесена из Eclipse Help System в отдельный проект на Read the Docs.
- В редактор SQL добавлен поиск и создание ссылок на используемые в представлениях (VIEW) объекты. Для инициализации ссылок в существующих файлах пересоберите или очистите (Clean) проект.
- Обновлено расширение
pg_dbo_timestamp
. Исправлена ошибка при работе на PostgreSQL 10, добавлено сохранение дополнительной информации о событиях. Начиная с этого выпуска, pgCodeKeeper будет работать с расширением версии 0.0.2 или выше. - Восстановлена работа обратной связи из программы.
- Улучшена работа с именами в кавычках в мастере новых объектов.
- JDBC запросы чтения схемы БД улучшены для избежания совпадений между именами системных и пользовательских объектов.
- Исправлена ошибка при поиске автора файла в пустом git репозитории.
- Исправлена ошибка при создании проекта в директории с уже существующими настройками.
4.3.2 - 2018-03-06
- Исправлена ошибка, превращавшая serial SEQUENCE в IDENTITY на PostgreSQL 10.
4.3.1 - 2018-03-01
- Исправлены ошибочные предложения добавить сборщик для не-pgCodeKeeper проектов.
4.3.0 - 2018-02-27
- Добавлена возможность работы с расширением
pg_dbo_timestamp
. Расширение предназначено для сбора информации о модификациях DDL объектов БД. - В настройках редактора проекта pgCodeKeeper доступна опция отображения пользователей, изменивших различающиеся объекты. В дальнейшем расширение планируется использовать для ускорения JDBC чтения схемы БД.
- В расширенный фильтр редактора проекта добавлены поля для пользователей, изменивших объект в git и БД.
- Мастер создания новых объектов пытается вывести имя и расположение объекта из контекста. Улучшен интерфейс ввода имени и типа объекта, исправлено переключение фокуса при этом.
- В мастере генерации данных добавлена кнопка для удаления всех необязательных (не NOT NULL) колонок.
- История фильтров в редакторе проекта теперь показывается автоматически.
- SQL редактор предлагает добавить сборщик для проекта открываемого файла при его отсутствии.
- Исправлена ошибка при чтении объектов SEQUENCE из PostgreSQL 10.
4.2.3 - 2018-02-13
- В редакторе проекта добавлена история ранее введенных фильтров. Фильтру добавлена задержка с целью уменьшения "подвисаний" интерфейса при большом количестве отображаемых различий. В диалог расширенных фильтров добавлена возможность фильтра по контейнеру объекта.
- Улучшен мастер генерации тестовых данных:
- добавлена поддержка типов numeric, time, timestamptz;
- добавлена поддержка алиасов типов (varchar и т.п.)
- код вставки тестовых данных теперь возможно генерировать с явным приведением каждого значения к его типу;
- улучшены сообщения об ошибках во введенных значениях;
- добавлен генератор any, позволяющий использовать в данных любое значение или выражение "как есть;"
- добавлена возможность удалить несколько выбранных колонок сразу;
- добавлены пункты запуска мастера в контекстные меню Project Explorer и SQL редактора для файлов таблиц, запуск через File - New по прежнему возможен.
- Улучшен мастер создания нового SQL объекта:
- имя и расположение объекта теперь задается одной строкой с точками-разделителями;
- поле с именем объекта заполняется исходя из контекста, и активно по-умолчанию;
- для новых объектов не генерируется лишний код задания владельца.
- Исправлен импорт проекта с отсутствующим файлом
.pgcodekeeper
. Добавлена возможность конверсии существующего Eclipse проекта в проект pgCodeKeeper. - Исправлена ошибка парсинга квалифицированного opclass в CREATE INDEX.
- Исправлена ошибка парсинга выражения implicit row constructor.
4.2.2 - 2018-01-30
- Исправлены платформозависимые пути в истории git.
4.2.1 - 2018-01-30
- Редактор проектов показывает автора последнего изменения для проектов в репозиториях git. Поиск последних изменений использует алгоритм
git log ‑‑full‑history ‑‑no‑merges
, результаты которого могут отличаться от стандартного. Эта функция может быть отключена в настройках редактора проекта pgCodeKeeper. - Добавлена поддержка OPTION столбца в CREATE FOREIGN TABLE.
- Добавлена поддержка CREATE RECURSIVE VIEW.
- Добавлены уведомления JDBC-загрузчика об ошибках из-за устаревших вспомогательных функций, установленных в БД, а также об ошибках отказа в разрешении для объектов SEQUENCE.
- Исправлена ошибка при чтении через JDBC привилегий с именами пользователей, содержащими специальные символы.
- Исправлены ошибки при построении индексов проекта и при их восстановлении после перезапуска Eclipse.
- Структура SQL-редактора теперь будет открываться с правильными состояниями фильтра после его закрытия.
4.1.3 - 2017-12-19
- pgCodeKeeper переведен в open-source под лицензией Apache 2.0.
- На панель инструментов редактора SQL добавлено действие
Отменить выполнение
, позволяющее пользователям завершать запущенный скрипт, не открывая представление EclipseProgress
. - В контекстное меню таблицы различий редактора проекта добавлены параметры «Свернуть все» и «Развернуть все».
- Счетчики объектов редактора проекта перемещены в строку состояния Eclipse.
- Действия редактора проекта перемещены обратно в редактор. Они по-прежнему доступны в главном меню pgCodeKeeper и с помощью горячих клавиш.
- Улучшена фильтрация в редакторе проектов. Добавлена возможность фильтрации подэлементов таблиц по их типам и всех объектов по их SQL-коду.
- Изменено первоначальное расположение объектов в перспективе pgCodeKeeper, чтобы обеспечить лучшую согласованность между редакторами и их панелями инструментов.
- Исправлена ошибка инициализации проекта. Мы рекомендуем пользователям проверять настройки своих проектов, чтобы узнать, подключен ли к ним сборщик pgCodeKeeper. Если это не так, рекомендуется добавить его вручную через пункт контекстного меню pgCodeKeeper — Add Builder.
- Исправлены ошибки при создании ссылок на объекты в редакторе SQL, в частности ссылок в телах функций и во внепроектных файлах.
- Исправлена ошибка, из-за которой изменение содержимого одного проекта приводило к сбросу всех редакторов проекта.
- Функция лицензирования была удалена вместе с ограничениями на использование.
- Функция «Сохраненные выборки» удалена. Вместо этого пользователи могут копировать выбранные объекты как строку регулярного выражения фильтра.
4.1.2 - 2017-11-22
- Добавлен мастер генерации тестовых данных таблицы (INSERT).
- Восстановлен функционал диалога обратной связи.
- Редактор SQL и редактор миграции объединены в один редактор SQL, который также выполняет скрипты и быстрые обновления объектов.
- Улучшены панели инструментов редактора проектов и редактора SQL. Теперь вы можете выбирать базу данных, используя выпадающий список на главной панели инструментов Eclipse.
- Скрипты миграции, сохраненные как временные файлы вне проекта, теперь всегда создаются в кодировке UTF-8.
- Исправлена ошибка в фильтре типов объектов в редакторе проекта.
4.1.0 - 2017-09-25
- Добавлена возможность работы с различными версиями PostgreSQL, в настоящее время поддерживаются версии с 9.2 по 9.6. Теперь поддерживаются различные SQL-конструкции из этих версий: CREATE FUNCTION ... TRANSFORM, CREATE FUNCTION ... PARALLEL, ROW LEVEL SECURITY. Исправлены ошибки при чтении SEQUENCSE из PostgreSQL 10.
- Добавлена поддержка объектов FOREIGN TABLE, MATERIALIZED VIEW и конструкция CREATE TABLE UNLOGGED.
- Добавлены уведомления о конфликтах имен объектов при сборке проекта.
- Добавлены фильтры объектов и типов изменений в таблице различий в редакторе проекта.
- Добавлено уведомление об ошибках, обнаруженных в sql-файлах при сравнении БД.
- Маркеры ошибок в sql-файлах отключены для проектов, отличных от pgCodeKeeper.
- Пункт pgCodeKeeper теперь виден в главном меню при работе в редакторе проекта или его файлах.
- Расширенная поддержка .-operator (точка) при использовании с вложенными составными типами и т. д.
- Имена владельцев объектов теперь заключаются в кавычки так же, как и другие идентификаторы.
- Исправлена ошибка синтаксического анализатора при чтении некорректных операторов COMMENT ON.
- Исправлена ошибка отслеживания состояния флага в таблице различий.
4.0.0 - 2017-09-11
Мы увеличиваем мажорнуб версию в этом выпуске в связи с решением сместить акцент нашей разработки на сторону SQL-IDE приложения. Другая причина — предстоящий релиз с открытым исходным кодом, который мы планируем в ближайшем будущем.
- Новый рабочий процесс для редактора миграции —
Быстрое обновление
. Если вы внесете изменения в схему непосредственно в pgCodeKeeper, теперь вы сможете сохранить свои изменения, сгенерировать миграцию, применить эту миграцию и обновить свой проект с помощью одной горячей клавиши — Ctrl+Alt+A. - Кнопки основных действий редактора проекта перенесены на панель инструментов Eclipse, а также мы назначили им горячие клавиши:
Получить изменения
— Ctrl+F5,Применить к проекту
— Ctrl+Alt+S,Применить к БД
— Ctrl+Alt+D . КнопкаДополнительные зависимости
перемещена в представление pgDependencies. - Файлы миграции теперь сохраняются в проекте (/MIGRATION) или во временном каталоге, пользователь может выбрать автоматическое удаление файлов миграций при закрытии соответствующих редакторов.
- Добавлена подсветка опасных выражений в скриптах миграции.
- Контекстное меню Project Explorer теперь показывает подменю
Show In
Eclipse для элементов проекта pgCodeKeeper. - В контекстном меню «Показать в» редактора SQL теперь есть пункт Project Explorer (позволяет пользователю быстро найти файл редактора в дереве проекта).
- Улучшена подсветка редактора и всплывающие подсказки, представление Outline, сборщик проекта, добавлены всплывающие подсказки для ошибок, обнаруженных в коде.
- Улучшен код редакторов SQL для более эффективной разработки в будущем.
- Заблокирован повторный запуск
Получить изменения
, если он уже выполняется в данном редакторе проекта.
- Исправлена ошибка, из-за которой вновь созданный проект отображался как пустой.
- Исправлена ошибка, из-за которой приложение пыталось получить доступ к последовательности без разрешения на использование его схемы.
3.11.0 - 2017-07-11
- Переработан CLI (интерфейс командной строки). Изменения включают в себя: имена опций, аргументы программы, способ передачи списков и другие. Подробности смотрите в справке CLI (запуск с помощью
--help
). - Сборщик проекта теперь ищет ссылки на несуществующие объекты в файлах sql проекта, которые помечаются как ошибки.
- Исправлена ошибка, из-за которой хелпер функции были доступны без разрешения на это.
- Исправлена ошибка в интерфейсе фильтрации таблицы различий.
3.10.0 - 2017-05-23
- Список игнорируемых объектов в настройках программы теперь можно настроить как белый список.
- Вкладки редактора проектов объединены в единый интерфейс.
- CLI-сборка для Windows теперь включает bat-скрипт для запуска.
- Добавлена поддержка конструкции типа TABLE OF.
- Добавлена поддержка конструкции ALTER COLUMN SET (options).
- Добавлена поддержка конструкции ALTER COLUMN SET STORAGE.
- Улучшено обнаружение зависимостей для выражений в командах SQL.
- Улучшена обработка ключевых слов SQL, разбор встроенных типов и функций.
3.8.6 - 2017-02-07
- Добавлена поддержка ENABLE/DISABLE RULE;
- Добавлена возможность выбирать типы объектов (--allowed-objects) для вывода в скрипте миграции в CLI версии.
- Обновлены хелпер функции JDBC на стороне сервера и нуждаются в переустановке.
- Исправлена ошибка с получением имен типов данных через JDBC.
3.8.4 - 2016-12-22
- Мастер различий был улучшен и обновлен. Его можно запустить с помощью пункта главного меню pgCodeKeeper - Diff Wizard или с помощью пункта pgCodeKeeper в контекстном меню проекта. Это позволяет пользователям сравнивать и генерировать сценарии миграции для БД, загруженных из разных источников, без создания для них проекта.
- Добавлена возможность подключаться к БД с помощью строки подключения JDBC в CLI версии.
3.8.0 - 2016-12-06
- Добавлен еще один режим чтения БД JDBC. Этот режим повышает производительность при работе с БД, содержащими большое количество схем, и при использовании соединений с ограниченной пропускной способностью. Для его использования необходимо установить в читаемую БД "вспомогательные" хранимые процедуры. Для этого откройте перспективу pgCodeKeeper (Окно - Перспектива), выберите pgCodeKeeper - Установить JDBC Performance Helpers в главном меню и примените скрипт к рассматриваемой БД. После этого новый расширенный режим чтения будет автоматически использоваться с этой БД.
- Улучшена функция игнорируемых объектов. Теперь можно определить как черный, так и рабочий списки объектов, которые можно использовать как в режимах GUI, так и в CLI.
3.7.8 - 2016-10-25
- Добавлена горячая клавиша Ctrl+F5, которая выполняет выделенную часть скрипта в редакторе миграции (или весь скрипт, если текст не выделен).
- Получение изменений в редакторе проекта теперь заполняет обе его вкладки (Обновить проект и Обновить БД). Выбор другого источника схемы БД на одной вкладке также изменяет его на другой.
- Улучшена работа с диалогом ручных зависимостей. Списки объектов в этом диалоге теперь содержат все объекты БД.
3.7.5 - 2016-10-04
- Улучшен интерфейс редактора pgCodeKeeper.
- Источники схемы БД (файлы дампа или элементы, сохраненные в Хранилище БД) теперь выбираются с помощью одного раскрывающегося списка.
- Ручной ввод параметров подключения был удален, чтобы разгрузить интерфейс и освободить место на экране.
- Панель выбранных элементов была объединена с областью текстового поля поиска, чтобы освободить место на экране.
- Другие мелкие исправления и улучшения производительности.
3.7.2 - 2016-09-20
- Добавлена возможность открытия редактора проекта pgCodeKeeper двойным щелчком по пункту «Проект pgCodeKeeper» в Project Explorer.
- Сборка проекта больше не запускается для скрытых файлов.
- Улучшена обработка изображений, устранена ошибка утечки ресурсов.
- Устранена ошибка получения индексов через JDBC.
3.7.0 - 2016-09-07
- Добавлена возможность создания маркеров синтаксических ошибок SQL, обнаруженных парсером. Ошибочные файлы отмечаются в дереве проекта, ошибочные места подчеркиваются в SQL-редакторе pgCodeKeeper (включите pgCodeKeeper SQL-редактор, щелкнув файл SQL — Открыть с помощью — pgCodeKeeper SQL-редактор правой кнопкой мыши). Для обновления маркеров в проекте убедитесь, что включен сборщик проекта pgCodeKeeper (как включить: щелкните проект правой кнопкой мыши — выберите pgCodeKeeper, затем — Добавить сборщик).
- Улучшена работа сборщика проекта pgCodeKeeper: частое обновление и плавное отображение индикатора выполнения.
3.6.2 - 2016-08-24
- Добавлена полная поддержка синтаксиса операторов PostgreSQL. Для получения дополнительной информации посетите: https://www.postgresql.org/docs/9.3/static/sql-syntax-lexical.html#SQL-SYNTAX-OPERATORS.
- Реализована возможность отправки сообщений разработчикам прямо из программы. Для отправки сообщений используйте перспективу pgCodeKeeper в Eclipse, выберите пункт меню pgCodeKeeper — Feedback.
- Улучшен интерфейс работы с настройками подключения к БД.
- Исправлена ошибка чтения привилегий объектов БД.
- Прочие исправления.
3.6.0 - 2016-08-12
- Изменен способ хранения зависимостей объектов, что позволило добавить зависимости объектов из операторов RULE.
- При генерации скрипта миграции теперь корректно учитываются индексы зависимых столбцов.
- Обновлены случаи отображения ложных различий в хранимых процедурах, возвращающих тип jsonb, и в таблицах, использующих nextval со значением в двойных кавычках в качестве значения по умолчанию.
- Исправлен анализ определений типов с атрибутом INTERNALLENGTH.
3.5.4 - 2016-06-25
- В редакторе SQL реализован переход по типам и доменам, также эти объекты добавлены в список Outline в Eclipse.
- Улучшена обработка измененных привилегий: REVOKE генерируется явно для удаленного GRANT.
- Загрузка через pg_dump по умолчанию скрыта (можно включить в настройках).
- Исправлена ошибка случайного перемешивания объектов в проекте при реэкспорте — теперь порядок объектов в табличном файле задается явно.
3.5.1 - 2016-05-18
- Добавлена поддержка объектов PostgreSQL RULE.
- Добавлена возможность скопировать сохраненный набор элементов в виде фильтра RegEx.
- Переработка парсера SQL, оптимизация и повышение производительности. Оценки оптимизации: скорость парсинга увеличена в 4 раза, требуемая память уменьшена в 2 раза.
- Оптимизирован и переработан парсер SQL. Правила SELECT и разбора выражений были переписаны с использованием левой рекурсии. Устранены двусмысленности разбора в этих правилах.
- Полностью переписан анализатор зависимостей SELECT.
- Чтение сравниваемых источников БД теперь выполняется параллельно.
- Цветовое выделение вкладок редактора необязательно.
- Справка была обновлена.
- Улучшены отчеты об ошибках JDBC.
- Исправлен переход к определению объекта в редакторе SQL.
- Другие мелкие исправления, в основном связанные с парсером.
3.4.1 - 2016-04-29
- Добавлен парсинг ORDER BY для агрегатных функции.