mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
upstep bun to v1.0.9 (#252)
This commit is contained in:
18
vendor/github.com/uptrace/bun/CHANGELOG.md
generated
vendored
18
vendor/github.com/uptrace/bun/CHANGELOG.md
generated
vendored
@ -1,3 +1,21 @@
|
||||
## [1.0.9](https://github.com/uptrace/bun/compare/v1.0.8...v1.0.9) (2021-09-27)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* change DBStats to use uint32 instead of uint64 to make it work on i386 ([caca2a7](https://github.com/uptrace/bun/commit/caca2a7130288dec49fa26b49c8550140ee52f4c))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add IQuery and QueryEvent.IQuery ([b762942](https://github.com/uptrace/bun/commit/b762942fa3b1d8686d0a559f93f2a6847b83d9c1))
|
||||
* add QueryEvent.Model ([7688201](https://github.com/uptrace/bun/commit/7688201b485d14d3e393956f09a3200ea4d4e31d))
|
||||
* **bunotel:** add experimental bun.query.timing metric ([2cdb384](https://github.com/uptrace/bun/commit/2cdb384678631ccadac0fb75f524bd5e91e96ee2))
|
||||
* **pgdriver:** add Config.ConnParams to session config params ([408caf0](https://github.com/uptrace/bun/commit/408caf0bb579e23e26fc6149efd6851814c22517))
|
||||
* **pgdriver:** allow specifying timeout in DSN ([7dbc71b](https://github.com/uptrace/bun/commit/7dbc71b3494caddc2e97d113f00067071b9e19da))
|
||||
|
||||
|
||||
|
||||
## [1.0.8](https://github.com/uptrace/bun/compare/v1.0.7...v1.0.8) (2021-09-18)
|
||||
|
||||
|
||||
|
3
vendor/github.com/uptrace/bun/Makefile
generated
vendored
3
vendor/github.com/uptrace/bun/Makefile
generated
vendored
@ -10,10 +10,11 @@ test:
|
||||
done
|
||||
|
||||
go_mod_tidy:
|
||||
go get -u && go mod tidy
|
||||
set -e; for dir in $(ALL_GO_MOD_DIRS); do \
|
||||
echo "go mod tidy in $${dir}"; \
|
||||
(cd "$${dir}" && \
|
||||
go get -d ./... && \
|
||||
go get -u ./... && \
|
||||
go mod tidy); \
|
||||
done
|
||||
|
||||
|
8
vendor/github.com/uptrace/bun/README.md
generated
vendored
8
vendor/github.com/uptrace/bun/README.md
generated
vendored
@ -12,7 +12,7 @@
|
||||
[](https://discord.gg/rWtp5Aj)
|
||||
|
||||
**Status**: API freeze (stable release). Note that all sub-packages (mainly extra/\* packages) are
|
||||
not part of the API freeze and are developed independently. You can think of them as 3-rd party
|
||||
not part of the API freeze and are developed independently. You can think of them as of 3rd party
|
||||
packages that share one repo with the core.
|
||||
|
||||
Main features are:
|
||||
@ -32,11 +32,15 @@ Resources:
|
||||
|
||||
- To ask questions, join [Discord](https://discord.gg/rWtp5Aj) or use
|
||||
[Discussions](https://github.com/uptrace/bun/discussions).
|
||||
- [Newsletter](https://blog.uptrace.dev/newsletter/) to get latest updates.
|
||||
- [Newsletter](https://blog.uptrace.dev/pages/newsletter.html) to get latest updates.
|
||||
- [Examples](https://github.com/uptrace/bun/tree/master/example)
|
||||
- [Documentation](https://bun.uptrace.dev/)
|
||||
- [Reference](https://pkg.go.dev/github.com/uptrace/bun)
|
||||
- [Starter kit](https://github.com/go-bun/bun-starter-kit)
|
||||
|
||||
Projects using Bun:
|
||||
|
||||
- [gotosocial](https://github.com/superseriousbusiness/gotosocial) - Golang fediverse server.
|
||||
- [RealWorld app](https://github.com/go-bun/bun-realworld-app)
|
||||
|
||||
<details>
|
||||
|
18
vendor/github.com/uptrace/bun/db.go
generated
vendored
18
vendor/github.com/uptrace/bun/db.go
generated
vendored
@ -203,7 +203,7 @@ func (db *DB) Exec(query string, args ...interface{}) (sql.Result, error) {
|
||||
func (db *DB) ExecContext(
|
||||
ctx context.Context, query string, args ...interface{},
|
||||
) (sql.Result, error) {
|
||||
ctx, event := db.beforeQuery(ctx, nil, query, args)
|
||||
ctx, event := db.beforeQuery(ctx, nil, query, args, nil)
|
||||
res, err := db.DB.ExecContext(ctx, db.format(query, args))
|
||||
db.afterQuery(ctx, event, res, err)
|
||||
return res, err
|
||||
@ -216,7 +216,7 @@ func (db *DB) Query(query string, args ...interface{}) (*sql.Rows, error) {
|
||||
func (db *DB) QueryContext(
|
||||
ctx context.Context, query string, args ...interface{},
|
||||
) (*sql.Rows, error) {
|
||||
ctx, event := db.beforeQuery(ctx, nil, query, args)
|
||||
ctx, event := db.beforeQuery(ctx, nil, query, args, nil)
|
||||
rows, err := db.DB.QueryContext(ctx, db.format(query, args))
|
||||
db.afterQuery(ctx, event, nil, err)
|
||||
return rows, err
|
||||
@ -227,7 +227,7 @@ func (db *DB) QueryRow(query string, args ...interface{}) *sql.Row {
|
||||
}
|
||||
|
||||
func (db *DB) QueryRowContext(ctx context.Context, query string, args ...interface{}) *sql.Row {
|
||||
ctx, event := db.beforeQuery(ctx, nil, query, args)
|
||||
ctx, event := db.beforeQuery(ctx, nil, query, args, nil)
|
||||
row := db.DB.QueryRowContext(ctx, db.format(query, args))
|
||||
db.afterQuery(ctx, event, nil, row.Err())
|
||||
return row
|
||||
@ -258,7 +258,7 @@ func (db *DB) Conn(ctx context.Context) (Conn, error) {
|
||||
func (c Conn) ExecContext(
|
||||
ctx context.Context, query string, args ...interface{},
|
||||
) (sql.Result, error) {
|
||||
ctx, event := c.db.beforeQuery(ctx, nil, query, args)
|
||||
ctx, event := c.db.beforeQuery(ctx, nil, query, args, nil)
|
||||
res, err := c.Conn.ExecContext(ctx, c.db.format(query, args))
|
||||
c.db.afterQuery(ctx, event, res, err)
|
||||
return res, err
|
||||
@ -267,14 +267,14 @@ func (c Conn) ExecContext(
|
||||
func (c Conn) QueryContext(
|
||||
ctx context.Context, query string, args ...interface{},
|
||||
) (*sql.Rows, error) {
|
||||
ctx, event := c.db.beforeQuery(ctx, nil, query, args)
|
||||
ctx, event := c.db.beforeQuery(ctx, nil, query, args, nil)
|
||||
rows, err := c.Conn.QueryContext(ctx, c.db.format(query, args))
|
||||
c.db.afterQuery(ctx, event, nil, err)
|
||||
return rows, err
|
||||
}
|
||||
|
||||
func (c Conn) QueryRowContext(ctx context.Context, query string, args ...interface{}) *sql.Row {
|
||||
ctx, event := c.db.beforeQuery(ctx, nil, query, args)
|
||||
ctx, event := c.db.beforeQuery(ctx, nil, query, args, nil)
|
||||
row := c.Conn.QueryRowContext(ctx, c.db.format(query, args))
|
||||
c.db.afterQuery(ctx, event, nil, row.Err())
|
||||
return row
|
||||
@ -392,7 +392,7 @@ func (tx Tx) Exec(query string, args ...interface{}) (sql.Result, error) {
|
||||
func (tx Tx) ExecContext(
|
||||
ctx context.Context, query string, args ...interface{},
|
||||
) (sql.Result, error) {
|
||||
ctx, event := tx.db.beforeQuery(ctx, nil, query, args)
|
||||
ctx, event := tx.db.beforeQuery(ctx, nil, query, args, nil)
|
||||
res, err := tx.Tx.ExecContext(ctx, tx.db.format(query, args))
|
||||
tx.db.afterQuery(ctx, event, res, err)
|
||||
return res, err
|
||||
@ -405,7 +405,7 @@ func (tx Tx) Query(query string, args ...interface{}) (*sql.Rows, error) {
|
||||
func (tx Tx) QueryContext(
|
||||
ctx context.Context, query string, args ...interface{},
|
||||
) (*sql.Rows, error) {
|
||||
ctx, event := tx.db.beforeQuery(ctx, nil, query, args)
|
||||
ctx, event := tx.db.beforeQuery(ctx, nil, query, args, nil)
|
||||
rows, err := tx.Tx.QueryContext(ctx, tx.db.format(query, args))
|
||||
tx.db.afterQuery(ctx, event, nil, err)
|
||||
return rows, err
|
||||
@ -416,7 +416,7 @@ func (tx Tx) QueryRow(query string, args ...interface{}) *sql.Row {
|
||||
}
|
||||
|
||||
func (tx Tx) QueryRowContext(ctx context.Context, query string, args ...interface{}) *sql.Row {
|
||||
ctx, event := tx.db.beforeQuery(ctx, nil, query, args)
|
||||
ctx, event := tx.db.beforeQuery(ctx, nil, query, args, nil)
|
||||
row := tx.Tx.QueryRowContext(ctx, tx.db.format(query, args))
|
||||
tx.db.afterQuery(ctx, event, nil, row.Err())
|
||||
return row
|
||||
|
22
vendor/github.com/uptrace/bun/hook.go
generated
vendored
22
vendor/github.com/uptrace/bun/hook.go
generated
vendored
@ -11,12 +11,21 @@ import (
|
||||
"github.com/uptrace/bun/schema"
|
||||
)
|
||||
|
||||
type IQuery interface {
|
||||
schema.QueryAppender
|
||||
Operation() string
|
||||
GetModel() Model
|
||||
GetTableName() string
|
||||
}
|
||||
|
||||
type QueryEvent struct {
|
||||
DB *DB
|
||||
|
||||
QueryAppender schema.Query
|
||||
QueryAppender schema.QueryAppender // Deprecated: use IQuery instead
|
||||
IQuery IQuery
|
||||
Query string
|
||||
QueryArgs []interface{}
|
||||
Model Model
|
||||
|
||||
StartTime time.Time
|
||||
Result sql.Result
|
||||
@ -26,8 +35,8 @@ type QueryEvent struct {
|
||||
}
|
||||
|
||||
func (e *QueryEvent) Operation() string {
|
||||
if e.QueryAppender != nil {
|
||||
return e.QueryAppender.Operation()
|
||||
if e.IQuery != nil {
|
||||
return e.IQuery.Operation()
|
||||
}
|
||||
return queryOperation(e.Query)
|
||||
}
|
||||
@ -49,9 +58,10 @@ type QueryHook interface {
|
||||
|
||||
func (db *DB) beforeQuery(
|
||||
ctx context.Context,
|
||||
queryApp schema.Query,
|
||||
iquery IQuery,
|
||||
query string,
|
||||
queryArgs []interface{},
|
||||
model Model,
|
||||
) (context.Context, *QueryEvent) {
|
||||
atomic.AddUint32(&db.stats.Queries, 1)
|
||||
|
||||
@ -62,7 +72,9 @@ func (db *DB) beforeQuery(
|
||||
event := &QueryEvent{
|
||||
DB: db,
|
||||
|
||||
QueryAppender: queryApp,
|
||||
Model: model,
|
||||
QueryAppender: iquery,
|
||||
IQuery: iquery,
|
||||
Query: query,
|
||||
QueryArgs: queryArgs,
|
||||
|
||||
|
12
vendor/github.com/uptrace/bun/join.go
generated
vendored
12
vendor/github.com/uptrace/bun/join.go
generated
vendored
@ -10,8 +10,8 @@ import (
|
||||
|
||||
type relationJoin struct {
|
||||
Parent *relationJoin
|
||||
BaseModel tableModel
|
||||
JoinModel tableModel
|
||||
BaseModel TableModel
|
||||
JoinModel TableModel
|
||||
Relation *schema.Relation
|
||||
|
||||
apply func(*SelectQuery) *SelectQuery
|
||||
@ -71,8 +71,8 @@ func (j *relationJoin) manyQuery(q *SelectQuery) *SelectQuery {
|
||||
where = appendChildValues(
|
||||
q.db.Formatter(),
|
||||
where,
|
||||
j.JoinModel.Root(),
|
||||
j.JoinModel.ParentIndex(),
|
||||
j.JoinModel.rootValue(),
|
||||
j.JoinModel.parentIndex(),
|
||||
j.Relation.BaseFields,
|
||||
)
|
||||
where = append(where, ")"...)
|
||||
@ -135,7 +135,7 @@ func (j *relationJoin) m2mQuery(q *SelectQuery) *SelectQuery {
|
||||
}
|
||||
q = q.Model(m2mModel)
|
||||
|
||||
index := j.JoinModel.ParentIndex()
|
||||
index := j.JoinModel.parentIndex()
|
||||
baseTable := j.BaseModel.Table()
|
||||
|
||||
//nolint
|
||||
@ -154,7 +154,7 @@ func (j *relationJoin) m2mQuery(q *SelectQuery) *SelectQuery {
|
||||
join = append(join, col.SQLName...)
|
||||
}
|
||||
join = append(join, ") IN ("...)
|
||||
join = appendChildValues(fmter, join, j.BaseModel.Root(), index, baseTable.PKs)
|
||||
join = appendChildValues(fmter, join, j.BaseModel.rootValue(), index, baseTable.PKs)
|
||||
join = append(join, ")"...)
|
||||
q = q.Join(internal.String(join))
|
||||
|
||||
|
30
vendor/github.com/uptrace/bun/model.go
generated
vendored
30
vendor/github.com/uptrace/bun/model.go
generated
vendored
@ -24,12 +24,8 @@ type rowScanner interface {
|
||||
ScanRow(ctx context.Context, rows *sql.Rows) error
|
||||
}
|
||||
|
||||
type model interface {
|
||||
type TableModel interface {
|
||||
Model
|
||||
}
|
||||
|
||||
type tableModel interface {
|
||||
model
|
||||
|
||||
schema.BeforeScanHook
|
||||
schema.AfterScanHook
|
||||
@ -38,19 +34,19 @@ type tableModel interface {
|
||||
Table() *schema.Table
|
||||
Relation() *schema.Relation
|
||||
|
||||
Join(string) *relationJoin
|
||||
GetJoin(string) *relationJoin
|
||||
GetJoins() []relationJoin
|
||||
AddJoin(relationJoin) *relationJoin
|
||||
join(string) *relationJoin
|
||||
getJoin(string) *relationJoin
|
||||
getJoins() []relationJoin
|
||||
addJoin(relationJoin) *relationJoin
|
||||
|
||||
Root() reflect.Value
|
||||
ParentIndex() []int
|
||||
Mount(reflect.Value)
|
||||
rootValue() reflect.Value
|
||||
parentIndex() []int
|
||||
mount(reflect.Value)
|
||||
|
||||
updateSoftDeleteField(time.Time) error
|
||||
}
|
||||
|
||||
func newModel(db *DB, dest []interface{}) (model, error) {
|
||||
func newModel(db *DB, dest []interface{}) (Model, error) {
|
||||
if len(dest) == 1 {
|
||||
return _newModel(db, dest[0], true)
|
||||
}
|
||||
@ -74,11 +70,11 @@ func newModel(db *DB, dest []interface{}) (model, error) {
|
||||
return newSliceModel(db, dest, values), nil
|
||||
}
|
||||
|
||||
func newSingleModel(db *DB, dest interface{}) (model, error) {
|
||||
func newSingleModel(db *DB, dest interface{}) (Model, error) {
|
||||
return _newModel(db, dest, false)
|
||||
}
|
||||
|
||||
func _newModel(db *DB, dest interface{}, scan bool) (model, error) {
|
||||
func _newModel(db *DB, dest interface{}, scan bool) (Model, error) {
|
||||
switch dest := dest.(type) {
|
||||
case nil:
|
||||
return nil, errNilModel
|
||||
@ -150,7 +146,7 @@ func newTableModelIndex(
|
||||
root reflect.Value,
|
||||
index []int,
|
||||
rel *schema.Relation,
|
||||
) (tableModel, error) {
|
||||
) (TableModel, error) {
|
||||
typ := typeByIndex(table.Type, index)
|
||||
|
||||
if typ.Kind() == reflect.Struct {
|
||||
@ -195,7 +191,7 @@ func validMap(typ reflect.Type) error {
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
func isSingleRowModel(m model) bool {
|
||||
func isSingleRowModel(m Model) bool {
|
||||
switch m.(type) {
|
||||
case *mapModel,
|
||||
*structTableModel,
|
||||
|
2
vendor/github.com/uptrace/bun/model_map.go
generated
vendored
2
vendor/github.com/uptrace/bun/model_map.go
generated
vendored
@ -21,7 +21,7 @@ type mapModel struct {
|
||||
scanIndex int
|
||||
}
|
||||
|
||||
var _ model = (*mapModel)(nil)
|
||||
var _ Model = (*mapModel)(nil)
|
||||
|
||||
func newMapModel(db *DB, dest *map[string]interface{}) *mapModel {
|
||||
m := &mapModel{
|
||||
|
2
vendor/github.com/uptrace/bun/model_map_slice.go
generated
vendored
2
vendor/github.com/uptrace/bun/model_map_slice.go
generated
vendored
@ -17,7 +17,7 @@ type mapSliceModel struct {
|
||||
keys []string
|
||||
}
|
||||
|
||||
var _ model = (*mapSliceModel)(nil)
|
||||
var _ Model = (*mapSliceModel)(nil)
|
||||
|
||||
func newMapSliceModel(db *DB, dest *[]map[string]interface{}) *mapSliceModel {
|
||||
return &mapSliceModel{
|
||||
|
2
vendor/github.com/uptrace/bun/model_scan.go
generated
vendored
2
vendor/github.com/uptrace/bun/model_scan.go
generated
vendored
@ -13,7 +13,7 @@ type scanModel struct {
|
||||
scanIndex int
|
||||
}
|
||||
|
||||
var _ model = (*scanModel)(nil)
|
||||
var _ Model = (*scanModel)(nil)
|
||||
|
||||
func newScanModel(db *DB, dest []interface{}) *scanModel {
|
||||
return &scanModel{
|
||||
|
2
vendor/github.com/uptrace/bun/model_slice.go
generated
vendored
2
vendor/github.com/uptrace/bun/model_slice.go
generated
vendored
@ -21,7 +21,7 @@ type sliceModel struct {
|
||||
info []sliceInfo
|
||||
}
|
||||
|
||||
var _ model = (*sliceModel)(nil)
|
||||
var _ Model = (*sliceModel)(nil)
|
||||
|
||||
func newSliceModel(db *DB, dest []interface{}, values []reflect.Value) *sliceModel {
|
||||
return &sliceModel{
|
||||
|
6
vendor/github.com/uptrace/bun/model_table_has_many.go
generated
vendored
6
vendor/github.com/uptrace/bun/model_table_has_many.go
generated
vendored
@ -19,7 +19,7 @@ type hasManyModel struct {
|
||||
structKey []interface{}
|
||||
}
|
||||
|
||||
var _ tableModel = (*hasManyModel)(nil)
|
||||
var _ TableModel = (*hasManyModel)(nil)
|
||||
|
||||
func newHasManyModel(j *relationJoin) *hasManyModel {
|
||||
baseTable := j.BaseModel.Table()
|
||||
@ -129,11 +129,11 @@ func (m *hasManyModel) parkStruct() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func baseValues(model tableModel, fields []*schema.Field) map[internal.MapKey][]reflect.Value {
|
||||
func baseValues(model TableModel, fields []*schema.Field) map[internal.MapKey][]reflect.Value {
|
||||
fieldIndex := model.Relation().Field.Index
|
||||
m := make(map[internal.MapKey][]reflect.Value)
|
||||
key := make([]interface{}, 0, len(fields))
|
||||
walk(model.Root(), model.ParentIndex(), func(v reflect.Value) {
|
||||
walk(model.rootValue(), model.parentIndex(), func(v reflect.Value) {
|
||||
key = modelKey(key[:0], v, fields)
|
||||
mapKey := internal.NewMapKey(key)
|
||||
m[mapKey] = append(m[mapKey], v.FieldByIndex(fieldIndex))
|
||||
|
2
vendor/github.com/uptrace/bun/model_table_m2m.go
generated
vendored
2
vendor/github.com/uptrace/bun/model_table_m2m.go
generated
vendored
@ -19,7 +19,7 @@ type m2mModel struct {
|
||||
structKey []interface{}
|
||||
}
|
||||
|
||||
var _ tableModel = (*m2mModel)(nil)
|
||||
var _ TableModel = (*m2mModel)(nil)
|
||||
|
||||
func newM2MModel(j *relationJoin) *m2mModel {
|
||||
baseTable := j.BaseModel.Table()
|
||||
|
12
vendor/github.com/uptrace/bun/model_table_slice.go
generated
vendored
12
vendor/github.com/uptrace/bun/model_table_slice.go
generated
vendored
@ -18,7 +18,7 @@ type sliceTableModel struct {
|
||||
nextElem func() reflect.Value
|
||||
}
|
||||
|
||||
var _ tableModel = (*sliceTableModel)(nil)
|
||||
var _ TableModel = (*sliceTableModel)(nil)
|
||||
|
||||
func newSliceTableModel(
|
||||
db *DB, dest interface{}, slice reflect.Value, elemType reflect.Type,
|
||||
@ -46,19 +46,15 @@ func (m *sliceTableModel) init(sliceType reflect.Type) {
|
||||
}
|
||||
}
|
||||
|
||||
func (m *sliceTableModel) Join(name string) *relationJoin {
|
||||
return m.join(m.slice, name)
|
||||
}
|
||||
|
||||
func (m *sliceTableModel) Bind(bind reflect.Value) {
|
||||
m.slice = bind.Field(m.index[len(m.index)-1])
|
||||
func (m *sliceTableModel) join(name string) *relationJoin {
|
||||
return m._join(m.slice, name)
|
||||
}
|
||||
|
||||
func (m *sliceTableModel) SetCap(cap int) {
|
||||
if cap > 100 {
|
||||
cap = 100
|
||||
}
|
||||
if m.slice.Cap() < cap {
|
||||
if m.slice.Cap() == 0 {
|
||||
m.slice.Set(reflect.MakeSlice(m.slice.Type(), 0, cap))
|
||||
}
|
||||
}
|
||||
|
52
vendor/github.com/uptrace/bun/model_table_struct.go
generated
vendored
52
vendor/github.com/uptrace/bun/model_table_struct.go
generated
vendored
@ -30,7 +30,7 @@ type structTableModel struct {
|
||||
scanIndex int
|
||||
}
|
||||
|
||||
var _ tableModel = (*structTableModel)(nil)
|
||||
var _ TableModel = (*structTableModel)(nil)
|
||||
|
||||
func newStructTableModel(db *DB, dest interface{}, table *schema.Table) *structTableModel {
|
||||
return &structTableModel{
|
||||
@ -62,23 +62,6 @@ func (m *structTableModel) Relation() *schema.Relation {
|
||||
return m.rel
|
||||
}
|
||||
|
||||
func (m *structTableModel) Root() reflect.Value {
|
||||
return m.root
|
||||
}
|
||||
|
||||
func (m *structTableModel) Index() []int {
|
||||
return m.index
|
||||
}
|
||||
|
||||
func (m *structTableModel) ParentIndex() []int {
|
||||
return m.index[:len(m.index)-len(m.rel.Field.Index)]
|
||||
}
|
||||
|
||||
func (m *structTableModel) Mount(host reflect.Value) {
|
||||
m.strct = host.FieldByIndex(m.rel.Field.Index)
|
||||
m.structInited = false
|
||||
}
|
||||
|
||||
func (m *structTableModel) initStruct() error {
|
||||
if m.structInited {
|
||||
return m.structInitErr
|
||||
@ -112,7 +95,7 @@ func (m *structTableModel) mountJoins() {
|
||||
j := &m.joins[i]
|
||||
switch j.Relation.Type {
|
||||
case schema.HasOneRelation, schema.BelongsToRelation:
|
||||
j.JoinModel.Mount(m.strct)
|
||||
j.JoinModel.mount(m.strct)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -151,7 +134,7 @@ func (m *structTableModel) AfterScan(ctx context.Context) error {
|
||||
return firstErr
|
||||
}
|
||||
|
||||
func (m *structTableModel) GetJoin(name string) *relationJoin {
|
||||
func (m *structTableModel) getJoin(name string) *relationJoin {
|
||||
for i := range m.joins {
|
||||
j := &m.joins[i]
|
||||
if j.Relation.Field.Name == name || j.Relation.Field.GoName == name {
|
||||
@ -161,20 +144,20 @@ func (m *structTableModel) GetJoin(name string) *relationJoin {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *structTableModel) GetJoins() []relationJoin {
|
||||
func (m *structTableModel) getJoins() []relationJoin {
|
||||
return m.joins
|
||||
}
|
||||
|
||||
func (m *structTableModel) AddJoin(j relationJoin) *relationJoin {
|
||||
func (m *structTableModel) addJoin(j relationJoin) *relationJoin {
|
||||
m.joins = append(m.joins, j)
|
||||
return &m.joins[len(m.joins)-1]
|
||||
}
|
||||
|
||||
func (m *structTableModel) Join(name string) *relationJoin {
|
||||
return m.join(m.strct, name)
|
||||
func (m *structTableModel) join(name string) *relationJoin {
|
||||
return m._join(m.strct, name)
|
||||
}
|
||||
|
||||
func (m *structTableModel) join(bind reflect.Value, name string) *relationJoin {
|
||||
func (m *structTableModel) _join(bind reflect.Value, name string) *relationJoin {
|
||||
path := strings.Split(name, ".")
|
||||
index := make([]int, 0, len(path))
|
||||
|
||||
@ -193,7 +176,7 @@ func (m *structTableModel) join(bind reflect.Value, name string) *relationJoin {
|
||||
currJoin.Relation = relation
|
||||
index = append(index, relation.Field.Index...)
|
||||
|
||||
if j := currJoin.JoinModel.GetJoin(name); j != nil {
|
||||
if j := currJoin.JoinModel.getJoin(name); j != nil {
|
||||
currJoin.BaseModel = j.BaseModel
|
||||
currJoin.JoinModel = j.JoinModel
|
||||
|
||||
@ -208,13 +191,26 @@ func (m *structTableModel) join(bind reflect.Value, name string) *relationJoin {
|
||||
currJoin.BaseModel = currJoin.JoinModel
|
||||
currJoin.JoinModel = model
|
||||
|
||||
lastJoin = currJoin.BaseModel.AddJoin(currJoin)
|
||||
lastJoin = currJoin.BaseModel.addJoin(currJoin)
|
||||
}
|
||||
}
|
||||
|
||||
return lastJoin
|
||||
}
|
||||
|
||||
func (m *structTableModel) rootValue() reflect.Value {
|
||||
return m.root
|
||||
}
|
||||
|
||||
func (m *structTableModel) parentIndex() []int {
|
||||
return m.index[:len(m.index)-len(m.rel.Field.Index)]
|
||||
}
|
||||
|
||||
func (m *structTableModel) mount(host reflect.Value) {
|
||||
m.strct = host.FieldByIndex(m.rel.Field.Index)
|
||||
m.structInited = false
|
||||
}
|
||||
|
||||
func (m *structTableModel) updateSoftDeleteField(tm time.Time) error {
|
||||
if !m.strct.IsValid() {
|
||||
return nil
|
||||
@ -309,7 +305,7 @@ func (m *structTableModel) scanColumn(column string, src interface{}) (bool, err
|
||||
}
|
||||
|
||||
if joinName, column := splitColumn(column); joinName != "" {
|
||||
if join := m.GetJoin(joinName); join != nil {
|
||||
if join := m.getJoin(joinName); join != nil {
|
||||
return true, join.JoinModel.ScanColumn(column, src)
|
||||
}
|
||||
|
||||
|
2
vendor/github.com/uptrace/bun/package.json
generated
vendored
2
vendor/github.com/uptrace/bun/package.json
generated
vendored
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "bun",
|
||||
"version": "1.0.8",
|
||||
"version": "1.0.9",
|
||||
"main": "index.js",
|
||||
"repository": "git@github.com:uptrace/bun.git",
|
||||
"author": "Vladimir Mihailenco <vladimir.webdev@gmail.com>",
|
||||
|
47
vendor/github.com/uptrace/bun/query_base.go
generated
vendored
47
vendor/github.com/uptrace/bun/query_base.go
generated
vendored
@ -68,10 +68,10 @@ type baseQuery struct {
|
||||
db *DB
|
||||
conn IConn
|
||||
|
||||
model model
|
||||
model Model
|
||||
err error
|
||||
|
||||
tableModel tableModel
|
||||
tableModel TableModel
|
||||
table *schema.Table
|
||||
|
||||
with []withQuery
|
||||
@ -86,10 +86,39 @@ func (q *baseQuery) DB() *DB {
|
||||
return q.db
|
||||
}
|
||||
|
||||
type query interface {
|
||||
GetModel() Model
|
||||
GetTableName() string
|
||||
}
|
||||
|
||||
var _ query = (*baseQuery)(nil)
|
||||
|
||||
func (q *baseQuery) GetModel() Model {
|
||||
return q.model
|
||||
}
|
||||
|
||||
func (q *baseQuery) GetTableName() string {
|
||||
if q.table != nil {
|
||||
return q.table.Name
|
||||
}
|
||||
|
||||
for _, wq := range q.with {
|
||||
if v, ok := wq.query.(query); ok {
|
||||
if model := v.GetModel(); model != nil {
|
||||
return v.GetTableName()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if q.modelTable.Query != "" {
|
||||
return q.modelTable.Query
|
||||
}
|
||||
if len(q.tables) > 0 {
|
||||
return q.tables[0].Query
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (q *baseQuery) setConn(db IConn) {
|
||||
// Unwrap Bun wrappers to not call query hooks twice.
|
||||
switch db := db.(type) {
|
||||
@ -113,7 +142,7 @@ func (q *baseQuery) setTableModel(modeli interface{}) {
|
||||
}
|
||||
|
||||
q.model = model
|
||||
if tm, ok := model.(tableModel); ok {
|
||||
if tm, ok := model.(TableModel); ok {
|
||||
q.tableModel = tm
|
||||
q.table = tm.Table()
|
||||
}
|
||||
@ -125,7 +154,7 @@ func (q *baseQuery) setErr(err error) {
|
||||
}
|
||||
}
|
||||
|
||||
func (q *baseQuery) getModel(dest []interface{}) (model, error) {
|
||||
func (q *baseQuery) getModel(dest []interface{}) (Model, error) {
|
||||
if len(dest) == 0 {
|
||||
if q.model != nil {
|
||||
return q.model, nil
|
||||
@ -427,12 +456,12 @@ func (q *baseQuery) _getFields(omitPK bool) ([]*schema.Field, error) {
|
||||
|
||||
func (q *baseQuery) scan(
|
||||
ctx context.Context,
|
||||
queryApp schema.Query,
|
||||
iquery IQuery,
|
||||
query string,
|
||||
model model,
|
||||
model Model,
|
||||
hasDest bool,
|
||||
) (sql.Result, error) {
|
||||
ctx, event := q.db.beforeQuery(ctx, queryApp, query, nil)
|
||||
ctx, event := q.db.beforeQuery(ctx, iquery, query, nil, q.model)
|
||||
|
||||
rows, err := q.conn.QueryContext(ctx, query)
|
||||
if err != nil {
|
||||
@ -459,10 +488,10 @@ func (q *baseQuery) scan(
|
||||
|
||||
func (q *baseQuery) exec(
|
||||
ctx context.Context,
|
||||
queryApp schema.Query,
|
||||
iquery IQuery,
|
||||
query string,
|
||||
) (sql.Result, error) {
|
||||
ctx, event := q.db.beforeQuery(ctx, queryApp, query, nil)
|
||||
ctx, event := q.db.beforeQuery(ctx, iquery, query, nil, q.model)
|
||||
|
||||
res, err := q.conn.ExecContext(ctx, query)
|
||||
if err != nil {
|
||||
|
16
vendor/github.com/uptrace/bun/query_select.go
generated
vendored
16
vendor/github.com/uptrace/bun/query_select.go
generated
vendored
@ -297,7 +297,7 @@ func (q *SelectQuery) Relation(name string, apply ...func(*SelectQuery) *SelectQ
|
||||
return q
|
||||
}
|
||||
|
||||
join := q.tableModel.Join(name)
|
||||
join := q.tableModel.join(name)
|
||||
if join == nil {
|
||||
q.setErr(fmt.Errorf("%s does not have relation=%q", q.table, name))
|
||||
return q
|
||||
@ -314,7 +314,7 @@ func (q *SelectQuery) forEachHasOneJoin(fn func(*relationJoin) error) error {
|
||||
if q.tableModel == nil {
|
||||
return nil
|
||||
}
|
||||
return q._forEachHasOneJoin(fn, q.tableModel.GetJoins())
|
||||
return q._forEachHasOneJoin(fn, q.tableModel.getJoins())
|
||||
}
|
||||
|
||||
func (q *SelectQuery) _forEachHasOneJoin(fn func(*relationJoin) error, joins []relationJoin) error {
|
||||
@ -325,7 +325,7 @@ func (q *SelectQuery) _forEachHasOneJoin(fn func(*relationJoin) error, joins []r
|
||||
if err := fn(j); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := q._forEachHasOneJoin(fn, j.JoinModel.GetJoins()); err != nil {
|
||||
if err := q._forEachHasOneJoin(fn, j.JoinModel.getJoins()); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
@ -341,7 +341,7 @@ func (q *SelectQuery) selectJoins(ctx context.Context, joins []relationJoin) err
|
||||
|
||||
switch j.Relation.Type {
|
||||
case schema.HasOneRelation, schema.BelongsToRelation:
|
||||
err = q.selectJoins(ctx, j.JoinModel.GetJoins())
|
||||
err = q.selectJoins(ctx, j.JoinModel.getJoins())
|
||||
case schema.HasManyRelation:
|
||||
err = j.selectMany(ctx, q.db.NewSelect())
|
||||
case schema.ManyToManyRelation:
|
||||
@ -701,8 +701,8 @@ func (q *SelectQuery) Scan(ctx context.Context, dest ...interface{}) error {
|
||||
}
|
||||
|
||||
if n, _ := res.RowsAffected(); n > 0 {
|
||||
if tableModel, ok := model.(tableModel); ok {
|
||||
if err := q.selectJoins(ctx, tableModel.GetJoins()); err != nil {
|
||||
if tableModel, ok := model.(TableModel); ok {
|
||||
if err := q.selectJoins(ctx, tableModel.getJoins()); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
@ -744,7 +744,7 @@ func (q *SelectQuery) Count(ctx context.Context) (int, error) {
|
||||
}
|
||||
|
||||
query := internal.String(queryBytes)
|
||||
ctx, event := q.db.beforeQuery(ctx, qq, query, nil)
|
||||
ctx, event := q.db.beforeQuery(ctx, qq, query, nil, q.model)
|
||||
|
||||
var num int
|
||||
err = q.conn.QueryRowContext(ctx, query).Scan(&num)
|
||||
@ -803,7 +803,7 @@ func (q *SelectQuery) Exists(ctx context.Context) (bool, error) {
|
||||
}
|
||||
|
||||
query := internal.String(queryBytes)
|
||||
ctx, event := q.db.beforeQuery(ctx, qq, query, nil)
|
||||
ctx, event := q.db.beforeQuery(ctx, qq, query, nil, q.model)
|
||||
|
||||
var exists bool
|
||||
err = q.conn.QueryRowContext(ctx, query).Scan(&exists)
|
||||
|
13
vendor/github.com/uptrace/bun/query_table_create.go
generated
vendored
13
vendor/github.com/uptrace/bun/query_table_create.go
generated
vendored
@ -63,6 +63,11 @@ func (q *CreateTableQuery) ModelTableExpr(query string, args ...interface{}) *Cr
|
||||
return q
|
||||
}
|
||||
|
||||
func (q *CreateTableQuery) ColumnExpr(query string, args ...interface{}) *CreateTableQuery {
|
||||
q.addColumn(schema.SafeQuery(query, args))
|
||||
return q
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
func (q *CreateTableQuery) Temp() *CreateTableQuery {
|
||||
@ -132,6 +137,14 @@ func (q *CreateTableQuery) AppendQuery(fmter schema.Formatter, b []byte) (_ []by
|
||||
}
|
||||
}
|
||||
|
||||
for _, col := range q.columns {
|
||||
b = append(b, ", "...)
|
||||
b, err = col.AppendQuery(fmter, b)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
b = q.appendPKConstraint(b, q.table.PKs)
|
||||
b = q.appendUniqueConstraints(fmter, b)
|
||||
b, err = q.appenFKConstraints(fmter, b)
|
||||
|
5
vendor/github.com/uptrace/bun/schema/sqlfmt.go
generated
vendored
5
vendor/github.com/uptrace/bun/schema/sqlfmt.go
generated
vendored
@ -4,11 +4,6 @@ type QueryAppender interface {
|
||||
AppendQuery(fmter Formatter, b []byte) ([]byte, error)
|
||||
}
|
||||
|
||||
type Query interface {
|
||||
QueryAppender
|
||||
Operation() string
|
||||
}
|
||||
|
||||
type ColumnsAppender interface {
|
||||
AppendColumns(fmter Formatter, b []byte) ([]byte, error)
|
||||
}
|
||||
|
2
vendor/github.com/uptrace/bun/version.go
generated
vendored
2
vendor/github.com/uptrace/bun/version.go
generated
vendored
@ -2,5 +2,5 @@ package bun
|
||||
|
||||
// Version is the current release version.
|
||||
func Version() string {
|
||||
return "1.0.8"
|
||||
return "1.0.9"
|
||||
}
|
||||
|
Reference in New Issue
Block a user