DataGrip 2024.3 の新機能

Text-to-SQL のエディター内差分表示、SQL エラーを処理するための AI Assistant アクション、グリッド UI の改善などがあります!

AI Assistant 機能

AI Assistant による SQL エラーの処理

AI Assistant で SQL クエリの実行エラーを処理するため、いくつかの便利なアクションを実装しました。 DataGrip が各エラーメッセージの右端に Explain with AI(AI で説明)と Fix with AI(AI で修正)という 2 つのアクションを表示するようになりました。

Explain with AI(AI で説明)を使用すると AI チャットが開いて自動プロンプトが送信され、AI Assistant によるエラーの説明が表示されます。

Fix with AI(AI で修正)は、クエリ実行エラーに対する修正をエディター内に生成します。

Text-to-SQL: 生成された結果に対するエディター内差分表示

エディター内での AI Assistant の操作エクスペリエンスを改善しました。

コードに何らかの処理を行うように AI Assistant に依頼した際、エディターに元のコードと生成されたコードの差分が表示されるようになりました。 AI Assistant の提案は違う色でハイライトされ、ガターには Revert(元に戻す)ボタンが表示されます。

また、差分表示内で生成されたクエリを編集することもできます。 自分で行った変更も同じようにハイライトされます。

たとえば AI Assistant にクエリでより多くのデータを取得するように依頼した後、生成された結果に ORDER BY 句を追加することができます。

これら 2 つの新しいアクションは、Fix SQL Problem Under Caret(キャレット位置の SQL の問題を修正)と Explain SQL Problem Under Caret(キャレット位置の SQL の問題を説明)と同じように動作します。

この機能が適切な説明と修正を提案できるようにするには、データベーススキーマの添付が必要です。

データの操作

フローティングページネーションツールバー

データエディター内のグリッドのページングを認識しやすくするため、このコントロールをツールバーからデータエディターの下中央に移動しました。

このコントロールをツールバーに戻すには、IDE の設定を開いて Database(データベース)| Data Editor and Viewer(データエディターとビューアー)に移動し、 Position of the grid pagination control(グリッドページネーションコントロールの位置)までスクロールして Data editor toolbar(データエディターツールバー)を選択します。

エディター内の結果グリッドを拡幅

従来はエディター内結果グリッドの幅に上限がありました。 このバージョンからはグリッドがエディターの全幅に自動的に調整されるようになり、より多くのデータを表示できるようになりました。

コードエディター

選択したテキストの出現箇所をハイライト

DataGrip がデフォルトでファイル内で選択したテキストのすべての出現箇所を自動的にハイライトするようになりました。 これにより、コード全体で選択したテキストの出現箇所を追跡しやすくなります。

過剰な数の JOIN 句に対するインスペクション

場合によっては、JOIN 句の数が過剰なクエリを実行することは推奨されません。それによってパフォーマンスが低下するためです。 エディターがそのようなクエリを特定し、ハイライトできるようになりました。

このインスペクションは IDE の設定で有効にできます。 Editor(エディター)| Inspections(インスペクション)に移動し、SQL セクションを展開して Excessive JOIN count(過剰な JOIN 数)を選択してください。

テーブル値関数のサポート BigQuery

BigQuery のテーブル値関数(TVF)のサポートを改善しました。 DataGrip が TVF とその戻り値の列の両方を正しく検出できるようになりました。

接続

部分イントロスペクションとスマートリフレッシュ MySQL MariaDB

DataGrip で部分イントロスペクションがサポートされるようになりました。

従来のイントロスペクターは MySQL または MariaDB データベースのスキーマの完全イントロスペクションのみを実行可能で、単一オブジェクトのメタデータをリフレッシュできませんでした。 コンソール内で DDL ステートメントが実行されるたびにデータベーススキーマ内のオブジェクトが変更される可能性があったため、IDE はスキーマ全体の完全イントロスペクションを開始していました。 この動作には時間がかかるため、作業の流れが中断されることもしばしばでした。

このバージョンの DataGrip は DDL ステートメントを解析し、その影響を受けた可能性があるオブジェクトを突き止め、そのオブジェクトをリフレッシュできるようになっています。

データベースエクスプローラー内で単一の項目を選択して Refresh(リフレッシュ)アクションを呼び出すと、以前のようにスキーマ全体ではなく、その特定のオブジェクトのみがリフレッシュされます。

バグ修正

  • DBE-21843: 大きなテーブルの最初の行が消えなくなりました。
  • DBE-20350: Qualify object with: Database(データベースでオブジェクトを修飾)コード補完機能が意図したとおりに動作するようになりました。
  • DBE-21526: データベースオブジェクトのコンテキストメニューでコンテキストライブテンプレートが使用できない問題が解決されました。
  • DBE-18445: MySQL ST_SRID 関数がサポートされるようになりました。
  • DBE-19042: MySQL GRANT ステートメントで複数のロールがサポートされるようになりました。
  • DBE-19984: MySQL block_encryption_mode システム変数がされるようになりました。
  • DBE-16521: MariaDB クエリコンソールでの一時テーブルのサポートが改善されました。
  • DBE-19041: MySQL MariaDB SET ROLESET DEFAULT ROLE ステートメントがサポートされるようになりました。
  • DBE-14986: SQL Server 関数呼び出しでの同義語の解決が期待どおりに動作するようになりました。
  • DBE-15201: SQL Server 関数補完時のスキーマ修飾が期待どおりに動作するようになりました。
  • DBE-21204: SQL Server CURSOR 宣言の OPTION キーワードがサポートされるようになりました。
  • DBE-3771: Oracle USING 句内の修飾された列のインスペクションが追加されました。
  • DBE-3772: Oracle NATURAL JOIN 句内の修飾された列のインスペクションが追加されました。
  • DBE-5657: Oracle PARTITION 句の自動補完が期待どおりに動作するようになりました。
  • DBE-10459: Oracle BEGIN の自動補完がサポートされるようになりました。
  • DBE-17022: Oracle ON COMMIT PRESERVE DEFINITION がサポートされるようになりました。
  • DBE-21014: Oracle パッケージヘッダーで宣言されている CURSOR の解決が意図したとおりに動作するようになりました。
  • DBE-20309: Oracle 関数呼び出しに対する列の解決が意図したとおりに動作するようになりました。
  • DBE-21006: Oracle レコード型に対する列の解決が意図したとおりに動作するようになりました。