Что нового в DataGrip 2022.2

Встречайте DataGrip 2022.2! Это второе крупное обновление в 2022 году. Рассказываем, что вошло в этот релиз!

Импорт нескольких CSV-файлов

Мы улучшили процедуру импорта файлов: теперь можно выбрать несколько CSV-файлов и импортировать их одновременно.

Режимы разрешения Playground и Script

Чтобы разрешать объекты базы данных в SQL-скриптах, DataGrip нужно понимать, что эти объекты обозначают. Без этого автодополнение будет работать некорректно, а использования объектов не будут рассматриваться как ссылки.

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

  • Все объекты были разрешены, но скрипт не запускался в базе данных.
  • При включенной опции Auto-qualify объекты иногда оставались неквалифицированными, если находились в базе данных или схеме по умолчанию.
  • Если в разных базах данных или разных схемах было несколько объектов с одним и тем же именем, существующие столбцы не удавалось разрешить, и даже действие Expand column list иногда генерировало неправильный список. В то же время существовал риск разрешения несуществующих столбцов.

Причина проблем заключалась в том, что для каждой консоли и локального файла IDE разрешала объекты в контекст, выбранный в верхнем правом выпадающем меню, и в базе данных или схеме по умолчанию (или в настройке SQL Resolution scopes).

Это подходило для работы со скриптами, в которых есть USE или SET SEARCH PATH, меняющие контекст. Однако IDE нужно понимать, куда обращаться в начале файла. Поэтому база данных или схема по умолчанию (или запись из SQL Resolution scopes) рассматривалась как наиболее подходящий контекст для начала файла.

Другими словами, если в файле нет операторов USE или SET SEARCH PATH, IDE не должна пытаться разрешить начало файла куда-то за пределы контекста. Чтобы исправить ситуацию, мы нашли способ, как указать IDE, какому подходу следовать, и представляем два режима разрешения: Playground и Script.

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

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

Переключаться между режимами просто: используйте выпадающее меню на панели инструментов, как на скриншоте.

Генерация кода

Новое окно Modify

Обновленное окно Modify, первоначальный вариант которого мы представили в версии 2022.1, теперь используется по умолчанию. Начиная с DataGrip 2022.2, все дочерние объекты таблицы можно добавлять и редактировать в этом окне.

До выхода следующей версии DataGrip на старый интерфейс можно переключиться в контекстном меню.

Поддержка сопоставлений и кодировок SQL Server

Правила сопоставления и кодировки теперь генерируются вместе с DDL таблицы.

Категории в списке сочетаний клавиш

Раньше все действия, связанные с базами данных, в списке сочетаний клавиш были разбросаны по четырем разделам. В этом не было никакой логики — просто так сложилось за время развития IDE.

Чтобы вам было проще найти все доступные действия, мы собрали их в большую папку Database.

Группы файлов в источниках данных DDL

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

Прочее

Объединение окон на macOS

На macOS теперь можно объединить все открытые окна проекта: они отобразятся в виде вкладок в одном окне. Это действие вы найдете в меню Window.

Предупреждение об истечении срока действия пароля Oracle, Vertica

Базы данных Oracle и Vertica предупреждают об истечении срока действия пароля. Теперь DataGrip извлекает эту информацию и показывает предупреждение после активации Test Connection.

Базовая поддержка DuckDB, Mimer SQL и Apache Ignite

Мы поддержали еще три базы данных: DuckDB, Mimer SQL и Apache Ignite.

Редактор данных

Улучшения

  • DBE-10971: Порядок таблиц теперь сохраняется в редакторе данных.
  • DBE-7888: Исправлена ошибка в выпадающем списке месяцев при выборе даты — там снова есть февраль.
  • DBE-15454: Бинарные столбцы со смешанными типами содержимого теперь можно редактировать.
  • DBE-7804: Исправлена ошибка импорта CSV, из-за которой не импортировалась последняя строка, если последнее значение пусто и нет новой строки.
  • DBE-15335: Экстрактор SQL-Insert-Multirow генерирует правильный запрос.
  • DBE-14980: При открытии быстрой документации для ячеек соответствующие данные загружаются автоматически.
  • DBE-15639: Объекты Origin и Target в окне Migration представления DDL diff теперь отображаются с правильной стороны.
  • DBE-15694: Теперь поддерживается сопоставление семейств операторов.
  • DBE-15644: PostgreSQL Режим Fire теперь учитывается при дампе в источник данных DDL.
  • DBE-8557: Azure SQL Database SET ROWCOUNT выполняется перед запросами Azure для ограничения размера страницы.

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

Улучшения

  • DBE-996: Строка поиска больше не скрывает панель инструментов.
  • DBE-11616: ClickHouse MODIFY ORDER BY поддерживается в ALTER TABLE.
  • DBE-14643: SQL Server Предупреждение Condition is always false больше не появляется при назначении переменной.
  • DBE-12232: SQL Server Добавлена поддержка CHANGETABLE.
  • DBE-13312: SQL Server Добавлена поддержка END CONVERSATION.
  • DBE-12435: SQLite PRAGMA_TABLE_INFO и PRAGMA_TABLE_XINFO обрабатываются корректно.
  • DBE-14997: PostgreSQL Столбцы обрабатываются корректно при использовании CTE с INSERT INTO.