Senna APIまとめ
QL APIとDB APIについて。(今後追加改変が行われる可能性もあります)
QL API
関数名 | 説明 |
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 | スペースの子スペースを返す |