Что нового в DataGrip 2023.1

Встречайте DataGrip 2023.1! Этот релизный цикл был для нас особенным: мы сконцентрировались на качестве и работали над исправлением багов, которые накопились в нашем трекере. Смотрите, что нам удалось исправить.

Работа с кодом

  • DBE-4469: Мы исправили ошибку, из-за которой SQL Formatter не применял нужный стиль к подзапросу в условии EXISTS. Теперь все работает как надо.

DataGrip также может добавлять пробел между ключевым словом EXISTS и открывающей круглой скобкой. Если вы хотите, чтобы было по-старому (без пробела), выберите значение No для настройки Space after keyword в разделе Preferences | Editor | Code Style | SQL (вкладка Queries).

  • DBE-14440: Мы исправили ошибку, связанную с сохранением настроек стиля. Если у вас был настроен специальный стиль для SQL2016, но не установлен флажок Inherit general SQL style в Preferences, нужно будет настроить стиль заново.

  • DBE-15973 BigQuery: Поддержано предложение WINDOW.
  • DBE-9219 ClickHouse: При автодополнении имен с фиксированным регистром настройки регистра теперь игнорируются.
  • DBE-14796 MySQL: Исправлены проблемы с функциями LAG и LEAD.
  • DBE-16311 MySQL: Добавлена поддержка FOR UPDATE во вложенных запросах.
  • DBE-12139 MySQL: Теперь поддерживается синтаксис ENCRYPTION.
  • DBE-13186 Microsoft SQL Server: Исправлена инспекция, которая ошибочно сообщала об избыточном коде.
  • DBE-11946 PostgreSQL: Исправлена проблема с Place constraints.
  • DBE-6276 PostgreSQL: DDL-навигация по политикам безопасности теперь работает как надо.
  • DBE-17490 PostgreSQL: SQL-генератор теперь правильно расставляет кавычки в ограничениях EXCLUDE.
  • DBE-11727, DBE-11500 BigQuery: Исправлено некорректное разрешение псевдонимов в запросах UNNEST.
  • DBE-17291, DBE-17449 ClickHouse: Поддержаны столбцы EPHEMERAL и условия INTERSECT и EXCEPT.
  • DBE-13506 MongoDB: Исправлена ошибка автодополнения вложенных свойств в SQL.

Проводник баз данных

  • DBE-17263: Статистика содержимого источника данных вновь отображается в окне Quick Documentation.

  • DBE-17166: Переименованные папки больше не исчезают из проводника.
  • DBE-10812 PostgreSQL: Команда Drop в контекстном меню работает корректно.

Интроспекция

  • Oracle: Вас ждет несколько улучшений для ускорения интроспекции на первом уровне. Это особенно заметно, когда используется быстрый внутренний каталог.

    Проверьте, есть ли у вас разрешения SELECT_CATALOG_ROLE и SELECT ANY DICTIONARY. Они дают вам доступ к внутреннему каталогу Oracle, и интроспекция значительно ускоряется, потому что обычные каталоги Oracle довольно медленные.

    Подробнее об интроспекции Oracle.

  • DBE-12578 Oracle: Поддержаны межсхемные триггеры баз данных. Можно создать триггер X в схеме A для таблицы E в схеме B, и он будет отображаться в схеме B под таблицей E.
  • DBE-6986 MySQL: Поддержано условие/синтаксис ROW_FORMAT.
  • DBE-10603 Microsoft SQL Server: Quick Definition теперь работает корректно.
  • DBE-9087 PostgreSQL: При использовании условия REFERENCING DDL триггера генерируется правильно.
  • DBE-12404 Db2: Устранена проблема прерывания интроспекции объектов. Если права пользователя не позволяли получить список пользователей базы данных, то остальные объекты базы данных тоже не загружались. Теперь в таком случае загружается все, кроме списка пользователей.
  • DBE-17330 MySQL: DDL таблицы обновляется после изменения комментария в диалоге Modify.
  • DBE-15555 Redshift: Мы исправили проблему производительности. Продолжительность интроспекции значительно сократилась.

Соединение

  • DBE-16417 Microsoft SQL Server: Обнаружение текущей схемы теперь работает для любой базы данных.
  • DBE-11012 SQLite: Нативная библиотека SQLite теперь распаковывается в системную папку.
  • DBE-7466 Microsoft SQL Server: Исправлена проблема с подключением через pg_bouncer.

Редактор объектов

  • DBE-16393: В окно Modify добавлен редактор исходного текста.

  • DBE-17329 PostgreSQL: Создавать виртуальные представления теперь можно и в режиме «только для чтения».

Просмотр и редактирование данных

  • DBE-3572: Мы добавили настройку Alternate row colors для таблиц результатов. Когда установлен флажок, строки будут чередоваться по цветам.

  • DBE-16250: При отображении результатов в редакторе больше нет пустого пространства, так как высота таблица теперь подстраивается под количество результатов.

  • DBE-17434: В заголовке редактора данных используется правильный цвет шрифта.
  • DBE-17292 PostgreSQL: Окно Quick Doc больше не зависает при подсчете строк.
  • Обращение в поддержку: Предварительный просмотр изображений работает корректно.
  • DBE-16576 PostgreSQL: Теперь можно изменить значение в представлении со столбцом ENUM.
  • DBE-14722 Oracle: Поддержаны столбцы JSON.
  • DBE-14303 BigQuery: В значениях TIMESTAMP правильно отображаются миллисекунды.
  • DBE-13329 MongoDB: Добавлено действие Change Default для настройки размера страницы по умолчанию.

Консоль запросов

  • DBE-14074: Именованные параметры определяются правильно.
  • DBE-10555: IDE теперь правильно анализирует выделение при копировании и вставке.
  • DBE-17362: Переключатель схем в новом интерфейсе работает корректно.
  • DBE-12109 Oracle: В агрегатных функциях Oracle больше не опускаются точки с запятой.
  • DBE-16871 BigQuery: Ошибка Unexpected value больше не всплывает при предварительном просмотре таблицы.
  • DBE-17479: Исправлены проблемные запросы с уведомлением Read access is allowed from inside read-action (or EDT) only в консоли Query.
  • DBE-12787, DBE-12109 Oracle: CREATE PROCEDURE и CREATE FUNCTION теперь оканчиваются точкой с запятой, как и ожидается.
  • MongoDB: Исправлена потеря значений в IN (...), если их больше 10.

Разрешение SQL

  • DBE-16831: В Preferences | Database | Query execution | Other добавлена настройка для указания режима разрешения по умолчанию, используемого в консоли.

  • DBE-5497 Oracle: Мы исправили несколько проблем с методами коллекций Oracle:
    • Публичные синонимы теперь правильно помещаются в схему PUBLIC.
    • Рекурсивные ссылки на вложенные процедуры разрешаются правильно.
    • Ссылки на параметры курсора, определяемые именем курсора, разрешаются правильно.
    • IDE сообщит о неправильном использовании %TYPE в виде предупреждения.
  • DBE-12772 Oracle: Исправлено разрешение стандартных атрибутов типов коллекций (например, COUNT).
  • DBE-12758 Oracle: Теперь поддерживаются атрибуты типа.
  • DBE-11949 Oracle: Именованные аргументы в вызовах конструктора типов разрешаются правильно.
  • DBE-16452 Oracle: клавиатурная навигация теперь работает для пакетов.

Поиск и навигация

  • DBE-12015 Oracle: При навигации к процедуре теперь по умолчанию вы переходите к ее реализации, а не к заголовку.

Диаграммы

  • DBE-17137: Исправлена ошибка, из-за которой IDE показывала диаграмму Explain Plan только для первого из нескольких запросов.
  • DBE-16238: При сохранении диаграммы больше не возникает ошибок.

Генерация SQL

  • DBE-17229: Окно сравнения схем теперь работает правильно: раньше оно открывалось пустым, если были включены объекты базы данных или сервера.
  • Microsoft SQL Server, PostgreSQL, Db2: Теперь можно использовать опцию Specify next value for sequences для управления поведением последовательностей, имеющих стартовое значение.

Если опция Specify next value for sequences не включена, DataGrip генерирует DDL последовательности, добавляя стартовое значение к START WITH start_value.

Если же опция включена, DataGrip добавляет в DDL следующее значение, которое должна иметь последовательность, с некоторыми отличиями для следующих баз данных:

  • Microsoft SQL Server: Вместо стартового значения последовательности в условии RESTART WITH в инструкциях CREATE и ALTER указывается следующее значение.
  • PostgreSQL: Вместо стартового значения последовательности в условии START WITH в инструкции CREATE указывается следующее значение. Стартовое значение указывается в условии START WITH, а следующее значение — в условии RESTART WITH в инструкции ALTER.
  • Db2: Вместо стартового значения последовательности в условии START WITH в инструкции CREATE указывается следующее значение последовательности. Следующее значение указывается в RESTART WITH в инструкции ALTER (в Db2 изменение стартового значения не допускается).