調べてみた。
拡張方法
1. コンパイルオプション
- オプションを有効にすることで使える機能を増やす
- 他のバイナリをリンクさせて使える機能を増やす
ICUなどはバイナリを静的リンクさせねば使えないっぽい。やってみたいけど難しそう。
2. 動的ロード
拡張機能をC言語で書いてライブラリ化する。それを動的ロードして使う。動的ロードの自動化は設定ファイルでできるらしい。
~/.sqliterc
.load ./pcre.so
とくに正規表現とgenerate_seriesが気になる。
3. C言語APIによる開発
create_function
関数を実装する。
インタフェースの資料は以下。
- https://www.sqlite.org/cintro.html
- https://www.sqlite.org/c3ref/intro.html
- https://www.sqlite.org/rescode.html
所感
SQLite3はやりこみ要素に満ち溢れている。やりこめられそう。
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-11-13
- bash 4.4.12(1)-release
- SQLite 3.29.0
$ uname -a Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux