7.3.6. リターンコード

7.3.6.1. 概要

リターンコードは処理が成功したかどうかを示すために使われます。もし、処理が成功していなければリターンコードはエラーの種類を示します。

リターンコードはCのAPIでもクエリーAPIでも使われます。CのAPIでは grn_ctx_t::rc でリターンコードを確認できます。クエリーAPIではヘッダー要素を見るとリターンコードを確認できます。クエリーAPIでのヘッダー要素については 出力形式 を参照してください。

7.3.6.2. 一覧

以下はリターンコードの一覧です。 GRN_SUCCESS (= 0) は処理が成功したことを示しています。負の値のリターンコードはエラーの種類を表しています。 GRN_END_OF_DATA は特別なリターンコードです。このリターンコードはCのAPIでだけ使われていて、クエリーAPIにはでてきません。

  • 0: GRN_SUCCESS

  • 1: GRN_END_OF_DATA

  • -1: GRN_UNKNOWN_ERROR

  • -2: GRN_OPERATION_NOT_PERMITTED

  • -3: GRN_NO_SUCH_FILE_OR_DIRECTORY

  • -4: GRN_NO_SUCH_PROCESS

  • -5: GRN_INTERRUPTED_FUNCTION_CALL

  • -6: GRN_INPUT_OUTPUT_ERROR

  • -7: GRN_NO_SUCH_DEVICE_OR_ADDRESS

  • -8: GRN_ARG_LIST_TOO_LONG

  • -9: GRN_EXEC_FORMAT_ERROR

  • -10: GRN_BAD_FILE_DESCRIPTOR

  • -11: GRN_NO_CHILD_PROCESSES

  • -12: GRN_RESOURCE_TEMPORARILY_UNAVAILABLE

  • -13: GRN_NOT_ENOUGH_SPACE

  • -14: GRN_PERMISSION_DENIED

  • -15: GRN_BAD_ADDRESS

  • -16: GRN_RESOURCE_BUSY

  • -17: GRN_FILE_EXISTS

  • -18: GRN_IMPROPER_LINK

  • -19: GRN_NO_SUCH_DEVICE

  • -20: GRN_NOT_A_DIRECTORY

  • -21: GRN_IS_A_DIRECTORY

  • -22: GRN_INVALID_ARGUMENT

  • -23: GRN_TOO_MANY_OPEN_FILES_IN_SYSTEM

  • -24: GRN_TOO_MANY_OPEN_FILES

  • -25: GRN_INAPPROPRIATE_I_O_CONTROL_OPERATION

  • -26: GRN_FILE_TOO_LARGE

  • -27: GRN_NO_SPACE_LEFT_ON_DEVICE

  • -28: GRN_INVALID_SEEK

  • -29: GRN_READ_ONLY_FILE_SYSTEM

  • -30: GRN_TOO_MANY_LINKS

  • -31: GRN_BROKEN_PIPE

  • -32: GRN_DOMAIN_ERROR

  • -33: GRN_RESULT_TOO_LARGE

  • -34: GRN_RESOURCE_DEADLOCK_AVOIDED

  • -35: GRN_NO_MEMORY_AVAILABLE

  • -36: GRN_FILENAME_TOO_LONG

  • -37: GRN_NO_LOCKS_AVAILABLE

  • -38: GRN_FUNCTION_NOT_IMPLEMENTED

  • -39: GRN_DIRECTORY_NOT_EMPTY

  • -40: GRN_ILLEGAL_BYTE_SEQUENCE

  • -41: GRN_SOCKET_NOT_INITIALIZED

  • -42: GRN_OPERATION_WOULD_BLOCK

  • -43: GRN_ADDRESS_IS_NOT_AVAILABLE

  • -44: GRN_NETWORK_IS_DOWN

  • -45: GRN_NO_BUFFER

  • -46: GRN_SOCKET_IS_ALREADY_CONNECTED

  • -47: GRN_SOCKET_IS_NOT_CONNECTED

  • -48: GRN_SOCKET_IS_ALREADY_SHUTDOWNED

  • -49: GRN_OPERATION_TIMEOUT

  • -50: GRN_CONNECTION_REFUSED

  • -51: GRN_RANGE_ERROR

  • -52: GRN_TOKENIZER_ERROR

  • -53: GRN_FILE_CORRUPT

  • -54: GRN_INVALID_FORMAT

  • -55: GRN_OBJECT_CORRUPT

  • -56: GRN_TOO_MANY_SYMBOLIC_LINKS

  • -57: GRN_NOT_SOCKET

  • -58: GRN_OPERATION_NOT_SUPPORTED

  • -59: GRN_ADDRESS_IS_IN_USE

  • -60: GRN_ZLIB_ERROR

  • -61: GRN_LZO_ERROR

  • -62: GRN_STACK_OVER_FLOW

  • -63: GRN_SYNTAX_ERROR

  • -64: GRN_RETRY_MAX

  • -65: GRN_INCOMPATIBLE_FILE_FORMAT

  • -66: GRN_UPDATE_NOT_ALLOWED

  • -67: GRN_TOO_SMALL_OFFSET

  • -68: GRN_TOO_LARGE_OFFSET

  • -69: GRN_TOO_SMALL_LIMIT

  • -70: GRN_CAS_ERROR

  • -71: GRN_UNSUPPORTED_COMMAND_VERSION

  • -72: GRN_NORMALIZER_ERROR

  • -73: GRN_TOKEN_FILTER_ERROR

  • -74: GRN_COMMAND_ERROR

  • -75: GRN_PLUGIN_ERROR

  • -76: GRN_SCORER_ERROR

  • -77: GRN_CANCEL

  • -78: GRN_WINDOW_FUNCTION_ERROR

  • -79: GRN_ZSTD_ERROR

  • -80: GRN_CONNECTION_RESET

7.3.6.3. 参考

  • 出力形式 はクエリーAPIでのレスポンスの中でどこにリターンコードがあるかを説明しています。

  • GQTP: GQTPプロトコルもステータスとしてリターンコードを使っていますが、ステータスは2バイトの符号なし整数です。そのため、GQTPプロトコルでは、負の値のリターンコードは正の値のステータスになります。GQTPプロトコルのステータスの値を2バイトの符号付き整数として扱うとステータスをリターンコードに変換できます。