DEV Community

邱敬幃 Pardn Chiu
邱敬幃 Pardn Chiu

Posted on

GO-SQLite@v0.2.0: SQLite client with chained method calls

cover


v0.1.0 -> v0.2.0

Summary

Major refactoring of the database connector with singleton pattern using sync.Once, enhanced SQL validation with reserved keyword checking, and new chainable APIs for conflict handling and total count queries.

Changes

FEAT

  • Add GetWithTotal() and GetWithTotalContext() methods for paginated queries with total count
  • Add Builder.Raw() method to access underlying *sql.DB instance
  • Add Builder.Conflict() chainable method for insert conflict handling strategy

REFACTOR

  • Rename Database struct to Connector with singleton initialization via sync.Once
  • Simplify New() return signature from (*Database, *sql.DB, error) to (*Connector, error)
  • Refactor OrderBy direction parameter to typed constant (Asc/Desc)
  • Enhance column validation with length limit (128 chars) and SQL reserved keyword checking via embedded JSON
  • Adjust connection pool settings: MaxOpenConns=8, MaxIdleConns=2, enable WAL mode

UPDATE

  • Change Update() / UpdateContext() parameter to variadic map[string]any
  • Mark legacy conflict methods (InsertConflict, InsertContexConflict, InsertConflictReturningID, InsertContextConflictReturningID) as deprecated for v1.0.0
  • Mark Total() method as deprecated in favor of GetWithTotal()

Files Changed

File Status Tag
instance.go Modified REFACTOR
builder.go Modified FEAT
select.go Modified FEAT, REFACTOR
insert.go Modified FEAT, UPDATE
update.go Modified UPDATE
utils.go Modified REFACTOR
sql_keywords.json Added REFACTOR
main_test.go Modified REFACTOR
README.md Modified DOC
README.zh.md Added DOC
LICENSE Added DOC
cover.png Added DOC

©️ 2026 邱敬幃 Pardn Chiu

Top comments (0)