Releases: hymkor/sqlbless
v0.28.0
Changes in v0.28.0 (English)
Updated build environment and database drivers
SQL-Bless is now built with Go 1.26.3. As a result, support for legacy Windows versions has been dropped; supported platforms are now Windows 10 or later and Linux. Database drivers and related dependencies have also been updated to recent stable versions while retaining workarounds for known upstream issues. (#54)
- MySQL driver → v1.10.0
- Microsoft SQL Server driver → v1.10.0
- PostgreSQL driver → v1.12.3
Major improvements to date/time handling in EDIT and SELECT
Date/time values are now displayed, compared, and edited according to the actual capabilities of each database column type. Unsupported precision fields (such as seconds for minute-precision columns) and unnecessary timezone offsets are no longer shown. This improves readability and avoids mismatches during UPDATE operations. (#55, #57, #58, #60, #63, #65, #66, #69)
Additional improvements include:
- Support for Oracle
TIMESTAMP WITH TIME ZONE - Support for Oracle
TIMESTAMP WITH LOCAL TIME ZONE - Support for SQL Server
DATETIMEOFFSET - Improved readability of date/time values shown in bind variable output during edit operations
Because date/time values are now handled primarily as type-specific strings, SQL-Bless no longer requires MySQL drivers to return time.Time values and therefore no longer appends &parseTime=true&loc=Local to MySQL DSNs. (#71)
Improved schema-aware table inspection
The desc command now supports schema-qualified names such as:
desc schema.table
PostgreSQL table selection has also been improved. All accessible tables, including those in pg_catalog and information_schema, can now be selected. Schema-qualified names are displayed to avoid ambiguity, and system tables are listed after user tables. (#68, #72, #73, #74, #75, #76)
Other improvements
- Improved output formatting of
descon PostgreSQL (#73)
Changes in v0.28.0 (Japanese)
ビルド環境とDBドライバーを更新
SQL-Bless を Go 1.26.3 でビルドするようにしました。これに伴い、サポート対象OSを Windows 10以降および Linux とし、Windows 7/8 系のサポートを終了しました。また、既知の問題を回避できる範囲で、依存ライブラリおよびDBドライバーを最新の安定版へ更新しました。 (#54)
- MySQL ドライバー v1.10.0
- Microsoft SQL Server ドライバー v1.10.0
- PostgreSQL ドライバー v1.12.3
SELECT / EDIT における日時型の取り扱いを大幅改善
日時値の表示・比較・編集処理を見直し、各データベースの日時型が実際に保持できる情報だけを扱うようにしました。型がサポートしない精度(例: 秒を持たない型の秒表示)や不要なタイムゾーンオフセットを表示しないようになり、可読性と更新時の一致判定の正確性を向上させています。 (#55, #57, #58, #60, #63, #65, #66, #69)
主な改善点:
- Oracle
TIMESTAMP WITH TIME ZONEをサポート - Oracle
TIMESTAMP WITH LOCAL TIME ZONEをサポート - SQL Server
DATETIMEOFFSETをサポート - edit 文のバインド変数出力における日時表示を改善
また、日時値を型ごとの文字列表現として扱うようになったため、MySQL ドライバーに time.Time を要求する必要がなくなり、DSN への &parseTime=true&loc=Local の自動付加を廃止しました。 (#71)
スキーマ対応を含む desc コマンドの強化
desc コマンドでスキーマ修飾名を指定できるようになりました。
desc schema.table
さらに PostgreSQL ではテーブル選択機能を改善し、pg_catalog や information_schema を含むアクセス可能な全テーブルを候補として表示できるようにしました。スキーマ修飾名 (schema.table) を表示して同名テーブルを区別し、システムテーブルはユーザーテーブルの後ろに並ぶようにしています。 (#68, #72, #73, #74, #75, #76)
その他
- PostgreSQL における
descコマンドの出力を改善 (#73)
v0.27.7
Changes in v0.27.7 (English)
- Fix: confirmation to apply changes to the DB was skipped when only NULL values were modified (#59)
- Fixed missing error messages when INSERT, UPDATE, or DELETE statements failed. (#61)
( This release continues to support Windows 7/8/Server 2008 R2 and Go 1.20.14.)
Changes in v0.27.7 (Japanese)
- edit 文で NULL の設定のみを変更した場合、変更反映の確認が行われない不具合を修正 (#59)
- INSERT/UPDATE/DELETE で発生したエラーが表示されない不具合を修正 (#61)
( 本バージョンは Windows 7/8/Server 2008R2 と Go 1.20.14 をまだサポートします )
v0.27.6
Changes in v0.27.6 (English)
- Reverted Oracle-specific fix #49-1 because it caused datetime comparison failures on Microsoft SQL Server. Confirmed that Oracle datetime comparisons work correctly with #49-2 alone. (#52)
( This release continues to support Windows 7/8/Server 2008 R2 and Go 1.20.14.)
Changes in v0.27.6 (Japanese)
v0.27.5
Changes in v0.27.5 (English)
This release is the last version supporting Windows 7/8/Server 2008R2 and Go 1.20.x. Future releases will be built with newer Go toolchains in order to keep database drivers and dependencies up to date.
- Fixed an issue where the version string was empty when built without GNU Make. The version string is now updated via make bump during the release process. (#46)
- Rename release note files to CHANGELOG.md and CHANGELOG_ja.md. (#47)
- Update dependencies to the last versions compatible with Go 1.20.14 (#48)
- github.com/microsoft/go-mssqldb v1.7.2 to v1.8.2
- github.com/mattn/go-isatty v0.0.20 to v0.0.22
- github.com/nyaosorg/go-readline-ny v1.14.1 to v1.15.1
- github.com/nyaosorg/go-ttyadapter v0.3.0 to v0.7.0
- github.com/hymkor/go-multiline-ny v0.22.4 to v0.23.1
- github.com/hymkor/csvi v1.22.0 to v1.23.2
- Fixed an issue where updates to Oracle tables could affect zero rows because datetime values retrieved without timezone information failed to match in WHERE clauses. (#49-1)
- github.com/sijms/go-ora v2.9.0 changed DATE/TIMESTAMP timezone handling, which broke datetime comparisons used by SQL-Bless updates. The Oracle driver version has been pinned to v2.8.22 for compatibility. (#49-2)
Changes in v0.27.5 (Japanese)
本リリースは Windows 7/8/Server 2008R2 と Go 1.20.14 をサポートする最終バージョンとなります。今後のリリースはデータベースドライバーとその依存ライブラリに追随するため、より新しい Go のツールチェーンでビルドされることになります。
- GNU Make なしでビルドした場合に、バージョン文字列が空になってしまう問題を修正。今後、バージョンアップ時に make bump を実行する (#46)
- リリースノートのファイルを CHANGELOG.md と CHANGELOG_ja.md へリネーム (#47)
- Go 1.20.14 でビルド可能な最後のバージョンへ依存ライブラリを更新 (#48)
- github.com/microsoft/go-mssqldb v1.7.2 to v1.8.2
- github.com/mattn/go-isatty v0.0.20 to v0.0.22
- github.com/nyaosorg/go-readline-ny v1.14.1 to v1.15.1
- github.com/nyaosorg/go-ttyadapter v0.3.0 to v0.7.0
- github.com/hymkor/go-multiline-ny v0.22.4 to v0.23.1
- github.com/hymkor/csvi v1.22.0 to v1.23.2
- edit文で、Oracle のテーブルを更新しようとした時、timezone 情報が空で取得される日時カラムの照合失敗が原因で、更新が0件になってしまう不具合を修正 (#49-1)
- github.com/sijms/go-ora は v2.9.0 で DATE/TIMESTAMP の timezone の扱いが変更され、照合に問題が発生したため、v2.8.22 へ固定 (#49-2)
v0.27.4
Changes in v0.27.4 (English)
editstatement: Restore row deletion commands (dd,dr):
Fixed a keybinding conflict that rendered row deletion unavailable. Thedkey has been unassigned from the "Set Null" function to restore theddanddrcommands, following specification changes in Csvi. Field Null assignment remains available via thexkey. (#35)editstatement: Prevent creation of empty lines at the end of the editable CSV content. (csvi#79)- (internal changes) Stop using deprecated fields:
csvi.KeyEventArgs.CursorRowandCursorCol(csvi#80,#38) editstatement: Quit immediately onqwithout a prompt if there are no changes.(csvi#81,#39)
Changes in v0.27.4 (Japanese)
edit文: 行削除コマンド(dd,dr)の復旧
レコードの削除操作(dd,dr)を再び利用可能にした。以前のバージョンでは、Null設定機能をdキーにも割り当てていたため、Csvi側の仕様変更(Dの廃止)に伴い、行削除が実行できない状態になっていた。今回、dへのNull設定機能を解除することでこの競合を解消した。※Null設定機能は、引き続きxキーで利用可能。 (#35)edit文: 編集対象の CSV データ末尾に空行が生成されないようにした。(csvi#79)- (内部修正) 廃止予定のフィールド
csvi.KeyEventArgs.CursorRowとCursorCol使わないようにした (csvi#80,#38) edit文: 変更がない場合はqで確認なしに終了するようにした。(csvi#81,#39)
v0.27.3
Changes in v0.27.3 (English)
- Improved single-key input handling so that control key escape sequences (e.g. the Up Arrow
\x1B[A) are not misinterpreted even when they are split by terminal behavior. As part of this change, theEsckey is now always treated as a prefix key. The following internal dependencies were updated: (#29,#30)- Csvi v1.20.1 → v1.21.1
- go-multiline-ny v0.22.3 →v0.22.4
- go-readline-ny v1.13.0 → v1.14.1
- go-ttyadapter v0.2.0 → v0.3.0
edit: RemovedcandEsc. Useqto exit the editor, whether applying changes or not. (#32)
Changes in v0.27.3 (Japanese)
v0.27.2
Changes in v0.27.2 (English)
- Update github.com/hymkor/csvi from v1.19.1 to v1.20.1 (#27)
- Use
(*csvi.Application) MessageAndGetKeyinstead of removed(*csvi.Application) YesNo - Fix display overflow caused by halfwidth kana with voiced/semi-voiced sound marks
- Fix a CPU spinning issue after data fetching completed
- Use
Changes in v0.27.2 (Japanese)
- Update github.com/hymkor/csvi from v1.19.1 to v1.20.1 (#27)
- 廃止された
(*csvi.Application) YesNoのかわりに、(*csvi.Application) MessageAndGetKeyを使うようにした - 半角カナの濁音・半濁音記号が含まれていると表示桁数が超過して表示が乱れる問題を修正
- データ読み込みが終わると、CPU が空回りになる問題に対処
- 廃止された
v0.27.1
Changes in v0.27.1 (English)
- Update go-multiline-ny from 0.22.1 to v0.22.3
- Fixed incorrect cursor position handling in syntax highlighting when editing multiple lines. The cursor offset is now correctly adjusted to account for the prefixed lines.
- Update go-readline-ny from v1.12.3 to v1.13.0
- Fix: completion: cursor moved to the start of the previous word when the current word is empty
- Made input prediction case-insensitive.
- Update github.com/hymkor/csvi from v1.15.1 to v1.19.1 (#26)
- Truncate text that exceeds the cell width and append U+2026 (ellipsis).
- Display
*in the status line when there are unsaved changes - Implement page up/down
- Assign
ggas an additional keybinding for moving to the first row.
- Fix incorrect SQL for querying temporary tables in SQLite3 (#24)
Changes in v0.27.1 (Japanese)
- Update go-multiline-ny from 0.22.1 to v0.22.3
- シンタックスハイライトで扱われるカーソル位置が不正確だった問題を修正。
カーソル位置は前行までのバイト数分を加味して正しく調整されるようになった。
- シンタックスハイライトで扱われるカーソル位置が不正確だった問題を修正。
- Update go-readline-ny from v1.12.3 to v1.13.0
- 補完で、現在の単語が空の場合にカーソルが前の単語の先頭に移動してしまう不具合を修正
- 入力予測機能で英大文字・小文字を区別しないようにした
- Update github.com/hymkor/csvi from v1.15.1 to v1.19.1 (#26)
- テキストがセル幅を超える場合、末尾を U+2026(…)で省略表示するようにした
- 変更がある場合、ステータスラインに
*を表示 - ページ単位の移動(PgDn,PgUp)を実装
ggに先頭レコードへの移動を設定
- SQLite3 のテーブル一覧取得時における、一時テーブルの誤った参照方法を修正 (#24)
v0.27.0
Changes in v0.27.0 (English)
Bug fixes
- Fix: Errors were not reported during execution of
SAVEPOINTandSAVE TRANSACTION. (#19) - SQL Server: Fixed an issue where
ROLLBACK TRANSACTIONwithout a savepoint was not recognized as ending the transaction, causing the prompt to remain asSQL*. (#22)
Specification Changes
- Enable
RELEASE SAVEPOINT(#19),REPLACE INTO(#20,MySQL) andSET(#21) to execute within a transaction.
Changes in v0.27.0 (Japanese)
不具合修正
SAVEPOINT,SAVE TRANSACTIONの実行中にエラーが発生してもメッセージが表示されなかった問題を修正 (#19)- SQL Server: SAVEPOINT を指定しない
ROLLBACK TRANSACTIONでトランザクションは終了するのに、それを認識せず、プロンプトがトランザクション中を意味するSQL*のままになっていた問題を修正 (#22)
仕様変更
v0.26.0
Changes in v0.26.0 (English)
Bug fixes
- Fix: completion — cursor moved to the start of the previous word when the current word was empty (#15, go-readline-ny #17)
- Fix: an issue where pressing
Enteron the result of thedesccommand (table list) did not show the column (desc TABLE) for the selected table on databases other than SQLite3. (#16) - Fix issue where
editcould not launch due to MySQL identifier quoting
Specification changes
- Support
SAVEPOINTas a TCL command (#11) - Support
SAVE TRANSACTIONas a TCL command (#14) - Support
ROLLBACK TO(orROLLBACK TRANSACTION) as a TCL command (#11) - Require
;afterROLLBACKto prevent accidental execution (#11) - Script execution improvements (#12):
- Fix: correct handling of
io.EOF - Suppress output of empty lines and leading/trailing spaces
- Fix:
CSVIlaunched bySELECTin a script now terminates automatically with>,q, andy
- Fix: correct handling of
Internal changes
- Refactor
dialectsubpackage: renamed fields and methods for clarity (#8) - Switched terminal input API calls to use
go-ttyadapterv0.2.0 (#9)
Changes in v0.26.0 (Japanese)
不具合修正
- 補完で、現在の単語が空の場合にカーソルが前の単語の先頭に移動してしまう不具合を修正 (#15,go-readline-ny v1.12.3 #17)
- SQLite3 以外のデータベースで、引数なしのdesc コマンド(テーブル一覧)の中から
Enterを押下して、該当行のテーブルのカラム一覧を表示できなかった不具合を修正 (#16) - MySQL で識別子の引用符が原因で
editコマンドが起動できなかった問題を修正
仕様変更
SAVEPOINTを TCL コマンドとしてサポート (#11)SAVE TRANSACTIONを TCL コマンドとしてサポート (#14)ROLLBACK TO(もしくはROLLBACK TRANSACTION)を TCL コマンドとしてサポート (#11)- 誤操作防止のため、
ROLLBACKには;を必須とした (#11) - スクリプト実行時の修正 (#12)
io.EOFが誤ってエラーとして扱われていた問題を修正した- SQL のログ出力で、空行や行頭・行末の空白が出力されないようにした
SELECTで起動したCSVIは、>,q,yの操作で自動的に終了するようにした