やってみる

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

SQLite3非組込関数(未分類)

 13関数。まともに使えなかったものが多い。

成果物

一覧

lsmode

select lsmode(493); -- 8進数755
?rwxr-xr-x

optimize

select optimize(0);
Error: unable to use function optimize in the requested context

 情報なし。

sha3

select sha3(0);
����B���U�����6o
�����d����

sha3_query

select sha3(0,1);
Error: SHA3 size should be one of: 224 256 384 512
select sha3(0,512);
-D�S����6X7��6'�   �A�6���h�˜�[9

shell_int32

 謎。

select shell_int32(0, 0);





select shell_int32(hex(0xFF), 0);
858927925

shell_putsnl

 謎。

select shell_putsnl('A');
A
A

shell_module_schema

select shell_module_schema('sqlite_master');
/* sqlite_master(type,name,tbl_name,rootpage,sql) */

 コメントアウトを解除して先頭にCREATE TABLEを付与すると、sqlite_master表のsql列値になるっぽい。

shell_escape_crnl

select shell_escape_crnl('AAA');
AAA

 quote()と同じくシングルクォートするとあるが、そうは見えない。

 改行コードをエスケープするようにみえたが、そうでもなさそう。

select shell_escape_crnl('A
B');
A
B
select shell_escape_crnl('A\nB');
A\nB

 なんなの?

shell_add_schema

select shell_add_schema('create table T(A text);', 0);
Error: wrong number of arguments to function shell_add_schema()
select shell_add_schema('create table T(A text);');
Error: wrong number of arguments to function shell_add_schema()

 使えなかった。

sqlar_compress

select sqlar_compress('A');
A

 圧縮されていない。コンパイル時にどうやってzlibとリンクさせていいかわからなかったから。

sqlar_uncompress

select sqlar_uncompress(sqlar_compress('AAA'), hex(sqlar_compress('AAA'))/2);
Error: error in uncompress()

 エラー。どうやって使うの……。第1引数はzip圧縮blob, 第2引数はそのサイズで合っていると思うのだが。そもそも圧縮されていないのが問題か。

zipfile_cds

select zipfile_cds('a.zip');
Error: unable to use function zipfile_cds in the requested context

 zipfile_cdsは何なのかわからん。

zipfile

 zipfile.zipファイルを展開してテーブルにする。

echo 'AAA' > a.txt
zip a.zip a.txt
.headers on
select * from zipfile('a.zip');
name|mode|mtime|sz|rawdata|data|method
a.txt|33188|1568438851|4|AAA
|AAA
|0

所感

 使えないものが多い。無念。

参考

対象環境

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

前回まで