BT

SQLite 3.9がJSON, 式のインデックスをサポート

| 作者: Sergio De Simone , 翻訳者 吉田 英人 投稿日 2015年11月18日. 推定読書時間: 1分未満 |

原文(投稿日:2015/10/20)へのリンク

先日リリースされたSQLite 3.9には,JSONエンコード/デコードのサポート,全文検索(Full Text Search)バージョン5,式のインデックス(index on expression),エポニマス仮想テーブル(eponymous virtual table)など,数多くの新機能と拡張機能が提供されている。

新たに採用されたセマンティックバージョニング標準に従えば,今回のSQLite 3.9は,旧バージョンとの後方互換性は保証するが,新機能の導入によって前方互換性が失われる変更を含んだ新バージョン,ということになる。導入された新機能には次のものが含まれる。

  • JSONのサポート。JSON文字列の検証,JSON配列およびオブジェクト構築,値の更新/挿入/置換によるJSON文字列操作など,一連の機能を実装したjson1エクステンションで実現される。さらに2つのテーブル値関数によって,JSON文字列から,各要素を列にマッピングした仮想テーブルへの変換が可能になった。
  • 式のインデックス。テーブル列を参照する従来のインデックスに加えて,列を含む式によるインデックス定義が可能である。この機能によって,例えば,指定された口座番号に関する指定金額以上の預金変更をすべてリストアップする,といったクエリを,効率的に実行できるようになる。
    CREATE INDEX account_change_magnitude ON account_change(acct_no, abs(amt)); SELECT * FROM account_change WHERE acct_no=$xyz AND abs(amt)>=10000; 
    
  • エポニマス仮想テーブルCREATE VIRTUAL TABLEを実行せず,単にモジュール名を参照することで利用可能な仮想テーブルである。例として,データベースファイル内のbtreeとオーバーフローページに関する低レベル情報を提供するdbstat仮想テーブルなどがある。
  • 全文検索バージョン5(FTS5)。全文検索が可能な仮想テーブルを生成する,仮想テーブルモジュール。FTS5を使用した仮想テーブルの読み込みは,次のように実行する。
    CREATE VIRTUAL TABLE email USING fts5(sender, title, body); 
    
    FTS5仮想テーブルに対しては,次の3つの方法で語句を検索することができる。
    SELECT * FROM email WHERE email MATCH 'fts5'; SELECT * FROM email WHERE email = 'fts5'; SELECT * FROM email('fts5'); 
    
    この機能はまだ実験的な段階と定義されている。

その他特筆すべき機能として,CREATE_VIEW実行時の列名オプションリストの追加がある。これにより,未定義のテーブルを参照するVIEWを作成しておいて,クエリ実行時にそれをチェックすることが可能になる。

詳細については,SQLite 3.9.03.9.1のリリースノートを参照して欲しい。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション
BT