計算されるようになっている。システムコールを呼ぶときにファイルが存在しない場合はそのファイルを作成することが前提となるため。システムコールに渡すのと同じものを渡せば確実にそれと同一の挙動を取る。前提になっているため、どのような権限をそのファイルに付与するかどうかを決定付ける。エイリアスとなっている。コードを見てみると明らかにエラーの場合に呼ばれている。紐付いた値らしくなんらかの関数を呼ぶのに使用されているみたい。該当ファイルを開いたあと、ディレクトリ情報を同期する。*2そのあと、ファイル情報を内部的に保持する。ファイルを開く段階で該当ファイルが存在しない場合は作成されるようになっている。システムコールのラッパーになっているっぽい。0;}全体としてはこんな感じ。記載されていないのでまたコードを追う必要がある。テーブルのメタデータを持っているが今回はとくにそれらをいじったりしないので使っていない。ストレージエンジンの適用をやったら試してみる。sec)テーブルをストレージエンジンを指定した状態で作成する。ディレクトリ以下に次のファイルが存在した。test_table_339.sdiできたっぽい。メタデータを保持していたものの代替となっている。テーブルスペースを除く全てのテーブルスペースに存在する。文使ったら即時、ファイルが生成されたけどチェックポイントとか関係なく動作しているのかどうなのか。テーブルを開くテーブルを作成することはできたが問題は、その次に待っているテーブルをオープンするところ。これはドキュメントがめちゃくちゃ薄い。いうなら、テーブルを開くことなのにファイルロックを調べてねとしか書いていない。それ以外は本当に特に決まっていなくて、ファイルロックさえ考慮すればどう実装してもいいと思われる。それではまず、ここでやるべき事を考えていく。実装するのがここでの一番大きな目標。そのメソッドは次のように宣言されている。テーブルを開く前にロックをどのようにチェックするかが渡されるはず。エンジンをベースにしているため、以下の実装が追加されている。メンバを見ればわかる。ポインタを初期化、取得している。ポインタを格納・取得するポインタみたい。型としてキャストしている。何なのかという肝心なところがドキュメント*3に書いてない。モジュールベースで構築されている。インターフェースを介してサーバと通信する。ハンドラーは特定のテーブルを操作する必要があるスレッド毎に1つのハンドラーインスタンスを生成する。つのハンドラインスタンスが生成される。共有しているということだった。呼ばれるらしくその情報を見ると合点がいった。いうものは、テーブル毎に生成され前述の通りテーブル間で共有されるインスタンスでテーブルのメタデータを持っている。取得するべきだったらしい。生成し該当するポインタに代入して返している。その次は以下の処理が行われる。ドキュメントは以下のリンクにある。ロックを提供するものが実装されている。