Diary?

2009-12-09
Wed

(23:49)

Caty リリース 4 の作業をしつつその後のバージョンに入れる機能の開発とかやってるわけだが、リリース 5 は JSON ストレージの他に RPC アプリケーションも同梱しようかと思ってる。クライアントサイドで JavaScript 使って入力値の検証するときとかに便利そうじゃん。まあそっちの方は実は全然たいした作業じゃなさげなのでいいとして、問題は JSON ストレージだ。いや、基本的な部分はもう実装してるんだが、クエリの組み立てが前のやり方よりはシンプルとはいえちと複雑だからな。今は次のようなクエリが動く程度。

strg:create-table person //person 型に対して person テーブルを作成
{"name": "鍬田 力", "job": "プログラマー"} | strg:insert person // 挿入
{"name": "鍬田 力"} | strg:select person // 検索

早く次のような検索クエリを投げられるようにしたい。

{"name": @_LIKE "鍬田 %"} | strg:select person // ワイルドカードで検索
{"job": @_OR ["プログラマー", "Web デザイナー", "コンサルタント"]} 
    | strg:select person // どれか一つに一致

ちなみに Python 側の API はおおよそ次のような感じになる。

# storage は JSON ストレージへのアクセッサ
storage.insert({"name": "鍬田 力", "job": "プログラマー"})
storage.select({"name": like("鍬田 %")})
storage.select({"job": _or(["プログラマー", "Web デザイナー", "コンサルタント"])})

できれば今週中にこれは完成させたいなー。

Creative Commons
この怪文書はクリエイティブ・コモンズ・ライセンスの元でライセンスされています。引用した文章など Kuwata Chikara に著作権のないものについては、それらの著作権保持者に帰属します。