DataGrip 2022.2 の新機能

DataGrip 2022.2 がリリースされました! 2022 年で 2 回目となるメジャーアップデートでは、さまざまな機能改善が行われています。 では、その内容を見てみましょう!

複数 CSV ファイルをインポートするオプション

複数の CSV ファイルを選択してまとめてインポートする機能を実装することで、ファイルのインポート処理を強化しました!

Playground(プレイグラウンド)と Script(スクリプト)解決モード

DataGrip は SQL スクリプトのデータオブジェクトを解決するため、オブジェクトの意味を理解する必要があります。 これは、IDE がコードを正しく補完し、オブジェクトの使用箇所をリンクとして処理するために必要です。

一般的に、解決コンテキストは実行中のコンテキストに一致する必要がありますが、DataGrip が簡単に処理できるタスクではありません。 このため、最近までは解決に関する問題が複数存在していました。 発生する問題としては次のようなものがあります:

  • すべてのオブジェクトが解決されているものの、データベースでスクリプトが実行されない。
  • Auto-qualify(自動修飾)オプションがオンの状態でオブジェクトがデフォルトのデータベースまたはスキーマに配置されている場合、オブジェクトが未修飾のままになる場合がある。
  • 異なるデータベースまたはスキーマに同じ名前のオブジェクトが複数ある場合、既存の列の解決に失敗し、Expand column list(列リストの展開)アクションを実行しても、生成されるリストが誤っていることがある。 同時に、存在しない列が解決されるリスクもありました。

これらの問題は、DataGrip が各コンソールまたはローカルファイルに対して右上のドロップダウンメニューで選択されたコンテキストデフォルトのデータベースまたはスキーム(または SQL Resolution scopes(SQL 解決スコープ)設定の入力)の両方を用いてオブジェクトを解決していたことが原因で発生していました。

これは、コンテキストを切り替える USE または SET SEARCH PATH ステートメントを含むスクリプトを操作している場合には問題ではありませんでしたが、 IDE はファイルの先頭では解決先を知っておく必要もあります。 そのため、デフォルトのデータベースまたはスキーマ(または SQL Resolution scopes(SQL の解決スコープ)設定の入力フォーム)をファイルの先頭に最適なコンテキストとして処理していました。

言い換えると、ファイルに USE または SET SEARCH PATH ステートメントが存在しない場合、DataGrip はファイルの先頭箇所をコンテキスト外の情報により解決すべきではありません。 この状況を解決するため、Playground(プレイグラウンド)と Script(スクリプト)という 2 つの解決モードを導入することで、DataGrip にどちらのアプローチに従うべきかを伝える手段を作りました。

Playground(プレイグラウンド)モードでは、DataGrip はすべてのオブジェクトをそのコンテキスト、つまりスキーマ選択ツール、解決スコープ、またはデフォルトデータベースの値を用いて解決します。 ファイルが他とは関連性がなく、相互に独立した特定の順序が適用されないクエリ一式である場合に最適です。 クエリコンソールでは、Playground(プレイグラウンド)モードがデフォルトに設定されています。

Script(スクリプト)モードでは、ファイルの先頭では指定されたコンテキストにより解決されますが、スクリプトに USE ステートメントが使用されている場合、それらはスクリプトの順次ロジックの一部であるため、解決のためにコンテキストが変更されます。 これは、クエリに順次ロジックがあり、単一のスクリプトとして実行する必要がある場合に適した選択肢です。 ローカルファイルでは、Script(スクリプト)モードがデフォルトに設定されています。

モードは簡単に切り替えられます。 スクリーンショットにあるように、ツールバーのドロップダウンメニューを使用してください。

コード生成

新しい Modify(変更) UI

新しい Modify(変更)UI がデフォルトのオプションになりました。この UI の基本バージョンは、2022.1 リリースで導入されていました。 DataGrip 2022.2 からは、この新しい UI を使用してテーブルのすべての子オブジェクトの追加と編集を行えます。

このリリースサイクルでは、コンテキストメニューから以前の UI をそのまま使用することができます。

照合順序と文字セットのサポート SQL Server

照合順序と文字セットがテーブルの DDL を使用して生成されるようになりました。

キーマップのカテゴリ

従来、データベースの機能に関連するすべてのアクションは、キーマップ内の 4 箇所に格納されていました。 この構造は過去の IDE 開発によって生まれたものであり、それ自体はあまり合理的ではありませんでした。

使用可能なすべてのアクションを見つけやすくするため、この構造を再編成し、Database の親グループの下にすべてのアクションをグループ化しました。

DDL データソースのスコープ

DDL データソースのソースとして、ファイルスコープを設定できるようになりました。 これにより、DDL データソースのフォルダーを簡単にフィルターすることができます。 たとえば、サブフォルダーを除外できます。

その他

macOS の Merge All Project Windows(すべてのプロジェクトウィンドウをマージ)アクション

macOS ユーザー向けに、開いているすべてのプロジェクトウィンドウを単一のウィンドウ内のタブに変換してマージする機能が導入されました。 このアクションは、Window(ウィンドウ) メニューから使用できます。

パスワード期限切れに関する警告 Oracle、Vertica

Oracle および Vertica データベースで、パスワードの期限切れが迫っていることを知らせる警告が表示されるようになりました。 Test Connection(接続のテスト)が有効になると、DataGrip がこの情報を取得して表示します。

DuckDBMimer SQL、および Apache Ignite の基本サポート

新たに DuckDBMimer SQL、および Apache Ignite の 3 つのデータベースを基本サポートの対象に追加しました。

データエディター

品質の改善

  • DBE-10971: データエディターでテーブルの順序が保存されるようになりました。
  • DBE-7888: 日付ピッカーで「2 月」が復活しました。
  • DBE-15454: コンテンツタイプが混在するバイナリ列を編集できるようになりました。
  • DBE-7804: 最後の値が空であり、改行が存在しない場合でも、CSV インポートが最後の行で失敗しなくなりました。
  • DBE-15335: SQL-Insert-Multirow のエクストラクターが正しいクエリを生成できるようになりました。
  • DBE-14980: セルの クイックドキュメントを開くと、関連するデータが自動的に読みこまれるようになりました。
  • DBE-15639: DDL diff(DDL 差分)プレビューの Migration(移行)ウィンドウで、OriginTarget オブジェクトが誤って配置されてしまう問題が修正されました。
  • DBE-15694: 演算子族のマッチングがサポートされるようになりました。
  • DBE-15644: PostgreSQL DDL データソースにダンプする際に、Fire モードが認識されるようになりました。
  • DBE-8557: Azure SQL Database SET ROWCOUNT が Azure クエリの前に実行されるようになり、ページサイズを制限できるようになりました。

クエリコンソール

品質の改善

  • DBE-996: 検索バーによって、ツールバーが非表示になる問題が解決されました。
  • DBE-11616: ClickHouse MODIFY ORDER BYALTER TABLE でサポートされました。
  • DBE-14643: SQL Server 変数の代入時に、condition is always false(条件は常に false です)警告が表示されなくなりました。
  • DBE-12232: SQL Server CHANGETABLE がサポートされるようになりました。
  • DBE-13312: SQL Server END CONVERSATION がサポートされるようになりました。
  • DBE-12435: SQLite PRAGMA_TABLE_INFO および PRAGMA_TABLE_XINFO テーブルが正しく解決されるようになりました。
  • DBE-14997: PostgreSQL CTEINSERT INTO と使用する際に、列が正しく解決されるようになりました。