Skip to main content
ドキュメントへの更新が頻繁に発行されており、このページの翻訳はまだ行われている場合があります。 最新の情報については、「英語のドキュメント」を参照してください。

データベースのファイナライズ

[プラミング] データベース作成の最後の手順。

GitHub CodeQL は、インストール時にユーザーごとにライセンスされます。 CodeQL は、ライセンスの制限の下で特定のタスクでのみ使用できます。 詳しくは、「CodeQL CLI について」を参照してください。

GitHub Advanced Security ライセンスがある場合は、CodeQL を使用して、自動分析、継続的インテグレーション、継続的デリバリーを行うことができます。 詳しくは、「GitHub Advanced Security について」を参照してください。

This content describes the most recent release of the CodeQL CLI. For more information about this release, see https://github.com/github/codeql-cli-binaries/releases.

To see details of the options available for this command in an earlier release, run the command with the --help option in your terminal.

構文

Shell
codeql database finalize [--dbscheme=<file>] [--threads=<num>] [--ram=<MB>] [--mode=<mode>] <options>... -- <database>

説明

[プラミング] データベース作成の最後の手順。

codeql database init を使って作成され、その後 codeql database trace-command を使って分析データをシード処理したデータベースをファイナライズします。 これは、新しいデータベースに対してクエリを実行する前に行う必要があります。

主なオプション

<database>

[必須] 構築中の CodeQL データベースへのパス。 これは、codeql database init を使って抽出するために準備されている必要があります。

--db-cluster オプションを指定した場合、これはデータベース自体ではなく、データベースを "含む" ディレクトリであり、これらのデータベースはすべてまとめて処理されます。**

--[no-]db-cluster

コマンド ラインで指定されたディレクトリがデータベース自体ではなく、構築中の 1 つ以上のデータベースを "含む" ディレクトリであることを示します。** これらのデータベースはまとめて処理されます。

--additional-dbs=<database>[:<database>...]

[詳細設定] 構築中の追加の CodeQL データベースへのパス。 これらは、それ自体はファイナライズされませんが、それらのデータは、作成される最終化されたデータベースに含まれます。 これは高度なオプションであり、すべてのケースで望ましい効果が得られるとは限りません。 詳しくは、codeql database import に関するドキュメントを参照してください。

--db-cluster オプションが指定されている場合、これらは個々の CodeQL データベースではなくデータベース クラスターであることが期待されます。

(注: Windows では、パスの区切り記号は ; です)。

--no-cleanup

[詳細設定] ファイナライズ後にすべてのデータベース クリーンアップを抑制します。 デバッグが目的の場合に役立ちます。

--no-pre-finalize

[詳細設定] アクティブな CodeQL エクストラクターによって指定された事前ファイナライズ スクリプトをスキップします。

--[no-]skip-empty

[詳細設定] ビルド中にソース コードが表示されず、データベースが空の場合は、失敗するのではなく警告が出力されます。 空のデータベースは、ファイナライズされないままになります。

TRAP インポート操作を制御するオプション

-S, --dbscheme=<file>

[詳細設定] TRAP ファイルが準拠していると見なされる自動検出された dbscheme 定義をオーバーライドします。 通常、これはデータベースの抽出元から取得されます。

-j, --threads=<num>

インポート操作には、この多くのスレッドを使ってください。

既定値は 1 です。 0 を渡して、マシン上のコアごとに 1 つのスレッドを使ったり、N を渡して、N 個のコアを未使用のままにしたりすることができます (ただし、その場合でも、少なくとも 1 つのスレッドが使われます)。

-M, --ram=<MB>

インポート操作には、この量のメモリを使ってください。

低レベルのデータセット クリーンアップ オプション

--max-disk-cache=<MB>

中間クエリ結果のディスク キャッシュで使うことができる最大容量を設定します。

このサイズが明示的に構成されていない場合、エバリュエーターによって、データセットのサイズとクエリの複雑さに基づき、"妥当な" 量のキャッシュ スペースを使うことが試みられます。 この既定の使用量よりも高い制限を明示的に設定すると、追加のキャッシュが有効になり、後のクエリが高速化されます。

--min-disk-free=<MB>

[詳細設定] ファイル システムの空き領域の目標量を設定します。

--max-disk-cache が指定されていない場合、ファイル システムの空き容量がこの値を下回ると、エバリュエーターによってディスク キャッシュの使用量を抑えることが試みられます。

--min-disk-free-pct=<pct>

[詳細設定] ファイル システムの空き領域の目標割合を設定します。

--max-disk-cache が指定されていない場合、ファイル システムの空き容量がこの割合を下回ると、エバリュエーターによりディスク キャッシュの使用量を抑えることが試みられます。

-m, --mode=<mode>

キャッシュをどのくらい積極的にトリミングするかを選びます。 以下を選択できます。

brutal: キャッシュ全体を削除し、新しく抽出されたデータセットの状態にトリミングします

normal "(既定値)": 明示的に "キャッシュされた" 述語を除くすべてをトリミングします。**

light: ディスク キャッシュに対して定義されたサイズ制限を確認し、必要な数の中間値を削除します。

--cleanup-upgrade-backups

データベースのアップグレードに起因するすべてのバックアップ ディレクトリを削除します。

インポートされた TRAP をチェックするためのオプション

--[no-]check-undefined-labels

[詳細設定] 未定義のラベルのエラーを報告します。

--[no-]check-unused-labels

[詳細設定] 未使用のラベルのエラーを報告します。

--[no-]check-repeated-labels

[詳細設定] 繰り返しラベルのエラーを報告します。

--[no-]check-redefined-labels

[詳細設定] 再定義されたラベルのエラーを報告します。

--[no-]check-use-before-definition

[詳細設定] 定義される前に使われたラベルのエラーを報告します。

--[no-]fail-on-trap-errors

[詳細設定] トラップのインポート中にエラーが発生した場合、0 以外で終了します。

--[no-]include-location-in-star

[詳細設定] 元の TRAP ファイル内の場所をエンコードするエンティティ ID を構築します。 TRAP ジェネレーターのデバッグに役立つ場合がありますが、データセット内で多くの領域を占有します。

共通オプション

-h, --help

このヘルプ テキストを表示します。

-J=<opt>

[詳細設定] コマンドを実行している JVM にオプションを指定します

(スペースを含むオプションは正しく処理されないことにご注意ください)。

-v, --verbose

出力される進行状況メッセージの数を段階的に増やします。

-q, --quiet

出力される進行状況メッセージの数を段階的に減らします。

--verbosity=<level>

[詳細設定] 詳細レベルを、errors、warnings、progress、progress+、progress++、progress+++ のいずれかに明示的に設定します。 -v-q がオーバーライドされます。

--logdir=<dir>

[詳細設定] タイムスタンプと実行中のサブコマンドの名前を含む生成された名前を使って、指定されたディレクトリ内の 1 つまたは複数のファイルに詳細なログを書き込みます

(完全に制御できる名前でログ ファイルを書き込むには、代わりに --log-to-stderr を指定し、必要に応じて stderr をリダイレクトします)。