diff options
| author | 2024-11-08 13:51:23 +0000 | |
|---|---|---|
| committer | 2024-11-08 13:51:23 +0000 | |
| commit | 29007b1b886e7455ece5aa6e4d477805209fad88 (patch) | |
| tree | 21b11cbf12faf71d44d43c61a2d4916b7bd82b80 /vendor/github.com/uptrace/bun/model_table_m2m.go | |
| parent | bump ncruces/go-sqlite3 to v0.20.2 (#3524) (diff) | |
| download | gotosocial-29007b1b886e7455ece5aa6e4d477805209fad88.tar.xz | |
[chore] update bun libraries to v1.2.5 (#3528)
* update bun libraries to v1.2.5
* pin old v1.29.0 of otel
Diffstat (limited to 'vendor/github.com/uptrace/bun/model_table_m2m.go')
| -rw-r--r-- | vendor/github.com/uptrace/bun/model_table_m2m.go | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/vendor/github.com/uptrace/bun/model_table_m2m.go b/vendor/github.com/uptrace/bun/model_table_m2m.go index 88d8a1268..14d385e62 100644 --- a/vendor/github.com/uptrace/bun/model_table_m2m.go +++ b/vendor/github.com/uptrace/bun/model_table_m2m.go @@ -24,7 +24,7 @@ var _ TableModel = (*m2mModel)(nil) func newM2MModel(j *relationJoin) *m2mModel { baseTable := j.BaseModel.Table() joinModel := j.JoinModel.(*sliceTableModel) - baseValues := baseValues(joinModel, baseTable.PKs) + baseValues := baseValues(joinModel, j.Relation.BasePKs) if len(baseValues) == 0 { return nil } @@ -83,27 +83,21 @@ func (m *m2mModel) Scan(src interface{}) error { column := m.columns[m.scanIndex] m.scanIndex++ - field, ok := m.table.FieldMap[column] - if !ok { + // Base pks must come first. + if m.scanIndex <= len(m.rel.M2MBasePKs) { return m.scanM2MColumn(column, src) } - if err := field.ScanValue(m.strct, src); err != nil { - return err - } - - for _, fk := range m.rel.M2MBaseFields { - if fk.Name == field.Name { - m.structKey = append(m.structKey, field.Value(m.strct).Interface()) - break - } + if field, ok := m.table.FieldMap[column]; ok { + return field.ScanValue(m.strct, src) } - return nil + _, err := m.scanColumn(column, src) + return err } func (m *m2mModel) scanM2MColumn(column string, src interface{}) error { - for _, field := range m.rel.M2MBaseFields { + for _, field := range m.rel.M2MBasePKs { if field.Name == column { dest := reflect.New(field.IndirectType).Elem() if err := field.Scan(dest, src); err != nil { |
