From 3f619478f796eddbba6e39502fe941b285dd97b1 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 4 May 2024 20:00:34 +0200 Subject: Adding upstream version 1:10.11.6. Signed-off-by: Daniel Baumann --- plugin/handler_socket/docs-ja/protocol.ja.txt | 180 ++++++++++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 plugin/handler_socket/docs-ja/protocol.ja.txt (limited to 'plugin/handler_socket/docs-ja/protocol.ja.txt') diff --git a/plugin/handler_socket/docs-ja/protocol.ja.txt b/plugin/handler_socket/docs-ja/protocol.ja.txt new file mode 100644 index 00000000..46cc9932 --- /dev/null +++ b/plugin/handler_socket/docs-ja/protocol.ja.txt @@ -0,0 +1,180 @@ + +---------------------------------------------------------------------------- +handlersocketの通信プロトコル + +---------------------------------------------------------------------------- +基本的な構文 + +・HandlerSocketのプロトコルは行ベース。各行は改行文字(0x0a)で終わる。 +・各行は複数のトークンからなり、トークン間はTAB文字(0x09)で区切られる。 +・トークンはNULLトークンか、文字列トークンのいずれか。 +・NULLトークンは単一のNUL文字(0x00)であらわされる。 +・文字列トークンは、0バイト以上の文字列であらわされる。ただし0x10未満の文字 + については0x01を前置し、0x40を加えたコードであらわされる。それ以外の文字は + その文字自身のコードであらわされる。 + +---------------------------------------------------------------------------- +リクエストとレスポンス + +・HandlerSocketのプロトコルは単純なリクエスト・レスポンスプロトコルになって + いる。接続が確立した後は、まずクライアントがリクエストを送る。 +・サーバは、クライアントが送ったリクエストと丁度同じ数の行(レスポンス)を返 + す。 +・リクエストはパイプライン化してよい。つまりクライアントは前に送ったリクエス + トに対する返事(レスポンス)を待たずに次のリクエストを送ってもよい。 + +---------------------------------------------------------------------------- +インデックスを開く + +open_index命令は次のような構文を持つ。 + + P [] + +- は数字で、同一接続上で後に実行する命令の、対象索引を指定するため + に使われる。 +- , , は文字列で、それぞれDB名、テーブル名、 + 索引の名前を指定する。として「PRIMARY」を指定するとプライマリ + キーが開かれる。 +- はカンマ区切りの列名のリスト。 +- はカンマ区切りの列名のリスト。これは省略することができる。 + +このopen_index命令が実行されると、HandlerSocketプラグインは指定されたDB、 +テーブル、索引を開く。開かれた索引は接続が閉じられるまで開かれたままになる。 +開かれた索引はの数字で識別される。もし既にに指定された番号 +の索引が既に開かれている場合は古いほうが閉じられる。このはなるべく +小さな数字を使ったほうが効率が良い。 + +---------------------------------------------------------------------------- +データ取得 + +find命令は次のような構文を持つ。 + + ... [LIM] [IN] [FILTER ...] + +LIMは次のようなパラメータの並び + + + +INは次のようなパラメータの並び + + @ ... + +FILTERは次のようなパラメータの並び + + + +- は数字で、これは同じ接続上で過去に実行したopen_index命令に指定さ + れた数字でなければならない。 +- は比較演算子で、現在のバージョンでは '=', '>', '>=', '<', '<=' をサ + ポートしている。 +- は後に続くパラメータ ... の長さ。この値は対応するopen_index + 命令のパラメータで指定された索引のキー列の数と同じか小さいもの + でなければならない。 +- ... は取得するべきキーの値を指定するパラメータ。 +- LIMは省略できる。は数字で、これはSQLのLIMITと同じように + はたらく。省略した場合は1と0を指定した場合と同じ動作をする。FILTERによっ + て読み飛ばされたレコードはにカウントされない。 +- INは省略できる。指定されると、これはSQLの WHERE ... IN のように動作する。 + は対応するopen_index命令のパラメータで指定された索引の + キー列の数より小さいものでなければならない。INが指定されたときは、find命 + 令の ... のうち番目の値は無視される。 +- FILTERは省略できる。これは行取得の際のフィルタを指定する。は + 'F'(filter)か'W'(while)のいずれかでなければならない。は比較演算子。 + は数字で、これは対応するopen_index命令ので指定された列の + 数より小さいものでなければならない。複数のフィルタを指定することもでき、 + その場合は各フィルタのANDと解釈される。'F'と'W'の違いは、条件にあてはま + らない行があったときに'F'は単にそれをスキップするが、'W'はその時点でルー + プを抜けるという点。 + +---------------------------------------------------------------------------- +更新と削除 + +find_modify命令は次のような構文を持つ。 + + ... [LIM] [IN] [FILTER ...] MOD + +MODは次のようなパラメータの並び + + ... + +- は'U', '+', '-', 'D', 'U?', '+?', '-?', 'D?'のいずれか。'?'が付いた + ものは付いていないものとほぼ同じ動作をするが、付いていないものがレスポン + スとして更新された行の数を返すのに対し、付いているものは更新される前の行 + の内容を返す点のみが異なる。'U'は更新、'D'は削除、'+'はインクリメント、 + '-'はデクリメントを実行する。 +- ... はセットされる各列の値。 ... の長さは対応する + open_index命令のの長さと等しいか小さくなければならない。が + 'D'のときはこれらのパラメータは無視される。が'+'か'-'のときは、これら + の値は数値でなければならない。が'-'で、それが負数から正数、または正数 + から負数へ列の値を変更するようなものであった場合は、値は変更されない。 + +---------------------------------------------------------------------------- +行の挿入 + +insert命令は次のような構文を持つ。 + + + ... + +- は後に続くパラメータ ... の長さ。これは対応するopen_indexの + の長さに等しいか小さくなければならない。 +- ... はセットされる各列の値。指定されないかった列についてはその列 + のデフォルト値がセットされる。 + +---------------------------------------------------------------------------- +認証 + +auth命令は次のような構文を持つ。 + + A + +- は現在のバージョンでは'1'のみが有効。 +- 指定されたが、サーバの設定の'handlersocket_plain_secret'や + 'handlersocket_plain_secret_wr'に指定された文字列と一致した場合にのみ認証 + は成功する。 +- HandlerSocketの認証が有効になっているときは、この'auth'が成功しない限りそ + れ以外の命令は全て失敗する。 + +---------------------------------------------------------------------------- +open_indexに対するレスポンス + +open_index命令が成功したとき、レスポンスは次の構文を持つ。 + + 0 1 + +---------------------------------------------------------------------------- +findに対するレスポンス + +find命令が成功したとき、レスポンスは次の構文を持つ。 + + 0 ... + +- はfind命令の対応するopen_index命令に指定したの長さに + 一致する。 +- ... は結果セット。もしN行がfind命令で見つかったなら、 ... + の長さは ( * N )になる。 + +---------------------------------------------------------------------------- +find_modifyに対するレスポンス + +find_modify命令が成功したとき、レスポンスは次の構文を持つ。 + + 0 1 + +- は変更された行の数。 +- 例外として、が'?'の付いたものであった場合には、find命令に対するレスポ + ンスと同じ構文のレスポンスを返す。 + +---------------------------------------------------------------------------- +insertに対するレスポンス + +insert命令が成功したとき、レスポンスは次の構文を持つ。 + + 0 1 + +---------------------------------------------------------------------------- +authに対するレスポンス + +auth命令が成功したとき、レスポンスは次の構文を持つ。 + + 0 1 + -- cgit v1.2.3