Releases: go-sqlex/sqlex
Releases · go-sqlex/sqlex
Release list
v1.5.3 — 5 bug fixes, including 3 long-standing sqlx issues
📦 v1.5.3 — Bug Fix Release
This version brings 5 critical fixes, with 3 issues inherited from jmoiron/sqlx.
✅ Bug Fixes
| Area | Fix | Related |
|---|---|---|
| In binding | Fixed panic when encountering nil driver.Valuer or nil pointer slices |
sqlx #952 |
| Named VALUES expansion | Fixed fixBound logic that would silently drop rows in batch INSERT/UPDATE |
sqlx #898, #694, #772 |
| NextResultSet cache | Fixed stale cache causing mis-scans on subsequent result sets | sqlx #857 |
| Select + sql.RawBytes | Reject sql.RawBytes with clear error to prevent silent data corruption |
sqlx #931 |
🔧 Refactoring
- Removed unused
reflectxpublic APIs (FieldMap,FieldByName,FieldsByName) - Fixed
FieldByIndexesReadOnlyto handle nil pointers gracefully
📊 Quality
- CI passes for Go 1.21 and 1.26
- Codecov coverage: 80.37%
Thanks to all contributors and users for the feedback! 🙏
v1.5.2: Unified Hook Pipeline & Transaction Lifecycle
v1.5.2
- Hook unification:
autoIn → Rebind → Hookis now a unified pipeline. Begin/Commit/Rollback fire Hooks. NewDb→NewDB(rename).QueryEvent.OperationTypeis nowOpTypeenum:OpQuery,OpExec,OpBegin,OpCommit,OpRollback.QueryEvent.RowsAffectedandLastInsertIDnow populated on exec.Tx.CloseWithErrnow fires Hooks on both success and failure (was only failure).
sqlex v1.5.1 - Initial Release
🚀 What's New
sqlex is a modernized drop-in replacement for jmoiron/sqlx that addresses long-standing pain points while adding new capabilities:
Auto IN expansion — write WHERE id IN (?) with a slice, no more manual sqlx.In + Rebind dance
Pluggable Hooks — intercept SQL execution for logging, metrics, tracing, etc.
Auto placeholder conversion — use ? everywhere, automatically converts to $1, @p1, etc. per database
Generic JSON support — JSONValue[T] maps JSON columns to strong types
Go 1.21+ — uses any, modern error handling, actively maintained