仕事で goccy/bigquery-emulator を眺めていた時、大雑把な仕様が「BigQuery の SQL 方言(ZetaSQL クエリ)を受け付け、SQLite 方言に変換して SQLite(DB)にクエリする」だと知った。この仕様を自作 OSS へ横展開できることに気づいた。「nao1215/filesql と nao1215/sqly を同じ仕様で拡張して、任意の SQL 方言でクエリを実行できるのでは?」と。
知らない読者向けに説明すると、filesql は任意のファイルフォーマットを SQLite3 に取り込むライブラリであり、sqly は filesql を用いてファイルに SQL を実行するコマンドである。sqly(filesql)は、SQL パーサーの実装が難易度高かったので、SQLite3 にパースを委譲している(詳細は実装当時の記事を参照してください)。sqly は実装当初から noborus/trdsql などの先発ツールに負けており、trdsql は MySQL や PostgreSQL とも接続できる強みがあった。安易に真似すると RDBMS サーバーをセットアップする労力がかかるので、私は避けていた。しかし、SQL 方言間の変換であれば、環境構築の労力が増えないので許容でき、ユーザーは使い慣れた SQL を実行できるメリットがあると判断した。現在、お試し実装中である。
なお、filesql は巨大なライブラリに成りつつあり、v1.0.0 前に API を整理するかもしれない。どうせ誰も filesql を使っていないので、気軽に変更できる。金融専用のフォーマットを導入した辺りでカオスになった。