やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

SQLite3コア関数 sqlite_*

 SQLite3メタデータ取得。

成果物

情報源

構文

select sqlite_compileoption_get(N);
select sqlite_compileoption_used(X);
select sqlite_offset(X);
select sqlite_source_id();
select sqlite_version();
関数 概要
sqlite_compileoption_get 指定位置にあるコンパイルオプション名を返す(pragma_compile_options
sqlite_compileoption_used 引数がコンパイルオプション名なら有効か否かを真偽値で返す
sqlite_offset DBファイルの先頭からデータレコードまでの間にあるオフセット値を返す。要SQLITE_ENABLE_OFFSET_SQL_FUNCコンパイルオプション
sqlite_source_id SQLite3のソースコードバージョン値を返す
sqlite_version SQLite3のバージョン値を返す

select sqlite_version();
3.29.0
select sqlite_source_id();
2019-07-10 17:32:03 fc82b73eaac8b36950e527f12c4b5dc1e147e6f4ad2217ae43ad82882a88bfa6

select sqlite_compileoption_get(0);
ALLOW_URI_AUTHORITY
select sqlite_compileoption_used(sqlite_compileoption_get(0));
1
select sqlite_compileoption_used('SQLITE_ENABLE_OFFSET_SQL_FUNC');
0

create table T(A integer);
insert into T values(0);
select sqlite_offset((select * from T));

select sqlite_offset('T.A');

 sqlite_offset()は使えていない。SQLITE_ENABLE_OFFSET_SQL_FUNCコンパイルオプションが無効だから。

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux

前回まで