Skip to content

Releases: hymkor/sqlbless

v0.28.0

23 May 07:18

Choose a tag to compare

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 desc on 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_cataloginformation_schema を含むアクセス可能な全テーブルを候補として表示できるようにしました。スキーマ修飾名 (schema.table) を表示して同名テーブルを区別し、システムテーブルはユーザーテーブルの後ろに並ぶようにしています。 (#68, #72, #73, #74, #75, #76)

その他

  • PostgreSQL における desc コマンドの出力を改善 (#73)

v0.27.7

14 May 18:28

Choose a tag to compare

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

11 May 02:04

Choose a tag to compare

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)

  • SQL Server で日時の照合が失敗する問題があったため、Oracle 向けの修正 #49-1 を Revert した。Oracle 側は #49-2 があれば問題がないことを確認 (#52)
    ( 本バージョンは Windows 7/8/Server 2008R2 と Go 1.20.14 をサポートします )

v0.27.5

11 May 00:32

Choose a tag to compare

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

14 Feb 02:54

Choose a tag to compare

Changes in v0.27.4 (English)

  • edit statement: Restore row deletion commands (dd, dr):
    Fixed a keybinding conflict that rendered row deletion unavailable. The d key has been unassigned from the "Set Null" function to restore the dd and dr commands, following specification changes in Csvi. Field Null assignment remains available via the x key. (#35)
  • edit statement: Prevent creation of empty lines at the end of the editable CSV content. (csvi#79)
  • (internal changes) Stop using deprecated fields: csvi.KeyEventArgs.CursorRow and CursorCol (csvi#80,#38)
  • edit statement: Quit immediately on q without 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.CursorRowCursorCol 使わないようにした (csvi#80,#38)
  • edit文: 変更がない場合は q で確認なしに終了するようにした。(csvi#81,#39)

v0.27.3

06 Feb 14:32

Choose a tag to compare

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, the Esc key 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: Removed c and Esc. Use q to exit the editor, whether applying changes or not. (#32)

Changes in v0.27.3 (Japanese)

  • 一文字キー入力で、制御キー入力シーケンス(例:上矢印 \x1B[A)が端末仕様により分断されても誤動作しないよう、Esc キーを常にプレフィックスキーとして扱う挙動に改善した。内部的に以下のパッケージを更新した。(#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: cEsc を廃止。変更の適用を伴う終了もq を使用するようにした (#32)

v0.27.2

18 Jan 06:53

Choose a tag to compare

Changes in v0.27.2 (English)

  • Update github.com/hymkor/csvi from v1.19.1 to v1.20.1 (#27)
    • Use (*csvi.Application) MessageAndGetKey instead 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

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

04 Jan 17:37

Choose a tag to compare

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 gg as 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

01 Dec 19:28

Choose a tag to compare

Changes in v0.27.0 (English)

Bug fixes

  • Fix: Errors were not reported during execution of SAVEPOINT and SAVE TRANSACTION. (#19)
  • SQL Server: Fixed an issue where ROLLBACK TRANSACTION without a savepoint was not recognized as ending the transaction, causing the prompt to remain as SQL*. (#22)

Specification Changes

  • Enable RELEASE SAVEPOINT(#19), REPLACE INTO(#20,MySQL) and SET(#21) to execute within a transaction.

Changes in v0.27.0 (Japanese)

不具合修正

  • SAVEPOINT, SAVE TRANSACTION の実行中にエラーが発生してもメッセージが表示されなかった問題を修正 (#19)
  • SQL Server: SAVEPOINT を指定しない ROLLBACK TRANSACTION でトランザクションは終了するのに、それを認識せず、プロンプトがトランザクション中を意味する SQL* のままになっていた問題を修正 (#22)

仕様変更

  • RELEASE SAVEPOINT (#19), REPLACE INTO (#20,MySQL), SET(#21) もトランザクション内で実行できるようにした。

v0.26.0

11 Nov 00:26

Choose a tag to compare

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 Enter on the result of the desc command (table list) did not show the column (desc TABLE) for the selected table on databases other than SQLite3. (#16)
  • Fix issue where edit could not launch due to MySQL identifier quoting
    • Launching edit from desc without arguments using the r key for table selection (#17)
    • Launching edit from edit without arguments using Enter key for table selection (#18)

Specification changes

  • Support SAVEPOINT as a TCL command (#11)
  • Support SAVE TRANSACTION as a TCL command (#14)
  • Support ROLLBACK TO (or ROLLBACK TRANSACTION) as a TCL command (#11)
  • Require ; after ROLLBACK to prevent accidental execution (#11)
  • Script execution improvements (#12):
    • Fix: correct handling of io.EOF
    • Suppress output of empty lines and leading/trailing spaces
    • Fix: CSVI launched by SELECT in a script now terminates automatically with >, q, and y

Internal changes

  • Refactor dialect subpackage: renamed fields and methods for clarity (#8)
  • Switched terminal input API calls to use go-ttyadapter v0.2.0 (#9)

Changes in v0.26.0 (Japanese)

不具合修正

  • 補完で、現在の単語が空の場合にカーソルが前の単語の先頭に移動してしまう不具合を修正 (#15,go-readline-ny v1.12.3 #17)
  • SQLite3 以外のデータベースで、引数なしのdesc コマンド(テーブル一覧)の中から Enter を押下して、該当行のテーブルのカラム一覧を表示できなかった不具合を修正 (#16)
  • MySQL で識別子の引用符が原因で edit コマンドが起動できなかった問題を修正
    • 引数なしの desc コマンド中で、r キーによるテーブル選択から edit を起動 (#17)
    • 引数なしの edit コマンド中で、Enter キーによるテーブル選択から起動 (#18)

仕様変更

  • SAVEPOINT を TCL コマンドとしてサポート (#11)
  • SAVE TRANSACTION を TCL コマンドとしてサポート (#14)
  • ROLLBACK TO(もしくは ROLLBACK TRANSACTION)を TCL コマンドとしてサポート (#11)
  • 誤操作防止のため、ROLLBACK には ; を必須とした (#11)
  • スクリプト実行時の修正 (#12)
    • io.EOF が誤ってエラーとして扱われていた問題を修正した
    • SQL のログ出力で、空行や行頭・行末の空白が出力されないようにした
    • SELECT で起動した CSVI は、>, q, y の操作で自動的に終了するようにした

内部修正

  • サブパッケージ dialect をリファクタリング: フィールド・メソッドを改名 (#8)
  • 端末入力系の API 呼び出しを go-ttyadapter v0.2.0 へ切替え (#9)