Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

converted japanese texts to utf-8

  • Loading branch information...
commit 51a2a03665b9c4646d1c649a8c6866a9a00309af 1 parent d3f5871
@ahiguti authored
View
82 docs-ja/about-handlersocket.ja.txt
@@ -1,51 +1,51 @@
-----------------------------------------------------------------
-�����������ɤ����Ѥˤ����äƤ����ջ��
+ソースコードの利用にあたっての免責事項
-�ܥ��եȥ������γ�ȯ�Ԥ���ӳ��ҥǥ��������̡������ϡ��ܥե�
-���������Բ�ư����ư���ɤ�ޤ�ˡΧ�������ô����Ǥ������¾�ݾ���
-Ǥ�����ʤ���ΤȤ��ޤ����ޤ����ܥ��եȥ������γ�ȯ�Ԥ���ӳ�
-��ҥǥ��������̡������ϡ��ܥ��եȥ������ξ�������ޤ��Ϥ����ͤ�
-�������Ū���Ф���Ŭ����ˤĤ��ơ������ʤ��ݾڤ����ʤ���ΤȤ�
-�ޤ���
+本ソフトウェアの開発者および株式会社ディー・エヌ・エーは、本フト
+ウェアの不稼動、稼動不良を含む法律上の瑕疵担保責任、その他保証責
+任を負わないものとします。また、本ソフトウエアの開発者および株式
+会社ディー・エヌ・エーは、本ソフトウェアの商品性、またはお客様の
+特定の目的に対する適合性について、いかなる保証も負わないものとし
+ます。
-----------------------------------------------------------------
-handlersocket plugin�ˤĤ���
-
-mysql�����Ф˾��󤷡�innodb��Υ��ȥ졼�����󥸥�ؤ�ľ�ܤΥ�����
-�����󶡤���ץ饰����Ǥ���handlersocket�ץ饰����ϼ���Υꥹ
-�ʡ���������ѤΥ��饤����ȥ饤�֥��(libhsclient)��ȤäƤ���
-�˥����������ޤ���
-
-mysql��ɸ�९�饤����ȥ饤�֥��(libmysql)��Ȥä��������������
-�ơ��ʲ��Τ褦�����������ޤ���
-����³������˾��񤹤�꥽���������ʤ����ᡢƱ����³���¾�̵
- ��¡��������ä���³��򵤤ˤ�����³��³��Ȥ��ޤ���
-����®(ñ��ʻ��ȥ������3�ܡ�10������)��
-���̿��ץ�ȥ��뤬����ѥ��ȡ�libmysql��Ȥ��ȥǡ���ž����˥�
- ������̾�ʤɤ��տ魯�뤿����̿����Ƥ���Ĺ�Ǥ�����libhsclient��
- �ϥǡ����Τߤ�ž���뤿�ᡢ�Ӱ���񤬾��ʤ��ʤ�ޤ�������
- ��äƤ�10�ܰʾ�libmysql�Τۤ�����Ĺ�ˤʤ�ޤ���
-
-���ߤΥС������Ǥϰʲ��Τ褦�ʽ���򥵥ݡ��Ȥ��Ƥ��ޤ���
-�����ꤵ�줿���ˤĤ��ơ����ꤵ�줿�ͤȴ�����פ���褦�ʥ쥳��
- �ɤ�����(SELECT ??? FROM tbl WHERE k1 = v1 AND k2 = v2...)��
- ����Ȥ�ʤ�����ϥ��ݡ��Ȥ��Ƥ��ޤ���
-�����ꤵ�줿���ˤĤ��ơ����ꤵ�줿�ͤΰ��֤����Υ쥳���ɤ��
- ���(SELECT ??? FROM tbl WHERE k1 >= v1 LIMIT 100)
-����ҤΤ褦�ʼ��ʤǼ�������쥳���ɤ��Ф���UPDATE��DELETE
-���쥳���ɤ�INSERT
-
-�ʲ��Τ褦�ʸ��򥵥ݡ��Ȥ��ޤ���
-��C++��libhsclient���󥯤��ޤ���
-��Perl��Net::HandlerSocket��use���ޤ���
-
-���ߤΥС������Ǥ�GNU/Linux�ǤΤ�ư��ޤ���
+handlersocket pluginについて
+
+mysqlサーバに常駐し、innodb等のストレージエンジンへの直接のアクセ
+スを提供するプラグインです。handlersocketプラグインは自前のリス
+ナーを持ち、専用のクライアントライブラリ(libhsclient)を使ってそれ
+にアクセスします。
+
+mysqlの標準クライアントライブラリ(libmysql)を使ったアクセスと比べ
+て、以下のような利点があります。
+・接続あたりに消費するリソースが少ないため、同時接続数が事実上無
+ 制限。したがって接続数を気にせず持続接続を使えます。
+・高速(単純な参照クエリで3倍〜10倍程度)。
+・通信プロトコルがコンパクト。libmysqlを使うとデータ転送時にレ
+ コード名などが付随するために通信内容が冗長ですが、libhsclientで
+ はデータのみが転送されるため、帯域消費が少なくなります。場合に
+ よっては10倍以上libmysqlのほうが冗長になります。
+
+現在のバージョンでは以下のような処理をサポートしています。
+・指定された索引について、指定された値と完全一致するようなレコー
+ ドを取得。(SELECT ??? FROM tbl WHERE k1 = v1 AND k2 = v2...)
+ 索引を使わない検索はサポートしていません。
+・指定された索引について、指定された値の位置の前後のレコードを取
+ 得。(SELECT ??? FROM tbl WHERE k1 >= v1 LIMIT 100)
+・前述のような手段で取得したレコードに対するUPDATEとDELETE
+・レコードのINSERT
+
+以下のような言語をサポートします。
+C++。libhsclientをリンクします。
+PerlNet::HandlerSocketをuseします。
+
+現在のバージョンではGNU/Linuxでのみ動作します。
-----------------------------------------------------------------
-��������
+既知の問題
-��kill��handlersocket����åɤ򻦤��ȡ�����åɿ���ä��ޤ޲���
- ���ޤ���
+・killでhandlersocketスレッドを殺すと、スレッド数が減ったまま回復
+ しません。
View
80 docs-ja/installation.ja.txt
@@ -1,37 +1,37 @@
-----------------------------------------------------------------
-�ӥ�ɡ�󥹥ȡ�����ˡ(RPM)
+ビルド&インストール方法(RPM)
-ư�����Τ�ɬ�פʥѥå������ϡ�libhsclient��handlersocket��
-perl-Net-HandlerSocket��3�ĤǤ���mysql������¦��libhsclient��
-handlersocket�򡢥��饤�����¦��libhsclient��
-perl-Net-HandlerSocket�򥤥󥹥ȡ��뤹��ɬ�פ�����ޤ���
+動作させるのに必要なパッケージは、libhsclienthandlersocket
+perl-Net-HandlerSocketの3つです。mysqlサーバ側はlibhsclientと
+handlersocketを、クライアント側はlibhsclientと
+perl-Net-HandlerSocketをインストールする必要があります。
-mysql������¦��handlersocket�ץ饰�����ӥ�ɤ���ˤϰʲ���ɬ��
-�Ǥ���
+mysqlサーバ側でhandlersocketプラグインをビルドするには以下が必要
+です。
-��mysql���󥹥ȡ������Ʊ���˥��󥹥ȡ��뤵���إå�ե�����
- �����mysql���ӥ�ɤ��줿�ݤΥ��ץ������������뤿��˻�
- �Ѥ��ޤ�������Ǥ�/usr/include/mysql/�β��˥��󥹥ȡ��뤵��
- �Ƥ��뤳�Ȥ����ꤷ�Ƥ��ޤ����ѹ�����ˤ�Makefile��MYSQL_INC
- ��񤭴����Ƥ��������
-��mysql������إå�ե�����
- handlersocket�ץ饰����Υӥ����ˡ�mysql������إå�ե���
- ���mysql�Υ����������ɤ��饳�ԡ����Ƥ���ɬ�פ�����ޤ���
- ���ԡ�����ˤ�handlersocket/�ǥ��쥯�ȥ�β���./copy_hdrs.sh
- ��¹Ԥ��Ƥ�����������Ȥ��ХС������5.1.45�Υ����������ɤ�
- /path/to/mysql/source�ˤ���Ȥ��ϡ�
+・mysqlインストール時に同時にインストールされるヘッダファイル
+ これはmysqlがビルドされた際のオプション等を取得するために使
+ 用します。既定では/usr/include/mysql/の下にインストールされ
+ ていることを想定しています。変更するにはMakefileのMYSQL_INC
+ を書き換えてください。
+・mysqlの内部ヘッダファイル
+ handlersocketプラグインのビルド前に、mysqlの内部ヘッダファイ
+ ルをmysqlのソースコードからコピーしてくる必要があります。
+ コピーするにはhandlersocket/ディレクトリの下で./copy_hdrs.sh
+ を実行してください。たとえばバージョン5.1.45のソースコードが
+ /path/to/mysql/sourceにあるときは、
$ ./copy_hdrs.sh /path/to/mysql/source 5.1.45
- �Τ褦�˼¹Ԥ��ޤ���
+ のように実行します。
-���: handlersocket�ץ饰�����ӥ�ɤ���ݤˤϡ��ץ饰��������
-����mysql�ȴ���˰��פ���С������Υ����������ɤ�ȤäƤ��������
-�����Ǥ�㤦�С������Υ����������ɤ�Ȥ��ȥ���å���ʤɤθ�ư
-������뤳�Ȥ�����ޤ���
+注意: handlersocketプラグインをビルドする際には、プラグインを使用
+するmysqlと完全に一致するバージョンのソースコードを使ってください。
+少しでも違うバージョンのソースコードを使うとクラッシュなどの誤動
+作がおきることがあります。
-�ʲ��ν�˼¹Ԥ����rpm�ѥå��������ӥ�ɡ�󥹥ȡ��뤵��ޤ���
+以下の順に実行すればrpmパッケージがビルド&インストールされます。
-(mysql������¦)
+(mysqlサーバ側)
$ make clean
$ make rpm_cli
$ sudo rpm -U dist/RPMS/*/*.rpm
@@ -39,7 +39,7 @@ mysql
$ make rpm_c
$ sudo rpm -U dist/RPMS/*/*.rpm
-(���饤�����¦)
+(クライアント側)
$ make clean
$ make rpm_cli
$ sudo rpm -U dist/RPMS/*/*.rpm
@@ -47,33 +47,33 @@ mysql
$ make rpm_perl
$ sudo rpm -U dist/RPMS/*/*.rpm
-mysql��ư�������֤ǡ�mysql������ե�����(my.cnf��)�˰ʲ������Ƥ�
-�ɲä��ޤ���
+mysqlを起動した状態で、mysqlの設定ファイル(my.cnf等)に以下の内容を
+追加します。
[mysqld]
handlersocket_port = 9998
- # handlersocket����³����դ���ݡ���(���ȷϥꥯ��������)
+ # handlersocketが接続を受け付けるポート(参照系リクエスト用)
handlersocket_port_wr = 9999
- # handlersocket����³����դ���ݡ���(�����ϥꥯ��������)
+ # handlersocketが接続を受け付けるポート(更新系リクエスト用)
handlersocket_address =
- # handlersocket���Х���ɤ��륢�ɥ쥹(��Τޤޤ�OK)
+ # handlersocketがバインドするアドレス(空のままでOK)
handlersocket_verbose = 0
- # �ǥХå���
+ # デバッグ用
handlersocket_timeout = 300
- # �̿������ॢ����(��)
+ # 通信タイムアウト(秒)
handlersocket_threads = 16
- # handlersocket�Υ��������åɿ�
+ # handlersocketのワーカースレッド数
thread_concurrency = 128
- # handlersocket����Ĥ��Υ���åɤ���ͭ���뤿�ᡢ�礭���
- # �ͤ���ꤷ�Ƥ������
+ # handlersocketが幾つかのスレッドを占有するため、大きめの
+ # 値を指定してください
open_files_limit = 65535
- # �����åȤ����̤˳�����褦�ˤ��뤿�ᡢ�礭����ͤ���ꤷ
- # �Ƥ������
+ # ソケットを大量に開けるようにするため、大きめの値を指定し
+ # てください
-�ʲ��Υ������¹Ԥ��ޤ���
+以下のクエリを実行します。
mysql> install plugin handlersocket soname 'handlersocket.so';
Query OK, 0 rows affected (0.06 sec)
-�ʾ��handlersocket�إ��饤����Ȥ��饢�������Ǥ���褦�ˤʤ�ޤ���
+以上でhandlersocketへクライアントからアクセスできるようになります。
View
102 docs-ja/perl-client.ja.txt
@@ -1,47 +1,47 @@
-----------------------------------------------------------------
-handlersocket�ץ饰����ؤ���³�򳫤��ˤϡ�Net::HandlerSocket����
-�������Ȥ������ޤ���
+handlersocketプラグインへの接続を開くには、Net::HandlerSocketオブ
+ジェクトを作成します。
use Net::HandlerSocket;
my $args = { host => 'localhost', port => 9998 };
my $hs = new Net::HandlerSocket($args);
-----------------------------------------------------------------
-����ʤɤ�̿���¹Ԥ�����ˡ������оݤȤʤ���򳫤�ɬ�פ�����
-�ޤ���
+検索などの命令を実行する前に、処理対象となる索引を開く必要があり
+ます。
my $err = $hs->open_index(3, 'database1', 'table1', 'PRIMARY',
'f1,f2');
die $hs->get_error() if $res->[0] != 0;
-�ǽ�ΰ��ϳ��������դ����ֹ�Ǥ����դ����ֹ��Ʊ���
-Net::HandlerSocket���֥������ȤˤĤ��ƤΤ�ͭ��Ǥ�����4���ϳ���
-����̾��ǡ���PRIMARY�פ����ꤵ����ϥץ饤�ޥꥭ�����������
-������5���ϡ�,�פǶ��ڤ�줿��̾�Υꥹ�ȤǤ���
+最初の引数は開く索引に付ける番号です。付けた番号は同一の
+Net::HandlerSocketオブジェクトについてのみ有効です。第4引数は開く
+索引の名前で、「PRIMARY」が指定され場合はプライマリキーが開かれま
+す。第5引数は「,」で区切られた列名のリストです。
-----------------------------------------------------------------
-�ơ��֥뤫�����ȤäƹԤ�������ˤϡ�execute_single�᥽�å�
-��ƤӤޤ���
+テーブルから索引を使って行を取得するには、execute_singleメソッド
+を呼びます。
my $res = $hs->execute_single(3, '=', [ 'foo' ], 1, 0);
die $hs->get_error() if $res->[0] != 0;
shift(@$res);
-�ǽ�ΰ��Ϻ����ֹ�ǡ�Ʊ��Net::HandlerSocket���֥������Ȥ�
-open_index���դ�����ΤǤʤ���Фʤ�ޤ�����2���ˤ��������
-���ޤ������ߤΥС������Ǥϡ���=�ס���>=�ס���<=�ס���>�ס���<��
-�������Ѳ�ǽ�Ǥ�����3��������ؤλ��Ȥǡ������õ���٤��Ԥ�
-�����ͤ���ꤷ�ޤ��������Ĺ���Ϻ��Υ����θĿ��Ʊ�������ʤ���
-�Ǥʤ���Фʤ�ޤ�����4������5���Ϥ��줾�졢�����������
-���������ɤ���Ф��Կ����ꤷ�ޤ���������������б�����
-open_index�ƤӽФ�����5���ǻ��ꤵ�줿��Τˤʤ�ޤ���
-
-execute_single�᥽�åɤϾ������ؤλ��Ȥ��֤��ޤ����ǽ�����Ǥ�
-���顼�����ɤǡ����줬0�ʤ������ɽ���ޤ����Ĥ�����Ǥ�����ͤ�
-�����⤷������줿�ǡ�����ʣ��Ԥξ��ϡ����줬��Ĥ������Ϣ��
-���줿��dz�Ǽ����Ƥ��ޤ����㤨�С�5��3��Υǡ����ξ�硢���Τ�
-���ʥ����ɤˤ�äƤ������Ƥ����Ǥ��ޤ���
+最初の引数は索引の番号で、同じNet::HandlerSocketオブジェクトへ
+open_indexで付けたものでなければなりません。第2引数には操作を指定
+します。現在のバージョンでは、「=」、「>=」、「<=」、「>」、「<」
+の操作が利用可能です。第3引数は配列への参照で、これは探すべき行の
+キー値を指定します。配列の長さは索引のキーの個数と同じか少ない数
+でなければなりません。第4引数と第5引数はそれぞれ、取得する最大行
+数、取得前に読み飛ばす行数を指定します。取得される列は対応する
+open_index呼び出しの第5引数で指定されたものになります。
+
+execute_singleメソッドは常に配列への参照を返します。最初の要素は
+エラーコードで、これが0ならば成功を表します。残りの要素は列の値で
+す。もし取得されたデータが複数行の場合は、それが一つの配列へ連結
+された形で格納されています。例えば、5行3列のデータの場合、次のよ
+うなコードによってその内容を取得できます。
die $hs->get_error() if $res->[0] != 0;
shift(@$res);
@@ -53,15 +53,15 @@ execute_single
}
-----------------------------------------------------------------
-�Ԥ򹹿��ޤ��Ϻ���ˤϡ�����¿���ΰ�����ꤷ��
-execute_single�᥽�åɤ�ƤӽФ��ޤ����񤭹��߽���򤹤�ˤϡ�
-�оݤ�Net::HandlerSocket���֥������ȤϹ�����handlersocket���(��
-��Ǥϥݡ���9999)����³���줿��ΤǤʤ��ƤϤʤ�ޤ���
-(����Τ��ᡢ�ݡ���9998�ϻ��Ƚ���������դ����ݡ���9999�Ϲ���
-�������դ���褦�ˤʤäƤ��ޤ����ݡ���9999�ϻ��Ƚ�������
-���ޤ������쥳���ɥ�å���αƶ���٤��ʤ�ޤ����ݡ����ֹ��
-mysqld�Ρ�handlersocket_port�פȡ�handlersocket_port_wr�פ������
-�ܤ��ѹ��Ǥ��ޤ���)
+行を更新または削除するには、更に多くの引数を指定して
+execute_singleメソッドを呼び出します。書き込み処理をするには、
+対象のNet::HandlerSocketオブジェクトは更新用handlersocketワーカ(既
+定ではポート9999)へ接続されたものでなくてはなりません。
+(安全のため、ポート9998は参照処理だけを受け付け、ポート9999は更新
+処理も受け付けるようになっています。ポート9999は参照処理も受け付
+けますが、レコードロック等の影響で遅くなります。ポート番号は
+mysqldの「handlersocket_port」と「handlersocket_port_wr」の設定項
+目で変更できます。)
my $args = { host => 'localhost', port => 9999 };
my $hs = new Net::HandlerSocket($args);
@@ -75,28 +75,28 @@ mysqld
die $hs->get_error() if $res->[0] != 0;
my $num_deleted_rows = $res->[1];
-execute_single����6�����ѹ�����μ������ꤷ�ޤ������ߤΥС�
-�����Ǥϡ�U�פȡ�D�פ����Ѳ�ǽ�Ǥ�����U�פˤĤ��Ƥϡ���7����
-�������ͤ���ꤷ�ޤ��������������ϡ��б�����open_index�ƤӽФ�
-����5���ǻ��ꤵ�줿��Τˤʤ�ޤ�����D�פˤĤ��Ƥ���7���Ͼ�
-ά�Ǥ��ޤ���
+execute_singleの第6引数は変更処理の種類を指定します。現在のバー
+ジョンでは「U」と「D」が利用可能です。「U」については、第7引数で
+新しい値を指定します。更新される列は、対応するopen_index呼び出し
+の第5引数で指定されたものになります。「D」については第7引数は省
+略できます。
-----------------------------------------------------------------
-execute_single�᥽�åɤ���������ˤ���ѤǤ��ޤ���
+execute_singleメソッドは列の挿入にも使用できます。
my $res = $hs->execute_single(3, '+', [ 'foo', 'bar', 'baz' ]);
die $hs->get_error() if $res->[0] != 0;
my $num_inserted_rows = $res->[1];
-��3���ϡ��б�����open_index�ƤӽФ�����5������ꥹ�Ȥ�Ʊ����
-����Ĺ��������ؤλ��ȤǤʤ���Фʤ�ޤ���open_index�ƤӽФ���
-��5���˻��ꤵ��Ƥ��ʤ���ˤĤ��Ƥϡ�������δ����ͤ����åȤ���
-�ޤ���
+第3引数は、対応するopen_index呼び出しの第5引数の列リストと同じだ
+けの長さの配列への参照でなければなりません。open_index呼び出しの
+第5引数に指定されていない列については、その列の既定値がセットされ
+ます。
-----------------------------------------------------------------
-execute_multi�᥽�åɤ�Ȥ��С�ʣ��Υꥯ�����Ȥ��ĤθƤӽФ���
-�¹Ԥ��뤳�Ȥ��Ǥ��ޤ�������ϥꥯ�����Ȥ���̤˼¹Ԥ������®
-�Ǥ���
+execute_multiメソッドを使えば、複数のリクエストを一つの呼び出しで
+実行することができます。これはリクエストを個別に実行するより高速
+です。
my $rarr = $hs->execute_multi([
[ 0, '>=', [ 'foo' ], 5, 0 ],
@@ -110,9 +110,9 @@ execute_multi
}
-----------------------------------------------------------------
-���顼������������ͤ����󻲾Ȥκǽ�����Ǥ�0�ʳ��ˤʤ�ޤ������
-��ξ���I/O���顼�������ä����Ȥ򼨤������ξ��Ϥ���
-Net::HandlerSocket���֥������Ȥ��˴�����٤��Ǥ�������ͤξ���
-��³�ϰݻ��Ƥ��뤿�ᡢ���Υ��֥������ȤϤ���ʸ������ѤǤ�
-�ޤ���
+エラーが起こると返値の配列参照の最初の要素が0以外になります。負の
+数の場合はI/Oエラーが起こったことを示し、その場合はその
+Net::HandlerSocketオブジェクトは破棄するべきです。正の値の場合は
+接続は維持されているため、そのオブジェクトはそれ以後も再利用でき
+ます。
View
144 docs-ja/protocol.ja.txt
@@ -1,97 +1,97 @@
-----------------------------------------------------------------
-handlersocket���̿��ץ�ȥ���
+handlersocketの通信プロトコル
-----------------------------------------------------------------
-��ʸ
+構文
-�����ޥ�ɹԤϲ���(LF)�ǽ���롣
-�����ޥ�ɹԤ�ʣ��Υȡ����󤫤�ʤꡢ�ȡ�����֤�TAB�Ƕ��ڤ��롣
-���ȡ������NULL�ȡ����󤫡�ʸ����ȡ�����Τ����줫��
-��NULL�ȡ������ñ���NULʸ��Ǥ���蘆��롣
-��ʸ����ȡ�����ϡ�0�Х��Ȱʾ��ʸ����Ǥ���蘆��롣�����0x10
- ̤����ʸ��ˤĤ��Ƥ�0x01����֤���0x40��ä��������ɤǤ���蘆
- ��롣����ʳ���ʸ��Ϥ���ʸ��ȤΥ����ɤǤ���蘆��롣
+・コマンド行は改行(LF)で終わる。
+・コマンド行は複数のトークンからなり、トークン間はTABで区切られる。
+・トークンはNULLトークンか、文字列トークンのいずれか。
+・NULLトークンは単一のNUL文字であらわされる。
+・文字列トークンは、0バイト以上の文字列であらわされる。ただし0x10
+ 未満の文字については0x01を前置し、0x40を加えたコードであらわさ
+ れる。それ以外の文字はその文字自身のコードであらわされる。
-----------------------------------------------------------------
-�ꥯ�����Ȥȥ쥹�ݥ�
+リクエストとレスポンス
-����³����Ω����ľ��ξ��֤Ǥϡ��ޤ����饤����Ȥ����ޥ�ɹԤ���
- �롣(�ꥯ������)
-�������Фϥ��饤����Ȥ���ä��ꥯ�����Ȥ�����Ʊ����Υ��ޥ�ɹ�
- ���֤���(�쥹�ݥ�)
-���ꥯ�����Ȥϥѥ��ץ饤�󲽤��Ƥ褤���Ĥޤꥯ�饤����Ȥ����
- ��ä��ꥯ�����Ȥ��Ф����ֻ���Ԥ����˼��Υꥯ�����Ȥ���äƤ�
- �褤��
+・接続が確立した直後の状態では、まずクライアントがコマンド行を送
+ る。(リクエスト)
+・サーバはクライアントが送ったリクエストと丁度同じ数のコマンド行
+ を返す。(レスポンス)
+・リクエストはパイプライン化してよい。つまりクライアントは前に
+ 送ったリクエストに対する返事を待たずに次のリクエストを送っても
+ よい。
-----------------------------------------------------------------
-�ꥯ������
+リクエスト
-��open_index̿��ϼ��Τ褦�ʹ�ʸ���ġ�
+・open_index命令は次のような構文を持つ。
'P' indexid dbname tablename indexname fieldlist
- indexid�ϳ����Ƥ�������դ������ֹ�ǡ�Ʊ����³��Ǹ�˼¹�
- ����̿��Ρ��оݺ�����ꤹ�뤿��˻Ȥ��롣dbname��tablename��
- indexname�Ϥ��줾�쳫������DB���ơ��֥롢����̾�������̾�
- �Ȥ���"PRIMARY"����ꤹ��ȥץ饤�ޥꥭ����������롣fieldlist
- �ϥ���޶��ڤ����̾�Υꥹ�ȡ�
-��find̿��ϼ��Τ褦�ʹ�ʸ���ġ�
+ indexidは開いている索引に付けられる番号で、同一接続上で後に実行
+ する命令の、対象索引を指定するために使われる。dbname、tablename
+ indexnameはそれぞれ開きたいDB、テーブル、索引の名前。索引の名前
+ として"PRIMARY"を指定するとプライマリキーが開かれる。fieldlist
+ はカンマ区切りの列名のリスト。
+・find命令は次のような構文を持つ。
indexid op nflds v1 ... vn limit offset
- indexid�ϼ¹��оݤκ�����ꤹ�롣op�Ϻ���α黻��(���)��
- v1����vn�ϲ���Ĺ�ǡ����θĿ��nflds��nflds��indexid�ǻ��ꤵ�줿
- open_index̿���indexname�κ���fieldlist�Υե�����ɿ����
- �����������ʤ��ƤϤʤ�ʤ���m2����mk�ϲ���Ĺ�ǡ����θĿ��
- indexid�ǻ��ꤵ�줿open_index̿�᤬ȯ�Ԥ��줿�ݤ�fieldlist�˰�
- �פ��ʤ���Фʤ�ʤ������ޥ�ɹԤ�limit�ʹߤϾ�ά�Ǥ��롣limit
- ��offset�ϡ�������˹��פ�����Τ���쥹�ݥ󥹤��֤����ξ�
- �¤ȡ������åפ������limit��offset���ά�������Ϥ��줾��1
- ��0�����ꤵ�줿�Ȥ���Ʊ��ư��򤹤롣find̿��ϥ쥹�ݥ󥹤Ȥ��ơ�
- ���˹��פ�����Υꥹ�Ȥ��֤���op�Ȥ��ƻ���Ǥ���黻�Ҥϼ���
- �Ȥ��ꡣ
- '=' - v1 ... vn�Ȱ��פ����Τ����
- '>' - v1 ... vn����礭����Τ򾺽�˼���
- '>=' - v1 ... vn�˰��פ��뤫�礭����Τ򾺽�˼���
- '<' - v1 ... vn��꾮������Τ�߽�˼���
- '<=' - v1 ... vn�˰��פ��뤫����Τ�߽�˼���
- nflds��1����礭��(v1 ... vn��2�İʾ�)�Ȥ��ϼ��񼰽�����Ӥ�
- ��롣
-��find_modify̿��ϼ��Τ褦�ʹ�ʸ���ġ�
+ indexidは実行対象の索引を指定する。opは索引検索の演算子(後述)。
+ v1からvnは可変長で、その個数はnflds。nfldsはindexidで指定された
+ open_index命令のindexnameの索引のfieldlistのフィールド数に等し
+ いか小さくなくてはならない。m2からmkは可変長で、その個数は
+ indexidで指定されたopen_index命令が発行された際のfieldlistに一
+ 致しなければならない。コマンド行のlimit以降は省略できる。limit
+ とoffsetは、検索条件に合致する列のうちレスポンスに返す列数の上
+ 限と、スキップする列数。limitとoffsetを省略した場合はそれぞれ1
+ と0が指定されたときと同じ動作をする。find命令はレスポンスとして、
+ 条件に合致した列のリストを返す。opとして指定できる演算子は次の
+ とおり。
+ '=' - v1 ... vnと一致するものを取得
+ '>' - v1 ... vnより大きいものを昇順に取得
+ '>=' - v1 ... vnに一致するか大きいものを昇順に取得
+ '<' - v1 ... vnより小さいものを降順に取得
+ '<=' - v1 ... vnに一致するか等しいものを降順に取得
+ nfldsが1より大きい(v1 ... vnが2個以上)ときは辞書式順序で比較さ
+ れる。
+・find_modify命令は次のような構文を持つ。
indexid op nflds v1 ... vn limit offset modop m1 ... mk
- modop��������ʬ��find̿���Ʊ��ǡ�����ˤ�ä�����оݤιԤ�
- ���ꤹ�롣��������оݤιԤ��Ф�modop�ǻ��ꤵ�줿�ѹ������¹�
- ���롣m1 ... mk�ϲ���Ĺ�ǡ���ά�Ǥ��롣modop�ϼ������줫��
- 'U' - indexid�ǻ��ꤵ�줿open_index̿���fieldlist��
- �����Ƥ�m1 ... mk���ͤǹ������롣
- 'D' - �оݤιԤ���롣m1 ... mk���ͤ�̵�뤵��롣
-��insert̿��ϤΤ褦�ʹ�ʸ���ġ�
+ modopより前の部分はfind命令と同等で、これによって操作対象の行を
+ 指定する。その操作対象の行に対しmodopで指定された変更処理を実行
+ する。m1 ... mkは可変長で、省略できる。modopは次いずれか。
+ 'U' - indexidで指定されたopen_index命令のfieldlist列
+ の内容を、m1 ... mkの値で更新する。
+ 'D' - 対象の行を削除する。m1 ... mkの値は無視される。
+・insert命令はのような構文を持つ。
indexid '+' nflds v1 ... vn
- indexid�ǻ��ꤵ�줿�ơ��֥�ˡ�����������롣v1 ... vn�ϲ���Ĺ
- �ǡ����θĿ��nflds��nflds��indexid�ǻ��ꤵ�줿open_index̿���
- indexname�κ���fieldlist�Υե�����ɿ�������������ʤ���
- �Ϥʤ�ʤ���
+ indexidで指定されたテーブルに、列を挿入する。v1 ... vnは可変長
+ で、その個数はnflds。nfldsはindexidで指定されたopen_index命令の
+ indexnameの索引のfieldlistのフィールド数に等しいか小さくなくて
+ はならない。
-----------------------------------------------------------------
-�쥹�ݥ�
+レスポンス
-��open_index̿�᤬����Ȥ����쥹�ݥ󥹤ϼ��ι�ʸ���ġ�
+・open_index命令が成功したとき、レスポンスは次の構文を持つ。
'0' '1'
-��find̿�᤬����Ȥ����쥹�ݥ󥹤ϼ��ι�ʸ���ġ�
+・find命令が成功したとき、レスポンスは次の構文を持つ。
'0' nflds v1 ... vn
- nflds�Ϸ�̥��åȤ���ο�򤢤�魯��v1 ... vn�ϲ���Ĺ�ǡ�����
- Ĺ����nflds������ܡ�v1 ... vn�϶�Τ��Ȥ⤢�ꡢ����Ͼ��˹�
- �פ���쥳���ɤ�¸�ߤ��ʤ��ä����Ȥ򤢤�魯����̥��åȤ�ʣ��
- �Ԥˤʤä��Ȥ���v1 ... vn��Ĺ����nflds��2�ܰʾ�Ȥʤꡢ�ǽ��
- �Ԥ�����v1 ... vn�˥��åȤ���롣
-��modify̿�᤬����Ȥ����쥹�ݥ󥹤ϼ��ι�ʸ���ġ�
+ nfldsは結果セットの列の数をあらわす。v1 ... vnは可変長で、その
+ 長さはnfldsの整数倍。v1 ... vnは空のこともあり、それは条件に合
+ 致するレコードが存在しなかったことをあらわす。結果セットが複数
+ 行になったときはv1 ... vnの長さがnfldsの2倍以上となり、最初の
+ 行から順にv1 ... vnにセットされる。
+・modify命令が成功したとき、レスポンスは次の構文を持つ。
'0' '1' nummod
- nummod���ѹ����ܤ��줿�Կ�nummod��0�ΤȤ����ѹ����줿�Ԥ�̵
- ���ä����Ȥ򤢤�魯��
-��insert̿�᤬����Ȥ����쥹�ݥ󥹤ϼ��ι�ʸ���ġ�
+ nummodは変更が施された行数。nummodが0のときは変更された行が無
+ かったことをあらわす。
+・insert命令が成功したとき、レスポンスは次の構文を持つ。
'0' '1' numins
- numins��0�ޤ���1�ǡ��쥳���ɤ�������줿�Ȥ���1�������Ǥʤ��Ȥ�
- 0�ˤʤ롣
-��̿�᤬���Ԥ����Ȥ����쥹�ݥ󥹤�̿��˴ؤ�餺���ι�ʸ���ġ�
+ numinsは0または1で、レコードが作成されたときは1、そうでないとき
+ 0になる。
+・命令が失敗したとき、レスポンスは命令に関わらず次の構文を持つ。
err '1' message
- err��0�ʳ��ο��ͤǡ����顼�����ɤ򤢤�魯��message�Ͽʹֲ��ɤ�
- ���顼��å�������
+ errは0以外の数値で、エラーコードをあらわす。messageは人間可読な
+ エラーメッセージ。
Please sign in to comment.
Something went wrong with that request. Please try again.