- go-readline-ny をv1.9.0 へ更新。completion.CmdCompletion2 を使うようにした
- go-multiline-ny を v0.20.2 へ更新。コメントにも色(黄色)をつけるようにした
Jan 20, 2025
- go-multiline-ny を v0.18.4 , go-readline-ny を v1.7.1 へ更新
- プリフィックスキー(Esc) が押下された時に、
Esc-
とecho するようにした - Esc → Enter キーに入力確定を割り当てた
- プリフィックスキー(Esc) が押下された時に、
- エラーが発生したとき、トランザクションを始めないようにした。
- 入力されたSQL中の予約語にはシアン、文字列にはマゼンダなどの色をつけるようにした。
Nov 21, 2024
- トランザクション中はプロンプトを
SQL>
ではなくSQL*
とするようにした - コピペの邪魔にならないよう、入力後、継続プロンプトを削除するようにした
- edit文: ヘッダに SQL と説明を表示するようにした
- go-readline-ny を v1.6.2 へ更新
- 履歴を元にした行単位の予想入力のサポート
- Linux デスクトップのターミナルで、複数行を貼り付けた時、二行目以降が欠ける不具合を修正
- go-multiline-ny を v0.17.0 へ更新
- インクリメンタルサーチ実装 (Ctrl-R)
- Windows の旧ターミナルで、カーソルが上に移動しない問題を修正
- Linux デスクトップのターミナルで、Backspace キーで改行を削除できない不具合を修正(Ctrl-H は可能)
- 画面行数を越える長い行の編集時、スクロール行数がおかしくなる不具合を修正
Sep 21, 2024
- #3 v0.15.0 以降で y/n の問合せで panic が発生する不具合を修正
Sep 19, 2024
- 空入力だけで panic が起きてしまう不具合を修正
- ライブラリとして利用できるよう、main パッケージを cmd/sqlbless に分離した
Jul 28, 2024
- modernc.org/sqlite v1.31.0 での windows/386 対応にともない、SQLite3 ドライバーをgithub.com/glebarez/go-sqlite に一本化。全てのアーキテクチャでPureGo化
Jun 10, 2024
- セルの入力チェックに失敗した時、失敗した入力値を破棄せず、修正を促すようにした
- FLOAT, DOUBLE, REAL, SERIAL, YEAR という語句を含む型も数値扱いするようにした
- ヒストリ参照前の変更テキストが保存されるのが最新エントリだけだったのを、全エントリに対して、今の入力が確定されるまで保存するようにした
- コマンド第二引数のデータソース名がドライバー名を接頭語として含んでいれば、第一引数のドライバー名は省略できるようにした
- コマンド引数のデータソース名に空白が含まれていても引用符で囲まなくてもよくした
-debug
オプション指定時、desc
コマンドが発行している SQL を表示するようにした-term string
オプション: セミコロンのかわりに使うSQL の終了文字を指定 (-term "/"
で、Oracle の PL/SQL が実行可能になった)- MySQL では
?parseTime=true&loc=Local
をデフォルトとした edit
: カラム名に空白が含まれているとき、カラム名を二重引用符で囲むようにして、SQLをエラーにしないようにした
-debug
指定時、d
もしくはx
でデバッグ用ヘッダー行がクリアできる問題を修正-debug
オプション指定時、ColumnType.ScanType() が nil を返すカラムがあると、edit
コマンドが panic する不具合を修正
Jun 4, 2024
- テーブルが一つもない時の
desc
コマンドのメッセージを修正
: table not found
→no tables are found
- スプールファイルの日時フォーマットを変更
# (2024-05-30 18:15:52)
→### <2024-05-30 18:46:13> ###
Spooling to '%s'
というメッセージの前に空行を追加edit
&select
:-print-type
に かわって-debug
を実装。SELECT/EDIT時にヘッダに型情報を載せる- タイムゾーンを格納できる型では、日時のリテラルにタイムゾーンを含めるようにした
- 小数秒、OracleのTIMESTAMP型、SQL ServerのSMALLDATETIME型,DATETIMEOFFSET などをサポート
- 発行されるSQLもスプールファイルに記録するようにした
- 実行するSQLを表示する前に
\n---\n
で区切るようにした - 実行の確認で、
y
とn
以外のキーは無視するようにした(要再入力) - SQLがエラーになった時、残りの SQL の実行を継続するか(
c
)、中断するか(a
)確認するようにした - エディターでのセル入力時に必要最小限の入力チェックを行うようにした
x
やd
で NULL をセットできるようにした- 1行も存在しない時に
data not found
となって起動できなかった問題を修正
o
やO
で入力されたテキストが記入される列がカーソルのあった列ではなく常に先頭列になっていた不具合を修正O
でテキストを入力する時の反転セルの行位置がずれている不具合を修正- ヘッダー部を変更できないようにした
- 末尾のデータがない行を作らないようにした
May 29, 2024
- #1 SQLite3 をサポート。windows-386向けには "mattn/go-sqlite3" を、他の組合せには "glebarez/go-sqlite" を使うようにした。(Thanks to @emisjerry and @spiegel-im-spiegel)
- サポートしていないドライバー名が与えられた時、エラーにならない問題を修正
- ( テストスクリプトが最新仕様に対応していなかった点を修正し、./test へ移動 )
May 27, 2024
- テーブルデータを CSVI で編集するコマンド:
edit テーブル名 [where ...]
を用意 - START コマンドがエラーメッセージを返さない不具合を修正
- START コマンド用のスクリプトの内容はヒストリに含めないようにした
-tsv
オプションを使用すると SELECT の列がすべて連結されてしまう不具合を修正- (go-multiline-ny) Ctrl-P/N を入力する前のテキストを、ヒストリの最新エントリ扱いにして、失なわれないようにした
May 9, 2024
- SQL がエラーの時でも CSV ページャが呼ばれる問題を修正
- エスケープシーケンスがスプールファイルに含まれてしまう問題を修正
desc TABLE
で TABLE が存在しない時もページャが呼ばれる問題を修正- Ctrl-D もしくは
exit
で終了した時、EOF がエラーとして表示される問題を修正
May 8, 2024
- テストやベンチマークのため
-auto
オプションを実装 - ExpectLua スクリプトで書かれたテストコードを PowerShell へ置き換えた
- SELECT文の出力のため、CSVI をページャーとして使用するようにした
Sep 4, 2023
- 入力行が
;
で終わっていた場合、Enter キーを入力終結として機能するようにした。
May 15, 2023
- TABキーで、SELECT や INPUT といったキーワードの入力補完ができるようになった。
May 4, 2023
- インポートしているライブラリを更新
- go-readline-ny from v0.10.1 to v0.11.2
- go-multiline-ny from v0.6.7 to v0.7.0
- 行頭にカーソルがあるとき、← や Ctrl-B でも前の行末にカーソルを移動できるようにした。
- 行末にカーソルがあるとき、→ や Ctrl-F でも次の行頭にカーソルを移動できるようにした。
Apr 25, 2023
- オプション:
-f -
で標準入力よりスクリプトを読むようにした - 標準入力が端末ではない時、 go-readline-ny を使わず、標準入力をシーケンシャルに読むようにした
- MySQL をサポート
- (デバッグオプションとして、SELECT結果の各列の型を表示する
-print-type
を追加)
Apr 22, 2023
- (複数行対応していないので)インクリメンタルサーチの Ctrl-S と Ctrl-R を無効化
- オプション -submit-enter を追加(Enter と Ctrl-Enter を入れ替える)
- PostgrelSQL のコマンド psql もやっていないようなので、エラー時の自動ロールバックを廃止
- ファイルの SQL を実行するコマンド
START filename
とオプション-f filename
を実装(SQLの終端子は;
になります) - コメント用の
REM
文を追加 spool
文:SQL の末尾に;
を追加するようにした- DDL文が成功したときは
Ok
を表示するようにした
Apr 19, 2023
spool
でプログラムのバージョンも記録するようにした- Microsoft SQL Server もサポート
- 最初の SQL が入力されるまでログインエラーが起きない問題を修正
Apr 17, 2023
- 起動時にバージョン、ビルド時の GOOS,GOARCH,Goのバージョンを表示するようにした
- オプション追加
-null "string"
: NULL を表現する文字列を設定-fs "string"
: カンマの代わりの区切り文字を指定-crlf
: 改行に CRLF を使う-tsv
: 区切り文字として TAB を使う
Apr 16, 2023
- select: フィールドが utf8 として妥当な
[]byte
の時、文字列として表示するようにした desc
と\d
: 引数なしでテーブル一覧表示、引数指定のテーブル仕様表示を実装- エディター改良: 二重引用符で囲まれたテキストをマゼンタで表示
- spool コマンド改良
- 引数なしがない場合、スプールを終了するのではなく、現在の状況を表示するようにした
- コマンドごとにタイムスタンプをスプールファイルに出力するようにした
- プロンプトにスプール中のファイル名を表示
- アペンドモードでオープンし、既存のファイルを空にしないようにした
Apr 15, 2023
- スプールされた SQL の各行の先頭に
#
を挿入 (grep -v "^#" FILENAME
で、CSVデータのみが取り出せる) - go-readline-ny v0.10 のための修正(色付けinterfaceの戻り値が int から
readline.ColorSequence
型にかえる対応) - Oracle以外ではデフォルトでエラー時に自動でロールバックするようにした(前は PosgreSQL の時はロールバックするようにしていた。要は今後サポート DB が増えたときにどちらがデフォルトにするかという話)
- エラー時、メッセージに
(%T)
(エラーの型)を含むようにした exit
,quit
, EOF で終了する際、トランザクションを自動的にロールバックするようにした。
Apr 10, 2023
初版