GQL 状態コードリファレンス

Microsoft FabricでGQLクエリを実行すると、結果とともにステータス情報が表示されます。 公開のクエリAPIステータスコードとクエリエンジンが報告する標準的なGQLSTATUSは必ずしも同じではありません。 この記事では両方の使い方を説明します。

APIステータスコードのクエリ

クエリAPIは、プライマリ status.code フィールドに少数のコードを使用します。

APIステータスコード Meaning
00000 少なくとも1行の結果が入った状態で成功。
00001 結果が省略されたまま成功。 将来のDDLおよびDMLサポート用に予約されています。
01000 警告や情報提供の条件。 説明と診断を確認してください。
02000 現在、行を生成するクエリから結果行は利用できません。 結果に nextPageが含まれていれば、実行はまだ進行中であり、結果をポーリングで確認できます。
42000 構文、アクセスルール、またはその他のユーザーが訂正可能なクエリエラー。
50000 システムエラー、またはその他の非機密エラー。

広範なアプリケーション制御フローには status.codeをご利用ください。 ステータス説明は文章が異なるので、細読みしないでください。

標準クエリエンジン GQLSTATUS

クエリAPIは、各ステータスオブジェクトのdiagnosticsレコードの_graphaneGqlStatusメンバーにクエリエンジンから標準的なGQLSTATUSを保持します:

"_graphaneGqlStatus": {
  "gqlType": "STRING",
  "value": "22012"
}

例えば、数値オーバーフローやゼロでの割り算はユーザーが訂正可能な誤りなので、どちらも 42000 を公開 status.codeとして使います。 診断値が標準的なGQLSTATUS 22003 と 22012を区別します。

以下の表は一般的なGQLSTATUS値を一覧にしています。 クエリエンジンは、より具体的な条件に対して追加値を報告することができます。

GQLSTATUS Meaning
00000 少なくとも1行のクエリ完了。
00001 結果が省略されたまま成功。
02000 行生成クエリのためのノーデータ条件。
01M11 結果が不完全です。 結果は短縮された。
22000 一般的なデータ例外。 このコードは、より特定の原発病状の原因として現れることがあります。
22003 数値値が範囲外で、リテラル、演算、集約、キャストのオーバーフローなどが含まれます。
22012 0 で除算します。
42000 一般的な構文エラーやアクセスルール違反。
G2000 グラフ型違反。

プライマリステータス、 additionalStatusesのエントリー、入れ子状 cause ステータスはそれぞれ独自の診断記録と標準的なGQLステータスを持ちます。