SQLite3で2000以上のフィールドを使う

SQLite3はデフォルトで最大フィールド数が2000のようだ。

しかし、自分でコンパイルすれば最大32767まで増やすことができる。

そしてSQLite3には非常に簡単に自分でコンパイルできるソースコード公開されている

一番上の「C source code as an amalgamation」というのをダウンロード・解凍すると、

 

・shell.c

・sqlite3.c

・sqlite3.h

・sqlite3ext.h

 

という4つのファイルが出てくる。WindowsでVisualStudio2019をとそのコマンドラインツールをインストールしていれば例えば64bit nativeコードを作りたければ、まず

x64 Native Tools Command Prompt for VS 2019

を起動し、例えば最大16384フィールドまで扱えるバイナリを作りたければ上記のソースコードがあるディレクトリに移動して

 

cl shell.c sqlite3.c -Fesqlite3ex.exe /D "SQLITE_MAX_COLUMN=16384" /O2

 

と打てば少し時間はかかるものの、sqlite3ex.exeという自分だけのSQLite3ができる。

macOSLinuxでもgccがインストールされていれば同様に

 

gcc -o sqlite3ex -O2 -DSQLITE_MAX_COLUMN=16384 shell.c sqlite3.c -lpthread -ldl -lm

 

でバイナリができる。-O2は速度重視の最適化オプションのようで、これを外せばもっとコンパイル時間は短くなる。