Senna APIまとめ

QL APIとDB APIについて。(今後追加改変が行われる可能性もあります)

QL API

senna.hにてシグネチャ定義。

関数名 説明
sen_db_create データベースを作成する
sen_db_open データベースを開く
sen_db_close データベースを閉じる
sen_ctx_open 同一プロセス内のデータベースに対するコンテキストを作成する(接続する)
sen_ctx_connect 別プロセス(リモート)のデータベースに接続する
sen_ctx_load Senna QLが書かれたファイルを読み込んで実行
sen_ctx_send Senna QLを実行
sen_ctx_recv Senna QLの実行結果を取得(1回で1行分)
sen_ctx_info_get 接続に関する情報を取得する

割と簡潔。データベースの削除関数は無し。ちなみにSenna QLでもテーブルの削除はできない(今のところ)。

DB API

今はlib/db.hに書いてあるだけ。たくさんある。

関数名 説明
sen_space_create スペースを作成する
sen_space_open 既存のスペースを開く
sen_space_lookup スペースからnameに対応するオブジェクトを検索して返す
sen_type_create 新たなtype(型)を定義する(複合キーを定義するための構造)
sen_proc_create 新たなproc(手続き)を定義する
sen_table_create 新たなテーブルを定義する
sen_table_open 既存のテーブルを開く
sen_table_lookup keyに対応するrecordを検索し、IDを返す
sen_table_add 新しいレコードを追加し、そのIDを返す
sen_table_get_key IDに対応するレコードのkeyを取得する
sen_table_get_value IDに対応するレコードのvalueを取得する
sen_table_set_value IDに対応するレコードのvalueを更新する
sen_table_delete keyに対応するレコードを削除する
sen_table_truncate 全レコードを一括削除する
sen_table_cursor_open レコードを順番に取り出すためのカーソルを作成する
sen_table_cursor_close カーソルを閉じる
sen_table_cursor_get_key 現在のレコードのkeyを返す
sen_table_cursor_set_value 現在のレコードのvalueを設定する
sen_table_cursor_delete 現在のレコードを削除する
sen_table_search keyにマッチするレコードを検索する
sen_table_sort テーブル内のレコードをソートし、上位n件を返す
sen_table_group 条件に従いレコードをグループ化して返す
sen_table_setoperation 2つのテーブルを集合演算して返す
sen_table_difference 2つのテーブルから重複レコードを削除した結果を返す
sen_table_column 対象テーブルのカラムを返す
sen_column_create 新たなカラムを定義する
sen_column_open 既存のカラムを開く
sen_column_set_value IDに対応するレコードのカラム値を更新する
sen_column_get_value IDに対応するレコードのカラム値のサイズを返す
sen_column_table カラムが属するテーブルを返す
sen_query_search queryにマッチするレコードを転置インデックスを用いて検索する
sen_obj_get_info スペース、テーブル、カラム(以下まとめてオブジェクト)の情報を取得する
sen_obj_set_info オブジェクトの情報を設定する
sen_obj_get_element_info オブジェクトのIDに対応するレコード情報を取得する
sen_obj_set_element_info オブジェクトのIDに対応するレコード情報を更新する
sen_obj_add_hook オブジェクトにフックを追加する
sen_obj_delete_hook オブジェクトからフックを削除する
sen_obj_remove 該当するオブジェクトのファイル一式を削除する
sen_obj_rename 該当するオブジェクトのファイル名を変更する
sen_obj_close オブジェクトを再帰的に解放する
sen_obj_path オブジェクトのファイルパスを返す
sen_obj_name オブジェクトの名前を返す
sen_obj_defrag オブジェクトに対してデフラグする
sen_obj_expire オブジェクトの占有メモリのうち、可能な領域を解放する
sen_obj_check オブジェクトのファイル整合性を検査する
sen_obj_lock オブジェクトをロックする
sen_obj_unlock オブジェクトのロックを解放する
sen_obj_clear_lock ロックを強制的に解放する
sen_obj_space オブジェクトの所属するスペースを返す
sen_space_sibling スペースの兄弟スペース(siblingは循環リスト)を返す
sen_space_child スペースの子スペースを返す