【誰もいないから】インメモリDBを作ろう【今のうち】 (30レス)
【誰もいないから】インメモリDBを作ろう【今のうち】 http://toro.open2ch.net/test/read.cgi/db/1396865687/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
11: 1 [] 2014/07/07(月)19:46:07 ID:YkjIc2l9U 落ちてなかった! やっと仕事が一段落したので作成再開。 selectにしろwhereにしろ一時的なtableを作成するという考え方を採用すると 全てがクリアになります。 joinの前にテーブルのカラムの持ち方とwhereを実装します。 カラムは今までは名前だったけどテーブル名と名前で管理する事にします。 joinしたときとかに区別できるように。後々の演算にも便利。カラム名だけで参照 した場合には、登録順で一番最初にマッチした名前になります。カラムには将来の拡張の ために数値、文字などのenumも持たせておきます。 あと一応複数のテーブルを扱えるようにDatabaseクラスも用意します。Databaseクラスは TableクラスのSetです。 whereの実装はカラム名や定数を比較して行毎に比較します。合致していれば元テーブルから 1行コピーするイメージです。カラムは予めカラム名か文字かの比較をしておいてこれを 引数に行ごとにマッチングするかの関数を作ります。将来は文字としての比較演算子>と 数値としての比較演算子>を区別できるように頭の隅っこにはいれておきます。 データベースはインメモリだからちまちま転送するよりもドカンとコピーした方が早い はずです。だからWhereやSelectもなるべくまとめて転送するようにします。幸いvector は代入可能なのでこれを最大限に利用します。Joinでは2つのvectorを合体させることで 1行を作るようなうまい処理ができるといいなぁと思っています。 ということで結構改造しましたがギリギリ300行でCreate,Insert,Select,Whereが 実装できました。次回こそJoinやります。 http://ideone.com/e.js/mBlsfd http://toro.open2ch.net/test/read.cgi/db/1396865687/11
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 19 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.056s