Releases: stephenafamo/bob
Releases · stephenafamo/bob
v0.23.1
v0.23.0
Added
- Add
bob.Cache()
which saves the built SQL and args to prevent rebuilding the same query multiple times. - Add
As()
starter to alias expressions - Add
OP()
builder method for using custom operators - Add
table.InsertQ(ctx, db)
now includes the insert columns from the table model. - It is now possible to configure additional constraints for code generation.
- Add
um.SetCol()
which maintains the old behavior ofum.Set()
. - Generate additional
Expressions()
method for Setters to make it easier to use them inum.Set()
orim.Set()
.
Changed
- Aliases configuration for code generation no longer has a top level
table
key - When configuring relationships,
from_unique
,to_unique
,key_nullable
can no longer be configured. They are now inferred from the database. - When configuring relationships,
to_key
has been changed tomodify
and should be set tofrom
,to
or""
to indicate which side of the relationship to modify.
If left empty, Bob will try to guess which side to modify based on the presence of primary keys and unique columns. RelWhere.Value
is nowRelWhere.SQLValue
- Change CONFLICT/DUPLICATE KEY UPDATE to use mods instead of a chainable methods.
- Change
um.Set()
to take a list of expressions. - Rename Setter method from
Insert()
toInsertMod()
to avoid confusion.
Fixed
- Prevent generating duplicate relationships for many-to-many self-join relationships
- Correctly use table alias in generated relationship join mods
- Fix an issue where CTEs were encased in double parenthesis
- Fix invalid SQL generated when doing
JOIN USING
- Correctly include "AS" in function query if alias is set
- Setters are also generated for tables that have relationships, even if they have no primary key
- Column aliases in CTEs are now correctly included in the final query
- Fix several issues with generating code for multi-sided relationships
- Fix an issue where loading many-to-many relationships cause no columns to be selected unless specified
- Fix an issue where many-to-many relationships would not be able to use nested loaders
New Contributors
- @auqust made their first contribution in #108
- @nikhilnarayanan623 made their first contribution in #110
- @guettli made their first contribution in #136
Full Changelog: v0.22.0...v0.23.0
v0.22.0
Added
- Expand expressions when used in Raw (thanks @RangelReale)
- Add
InsertQ
,UpdateQ
, andDeleteQ
methods to Table models to start INSERT, UPDATE and DELETE queries respectively. - Allow column comment for replacement matching (thanks @jroenf)
- Add table query hooks to modify model queries
- Include
WhereOr
andWhereAnd
to make it easier to combine multiple generated where clauses - Print a warning if a replacement rule did not find a match (thanks @jacobmolby)
Changed
- Export generated factory.Factory struct
- Allow Limit and Offset to be used as Arguments in PostgreSQL (thanks @RangelReale)
- Make model hooks take slices not single objects
- Return rows affected from
Exec()
method of view queries instead ofsql.Result
- Chain comparison methods now take an
Expression
instead ofany
- Table models now require the types to implement
orm.Table
andorm.Setter
interfaces.
Removed
- Remove UpdateAll and DeleteAll methods on the Table models.
Fixed
- Honor Only and Except in sqlite driver
- Always surround subqueries with parenthesis when used as an expression
- Fix mysql
TablesInfo
method and make sure we don't exclude entire table when targeting columns (thanks @jacobmolby) - Fix bug in sqlite foreign key and join table detection
New Contributors
- @RangelReale made their first contribution in #64
- @jroenf made their first contribution in #86
- @jacobmolby made their first contribution in #91
Full Changelog: v0.21.1...v0.22.0
v0.21.1
v0.21.0
Changed
- Force uniqueness of relationship names in
psql
driver
Fixed
- Fix panic when attaching associated relationships
- Make getting a random integer for preloading thread-safe
Full Changelog: v0.20.6...v0.21.0
v0.20.6
- Check all members when loading relationships
Full Changelog: v0.20.5...v0.20.6
v0.20.5
- Fix panic in Insert/Attach Relationship loop
Full Changelog: v0.20.4...v0.20.5
v0.20.4
- Replace
huandu/go-clone
withqdm12/reprint
Full Changelog: v0.20.3...v0.20.4
v0.20.3
- Fix cloning bug by replacing
jinzhu/copier
withhuandu/go-clone
Full Changelog: v0.20.2...v0.20.3
v0.20.2
- Account for windows when calculating models module path
Full Changelog: v0.20.1...v0.20.2