CHANGELOG.md
3.6 KB
Changelog
v8
- Added
QueryContext
,ExecContext
, andModelContext
which acceptcontext.Context
. Queries are cancelled when context is cancelled. - Model hooks are changed to accept
context.Context
as first argument.
v7
- DB.OnQueryProcessed is replaced with DB.AddQueryHook.
- Added WhereStruct.
- orm.Pager is moved to urlvalues.Pager. Pager.FromURLValues returns an error if page or limit params can't be parsed.
v6.16
- Read buffer is re-worked. Default read buffer is increased to 65kb.
v6.15
- Added Options.MinIdleConns.
- Options.MaxAge renamed to Options.MaxConnAge.
- PoolStats.FreeConns is renamed to PoolStats.IdleConns.
- New hook BeforeSelectQuery.
-
,override
is renamed to,inherit
. - Dialer.KeepAlive is set to 5 minutes by default.
- Added support "scram-sha-256" authentication.
v6.14
- Fields ignored with
sql:"-"
tag are no longer considered by ORM relation detector.
v6.12
-
Insert
,Update
, andDelete
can returnpg.ErrNoRows
andpg.ErrMultiRows
whenReturning
is used and model expects single row.
v6.11
-
db.Model(&strct).Update()
anddb.Model(&strct).Delete()
no longer adds WHERE condition based on primary key when there are no conditions. Instead you should usedb.Update(&strct)
ordb.Model(&strct).WherePK().Update()
.
v6.10
-
?Columns
is renamed to?TableColumns
.?Columns
is changed to produce column names without table alias.
v6.9
-
pg:"fk"
tag now accepts SQL names instead of Go names, e.g.pg:"fk:ParentId"
becomespg:"fk:parent_id"
. Old code should continue working in most cases, but it is strongly advised to start using new convention. - uint and uint64 SQL type is changed from decimal to bigint according to the the lesser of two evils principle. Use
sql:"type:decimal"
to get old behavior.
v6.8
-
CreateTable
no longer adds ON DELETE hook by default. To get old behavior users should addsql:"on_delete:CASCADE"
tag on foreign key field.
v6
-
types.Result
is renamed toorm.Result
. - Added
OnQueryProcessed
event that can be used to log / report queries timing. Query logger is removed. -
orm.URLValues
is renamed toorm.URLFilters
. It no longer adds ORDER clause. -
orm.Pager
is renamed toorm.Pagination
. - Support for net.IP and net.IPNet.
- Support for context.Context.
- Bulk/multi updates.
- Query.WhereGroup for enclosing conditions in paretheses.
v5
- All fields are nullable by default.
,null
tag is replaced with,notnull
. -
Result.Affected
renamed toResult.RowsAffected
. - Added
Result.RowsReturned
. -
Create
renamed toInsert
,BeforeCreate
toBeforeInsert
,AfterCreate
toAfterInsert
. - Indexed placeholders support, e.g.
db.Exec("SELECT ?0 + ?0", 1)
. - Named placeholders are evaluated when query is executed.
- Added Update and Delete hooks.
- Order reworked to quote column names. OrderExpr added to bypass Order quoting restrictions.
- Group reworked to quote column names. GroupExpr added to bypass Group quoting restrictions.
v4
-
Options.Host
andOptions.Port
merged intoOptions.Addr
. - Added
Options.MaxRetries
. Now queries are not retried by default. -
LoadInto
renamed toScan
,ColumnLoader
renamed toColumnScanner
, LoadColumn renamed to ScanColumn,NewRecord() interface{}
changed toNewModel() ColumnScanner
,AppendQuery(dst []byte) []byte
changed toAppendValue(dst []byte, quote bool) ([]byte, error)
. - Structs, maps and slices are marshalled to JSON by default.
- Added support for scanning slices, .e.g. scanning
[]int
. - Added object relational mapping.